ffmpeg: як створити переплетене відео h.264?


1

Я хотів би перетворити високоякісне непереплетене вхідне відео у менш якісний, але ширший формат 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 є ffmpeg version 3.4.2-2.

Однак я не впевнений, що командний рядок правильний.

  • libx264не виявляє переплетений вхід сам по собі. Я маю вставити -x264opts interlaced=1.
  • Інші файли розповідають щось про -flags +ilme+ildct...

Чи можете ви підтвердити мої параметри? Дуже дякую.


1
" це слід переплітати " ... чому? Переплетення - це похмілля за часів СРТ, воно не має місця в сучасному світі і виглядає дуже погано.
Attie

Як правило, ви праві ... Я рекомендую прогресивному в цифровому світі всім ... Але сприйміть цей особливий випадок як виклик ... ;-)
Thomas R.

То чому ж у вашому випадку потрібне переплетення? Просто цікаво…
slhck

Подумайте про наявність декількох апаратних відеоплеєрів. Насправді деякі з них мають технічні умови. Потім ви заварюєте відеофайл точно так, як описано в цих посібниках. Але гравець відмовляється грати. Ось чому я хотів би генерувати як прогресивні, так і переплетені файли ...
Thomas R.

Можливо, варто відзначити - у мене виникли проблеми з генерацією переплетених mp4-файлів з ffmpeg і спробував з багатьма різними параметрами. Відео працювало коректно в програмному плеєрі, але в ефірі воно виявилося пошкодженим. Зараз я не можу згадати всі конкретні деталі, просто кажу - якщо це для серйозної програми, ви повинні перевірити її на справжньому апаратному забезпеченні, можливо, вам знадобиться фірмовий кодер для забезпечення сумісності.
Михайло V

Відповіді:


2

Нарешті я отримав відмінні результати

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

1

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=stereo -f lavfi -i mandelbrot=r=50:size=1920x1080 -vf 'interlace=scan=tff:lowpass=complex,format=yuv420p' -flags +ildct -codec:a aac -b:a 128k -aac_coder twoloop -codec:v libx264 -preset veryfast -tune animation -profile:v high -crf 35 -level 5.2 -shortest mandelbrot.mp4?
Томас Р.

Це виглядає правильно.
Gyan

Дуже дякую. Через те, що я новачок, мій голос не є публічним ... ;-(
Томас Р.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.