Как сделать видеофайл MPEG2 с наивысшим качеством, используя FFMPEG?

У меня есть WMV (v9 (WMV3), 960×720, 30.000030 fps, planar 4: 2: 0 YUV, созданный PowerPoint 2010) и необходимо преобразовать его в MPEG2 – единственный формат, который мой телевизор может читать с USB-накопителя (Я также пробовал MP4 / h.264, AVI / XVID – ничего, кроме MPEG2).

Я справился с работой с помощью простых

ffmpeg -i "in.wmv" -c:v mpeg2video "out.mpg" 

Но качество результата является ужасным (четко видны визуальные искажения), и воспроизведение не является плавным (слишком медленно в некоторые моменты).

Я также пробовал

 ffmpeg -i "in.wmv" -c:v mpeg2video -pix_fmt yuv420p -me_method epzs -threads 4 -r 30.000030 -g 45 -bf 2 -trellis 2 -cmp 2 -subcmp 2 -s 960x720 -b 2500k -bt 300k -async 1 -y "out.mpg" 

(Я нашел это где-то в Интернете и немного изменил – изменил resoultion, частоту обновления и формат вывода (от VOB до bare MPG)), но качество все равно слишком плохо.

Какие параметры я должен использовать, чтобы сохранить как можно больше качества? Степень сжатия вообще не имеет значения, допустимо даже увеличение размера файла.

Пышная вещь, в которой я действительно нуждаюсь (я решил не включать ее в заголовок вопроса, чтобы не делать ее слишком конкретной, но я был бы признателен, если бы ее рассматривали в ответах) добавляет чистую тишину в качестве звуковой дорожки – нет звука в Оригинал, но телевизор жалуется на это, и я хотел бы избавиться от этой жалобы. Я создал файл OGG Vorbis с одинаковой длиной (второй-точный), используя Audacity, но мне не удается слить его с видео:

 ffmpeg -i in.mpg -i silence.ogg -c:v copy -c:a libmp3lame out.mpg 

И даже голой

 ffmpeg -i in.mpg -c:v copy -out.mpg 

Дает ошибки «переполнение буфера» и «слишком большие пакеты». (In.mpg – файлы, созданные одним и тем же двоичным файлом FFMPEG и одним и тем же исходным файлом WMV с использованием первых двух команд в вопросе).

Я использую Zeranoe FFMPEG для Windows 7.

2 Solutions collect form web for “Как сделать видеофайл MPEG2 с наивысшим качеством, используя FFMPEG?”

Проблема заключается в том, что битрейт по умолчанию для MPEG-2 довольно низок (как и в большинстве других видеокодеров в ffmpeg, исключая H.264). MPEG-2 также не лучший выбор в качестве кодека в наши дни.

Лучшее качество для MPEG-2

У вас есть несколько вариантов, если вы хотите придерживаться MPEG-2:

  • Увеличьте битрейт. Теперь вы используете -b:v 2500k . Если это видео высокой четкости, вы не уйдете далеко с 2,5 Мбит / с. Вам нужно как минимум удвоить это или даже больше, чтобы результат выглядел хорошо. Например, используйте -b:v 6000k -target pal-dvd .

    Для 720p, я думаю, что вы все равно должны использовать более высокий битрейт. Помните, что DVD-диски используют MPEG-2 и выходят примерно на 4,7 ГБ за 2 часа фильма, поэтому вы получаете около 5-8 Мбит / с. MPEG-2 действительно не очень эффективен в сжатии и работает лучше при более высоких битрейтах.

  • Используйте определенную настройку качества. Измените -b:v … на -qscale:v 2 . Число здесь колеблется от 1 до 31 и выше означает меньшее качество. Нет смысла выходить за пределы 4 или 5. Если вы не заботитесь о начале битрейта с 2 и посмотрите, работает ли это для вас.

Мессинг с количеством B-кадров, методом оценки движения или размером GOP может немного улучшить качество, но не приведет к большим изменениям.

Тихий звук

Используйте -f lavfi -i aevalsrc=0 для создания тихого аудиопотока. Например:

 ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v mpeg2video -qscale:v 2 -c:a libmp3lame "out.mpg" 

Возможно, вам понадобится добавить -target pal-dvd к указанной выше команде, чтобы установить определенный размер буфера.

Я выбрал MP3 как кодек. Файлы MPEG не могут содержать аудио, кроме аудио MPEG Layer I и II, а также потоки PCM, поэтому использование файла Ogg Vorbis без звука не будет работать, если вы также не конвертируете аудиопоток (что не то, что вы делаете, когда используете -c:a copy ).

Используйте другой видеокодек

Я удивлен, что телевизор, воспроизводящий видеофайлы, будет читать MPEG-2, но не более того. Необходимо поддерживать как минимум MPEG-4 часть II видео (это то, что вы знаете как «DivX» – кодировщик MPEG-4 Part II). Поэтому вы можете попробовать:

 ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v libxvid -qscale:v 2 -c:a libmp3lame "out.mp4" 

Ваш телевизор может также поддерживать H.264, но только определенный профиль. Попробуйте использовать baseline профиль, например:

 ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v libx264 -profile:v baseline -crf 23 -c:a aac -strict experimental "out.mp4" 

В приведенном выше примере я использовал опцию CRF для установки качества вместо qscale . Дополнительную информацию см. В руководстве по кодированию H.264 .

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

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

 ffmpeg.exe -f lavfi -i aevalsrc=0:0::duration=YOUR_DESIRED_DURATION -ab 10k YourAudioName.aac 

Это не сработает для вас, так как вы используете контейнер mpg, поэтому можете попробовать. (Mp3-контейнер)

 ffmpeg.exe -f lavfi -i aevalsrc=0:0::duration=YOUR_DESIRED_DURATION -ab 10k YourAudioName.mp3 

Казалось, это сработало для меня.

Interesting Posts

Как вручную установить Apache, PHP и MySQL в Windows?

Как искать тег комментария внутри mp3 на windows 7?

Как влияет на идентификатор идентификатора поиска и «текущая схема»,

7-Zip CMD: Добавить текущую дату в архив и включить только последнюю измененную папку в архиве

Как вернуться к определенной версии Office 2016?

Разделение жесткого диска без потери данных

Отключение обновлений окон для Windows 10

Как определить установленную версию Windows XP, если ОС не загружается?

Необходимо ли переопределять .NET Framework после перехода на новую микроархитектуру процессора?

Является ли мой хост-компьютер полностью изолированным от зараженной вирусом виртуальной машины?

Почему мой новый компьютер не показывает видео?

Как сделать загрузчик Windows по умолчанию?

Есть ли встроенный метод вычисления SHA-1 или MD5-хэша в Windows 7?

Выделение синтаксиса в Microsoft Office Word

Как скопировать весь текст в отредактированном файле из PuTTY в буфер обмена?

Давайте будем гением компьютера.