ffmpeg: как создать чересстрочное видео h.264?

996
Thomas R.

Я хотел бы преобразовать высококачественное не чересстрочное входное видео в менее качественный, но более широко распространяемый формат H.264 / MP4. Вывод должен иметь некоторые ограничения - в частности: он должен быть чересстрочным !

Я попробовал следующую команду, где mandelbrotсиноним высокого качества ввода:

ffmpeg -hide_banner \ -t 10 -y \ -f lavfi \ -i anullsrc=r=48k:cl=stereo \ -f lavfi \ -i mandelbrot=r=50:size=1920x1080 \ -vf 'interlace=scan=tff:lowpass=complex,format=yuv420p' \ -codec:a aac \ -b:a 128k \ -aac_coder twoloop \ -codec:v libx264 \ -preset veryfast \ -tune animation \ -profile:v high \ -crf 35 \ -level 5.2 \ -x264opts interlaced=1 \ -shortest \ mandelbrot.mp4 

Мой ффмпег есть ffmpeg version 3.4.2-2.

Однако я не уверен, что командная строка верна.

  • libx264не обнаруживает чересстрочный вход сам по себе. Я должен вставить -x264opts interlaced=1.
  • Другие часто задаваемые вопросы рассказывают о -flags +ilme+ildct...

Можете ли вы подтвердить мои параметры? Большое спасибо.

1
"Это должно быть переплетено" ... почему? Переплетение - это похмелье со времен ЭЛТ, ему нет места в современном мире и выглядит очень плохо. Attie 5 лет назад 1
В общем, вы правы ... Я рекомендую всем прогрессивный в цифровом мире ... Но примите этот особый случай как вызов ... ;-) Thomas R. 5 лет назад 0
Так почему же в вашем случае требуется переплетение? Просто любопытно… slhck 5 лет назад 0
Подумайте о наличии нескольких аппаратных видеоплееров. На самом деле некоторые из них имеют технические характеристики. Затем вы создаете видеофайл в точности так, как описано в этих руководствах. Но игрок отказывается воспроизводить. Вот почему я хотел бы создавать как прогрессивные, так и чересстрочные файлы ... Thomas R. 5 лет назад 0
возможно, стоит отметить - у меня были некоторые проблемы с генерацией чересстрочных файлов mp4 с помощью ffmpeg, и я пытался использовать разные параметры. Видео работало правильно в программном плеере, но в эфире оно было повреждено. Я не могу вспомнить все конкретные детали сейчас, просто говорю: если это для серьезного приложения, вы должны протестировать его на реальном оборудовании, может случиться так, что для обеспечения совместимости вам понадобится собственный кодировщик. Mikhail V 5 лет назад 0

2 ответа на вопрос

1
Gyan

x264 через ffmpeg может установить чересстрочный режим двумя способами:

1) через приватный параметр т.е. -x264opts(или -x264-params)interlaced=1

2) или через общий флаг libavcodec, -flags +ildct

Поэтому, если я хочу уменьшить специфические параметры кодера, я должен использовать `ffmpeg -hide_banner -t 10 -y -f lavfi -i anullsrc = r = 48k: cl = стерео -f lavfi -i mandelbrot = r = 50: размер = 1920x1080 -vf 'interlace = scan = tff: lowpass = complex, format = yuv420p' -flags + ildct -codec: aac -b: 128k -aac_coder twoloop -codec: v libx264 -представить очень быструю анимацию -tune -profile: v high -crf 35 -уровневый 5.2 -shortest mandelbrot.mp4`? Thomas R. 5 лет назад 0
Это выглядит правильно. Gyan 5 лет назад 0
Большое спасибо. Из-за того, что я новичок, мой голос не является публичным ... ;-( Thomas R. 5 лет назад 0
0
Thomas R.

Наконец я получил отличные результаты с

ffmpeg \ -y \ -hide_banner \ -i "$" \ \ [... audio ...]\ \ -vf tinterlace=interleave_top,fieldorder=tff \ -crf 28 \ -preset placebo \ [... more video ...]\ -codec:v libx264 \ \ -f mp4 \ -flags +ildct+ilme \ [... more muxing ...]\ \ "$" 

Похожие вопросы