Как сделать видеофайл 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.

  • Преобразование видео с 1080p в 720p с минимальной потерей качества при использовании ffmpeg
  • Изменение размера видео с помощью ffmpeg / avconv для вставки в статический размер игрока
  • Преобразование изображений в видео с использованием FFMPEG в Windows
  • Преобразование из WebM в MP4 в Ubuntu происходит медленно и плохо
  • Конвертировать Mp4 в Mp3 с миниатюрой
  • Как я могу смотреть боковое 3D-видео в 2D?
  • Concat mp4 с пустым видео
  • Преобразование AVI в H.264, который работает внутри тега видео HTML5
  • 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

    Почему 16 потоков более эффективны, чем 8 на i7 с гиперпотоковыми 4 ядрами? (Robocopy)

    Как создать дамп памяти для моего компьютера, зависающего или сбой?

    Будет ли мой компьютер замедляться, если я установлю несколько операционных систем?

    Apple Mail не применяет правила, если я не выберу «Применить правила» вручную

    Что такое GPT Protective volume в Windows 8 и можно ли их восстановить?

    Как включить PAE в Windows 7 (32-разрядная версия) для поддержки более 3,5 ГБ оперативной памяти?

    Блокировать определенный URL-адрес в веб-браузерах

    Как протестировать память видеокарты

    Как я могу передать вывод ffmpeg в ffplay?

    Samsung 840 EVO SSD занимает 3+ минуты для загрузки Windows 7

    Как переупорядочить папки? (Как показано в `ls -U`)

    Общее использование диска для конкретного пользователя

    Использовать удаленный компьютер без нарушения локального пользователя

    Значки приложений исчезли

    Как сжать основную папку Windows?

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