17

Я хотел быть в состоянии сделать это несколько раз сейчас, поэтому я спрашиваю.

Если у меня есть существующий видео- или аудиофайл, ffmpeg , mplayer и другие медиаплееры могут обнаружить хотя бы некоторые из его "свойств", таких как используемый контейнер, кодек и битрейт, возможно, различного качества и определенных настроек кодирования и т.д.

Как я могу извлечь эти настройки из существующего файла, чтобы использовать их (напрямую) для кодирования с помощью ffmpeg?

Например, я получил видео mkv закодированное с x264 с некоторыми настройками, и другой несжатый файл avi . Я хотел бы "скопировать" настройки кодирования, используемые для файла x264 mkv, для перекодирования avi с теми же настройками.

Примечание: я ищу способ, который не должен включать человеческую работу с "переводом" настроек из декодера в кодировщик. Это нормально, если мне нужно сначала извлечь настройки и сохранить их где-нибудь, но я хотел бы иметь возможность просто передать параметры чтения в командную строку или файл предварительной настройки | для ffmpeg.

1 ответ1

9

Это не будет тривиальным. Я не знаю ни одного скрипта, который бы позаботился об этих задачах, которые обычно выполняются вручную. Для получения большей информации о настройках кодировки в Unix/Linux или OS X вы можете использовать mediainfo с некоторыми приемами Bash.

Например, для видео в кодировке x264 в файле MP4:

mediainfo input.mp4 | grep "Encoding settings" | cut -d':' -f2- | tr '/' '\n' | sed 's/ //'

Это выведет список параметров x264:

cabac=1
ref=3
deblock=1:-1:-1
analyse=0x3:0x113
me=hex
subme=7
psy=1
…

Затем вы можете вручную передать эти параметры в двоичный файл x264.

Если вы пройдете через FFmpeg, это будет немного сложнее, поскольку не все параметры x264 могут или должны отображаться таким образом. Обратите внимание, что часто подойдет и простая предустановка, настройка и спецификация профиля (как видно из x264 --fullhelp и руководства по кодированию x264), и достаточно указать уровень CRF.

И это даже не касается аудио, где, к счастью, вариантов не так много.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .