вопрос возник:
решил уменьшить размер ролика с вебкамки, бо качество помойное, а размер 1280 на 720 - излишний,
ввел банальное
ffmpeg -i input.mp4 -vf scale=640:360 output.mp4
- а он вообще на квадратики рассыпается, вес ролика уменьшается в 35 раз вместо 4.
Мож там какие-то преднастройки качества по дефолту стоят, что ффмпег еще дополнительно кромсает видео?
Можно ему как-то дать понять, что разрешение я уменьшаю для уменьшения цифромусора и увеличения инфы на пиксель, а не для получения еще большего ужаса?
Bredonosec> Мож там какие-то преднастройки качества по дефолту стоят, что ффмпег еще дополнительно кромсает видео?
Да, там качество нужно указывать. Раньше писали -sameq, позже -same_quant (видимо, чтобы не путались, что q — это не качество, а квантование ), а сейчас - вообще -qscale 0 или -qscale 1 (подобрать надо) — смотри, какая у тебя версия.
Bredonosec> ввел банальное Bredonosec> ffmpeg -i input.mp4 -vf scale=640:360 output.mp4 Bredonosec> - а он вообще на квадратики рассыпается, вес ролика уменьшается в 35 раз вместо 4.
Так он же тебе человеческим языком все свои настройки пишет?
Решил вот сразу проверить. В качестве подопытного взял трейлер Логана
Логан — Русский трейлер #2 (2017) Русские трейлеры к фильмам и сериалам! Интересные ролики о фильмах и их съёмках! Подпишись на канал ►http://bit.ly/1djo89b ◄ Новости,промо,трейлеры,даты выходов фильмов и сериалов только у нас: ►http://vk.com/iVideos ◄ Русский трейлер фильма Логан: Росомаха 3 2017 года ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Дата выхода в РФ - ►2 марта 2017◄ • Оригинальное название: Logan • Страна: США • Дистрибьютор: Двадцатый Век Фокс • Режиссер: Джеймс Мэнголд • Жанр: фантастика, боевик • В главных ролях: Хью Джекман, Бойд Холбрук, Дорис Моргадо, Патрик Стюарт, Элизабет Родригес Росомаха и профессор Ксавьер,…
Загружаю вариант "mp4 1280x720 DASH video 2321k , avc1.4d401f, 24fps, video only, 28.50MiB" youtube-dl.exe -f 136 https://youtu.be/zJ4Cabuu-t0
Напускаю ffmpeg с записью лога ffmpeg.exe -report -i input.mp4 -vf scale=640:360 output.mp4
Соотношение размеров: 29885022/8748518=3.416
Мутновато, но на квадраты не рассыпается.
Кусок из упомянутого лога:
Отдельно звук, отдельно видео и сборка в кучу, т.к. под MS W, если в один проход, только кусочками по полчасика или краш при использовании многопроходных ключей. Может сейчас уже все работает, но по главному принципу сисадмина: работает - не трожь!
Для сравнения пара кадров.
[Parsed_concat_0 @ 03452d80] Input link in1:v0 parameters (size 1280x720, SAR 24
6:245) do not match the corresponding output link in0:v0 parameters (1280x720, S
AR 1:1)
[Parsed_concat_0 @ 03452d80] Failed to configure output pad on Parsed_concat_0
Что за сар, и как его побороть?
что делал - сливал вместе 6 роликов одного размера 1280 на 720 самым примитивным скриптом ffmpeg -i 11.mp4 -i 12.mp4 -i 13.mp4 -i 14.mp4 -i 15.mp4 -i 16.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=6:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" 1/out.mp4
по идее, он тут перекодирует, так что дже некоторые несовпадения неважны..
кажется, поймал.
Пиксели неквадратные.
Лечится -vf scale=iw*sar:ih при перекодировании аварийного ролика.
В результате вместо вставления 4 цифирей согласно спецификации, оно почему-то вставляет имя батника на место регекспа. Что я не так делаю?
Попробовал уже и через жопу:
-pattern_type glob -i "DSC_*.jpg"
- но получаю "pattern type 'glob' was selected, but globbing is not supported by this libavformat build. Function not implemented"
Bredonosec> В результате вместо вставления 4 цифирей согласно спецификации, оно почему-то вставляет имя батника на место регекспа. Что я не так делаю?
Потому, что внутри батника cmd.exe обрабатыват команды первым в соответствии со своим синтаксисом. И %0, %1, ... %9 — это параметры, которые переданы этому батнику. %0 — имя скрипта.
Если хочешь, чтобы %04 передалось ffmpeg-у, то используй
Поймал странную ошибку при попытке склейки 2 роликов
[NULL @ 031c8820] start time for stream 2 is not set in estimate_timings_from_pt
s
Input #0, mpegts, from '360p.mp4':
Duration: 00:00:08.04, start: 0.101000, bitrate: 530 kb/s
Program 1
Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 64
0x360, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, ster
eo, fltp, 62 kb/s
Stream #0:2[0x102]: Data: timed_id3 (ID3 / 0x20334449)
[h264 @ 03441300] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 03441300] decode_slice_header error
[h264 @ 03441300] no frame!
[h264 @ 03441300] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 03441300] decode_slice_header error
[h264 @ 03441300] no frame!
[h264 @ 03441300] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 03441300] decode_slice_header error
[h264 @ 03441300] no frame!
[h264 @ 03441300] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 03441300] decode_slice_header error
[h264 @ 03441300] no frame!
[h264 @ 03441300] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 03441300] decode_slice_header error
[h264 @ 03441300] no frame!
[h264 @ 03441300] non-existing PPS 0 referenced
ну и далее еще строк 30 того же.
Что "отсутствует ключевой кадр" во втором ролике, я понял. Но почему ошибка повторяется? Ключевых нет вовсе?
Ролики - из статьи
вопрос нарисовался - нашел на диске записанные тв-программы "крылья", но там аналоговое 576*352 в мпег2 формате, то есть, 45 минут весят гиг. Гиг шума.
Есть ффмпег, но какой аглоритм лучше всего шум удаляет? В документации их дохрена и трошки..
This document describes filters, sources, and sinks provided by the libavfilter library.
Filtering in FFmpeg is enabled through the libavfilter library.
In libavfilter, a filter can have multiple inputs and multiple outputs. To illustrate the sorts of things that are possible, we consider the following filtergraph.
This filtergraph splits the input stream in two streams, then sends one stream through the crop filter and the vflip filter, before merging it back with the other stream by overlaying it on top. You can use the following command to achieve this:
The result will be that the top half of the video is mirrored onto the bottom half of the output video.
// Дальше — ffmpeg.org
просто гугл по теме - каждый кто во что горазд рисует дикого размера скрипты.
Куда податься?