x264 via ffmpeg pode definir o modo entrelaçado de duas maneiras:
1) via param particular, por exemplo, -x264opts
(ou -x264-params
) interlaced=1
2) ou via flag genérico libavcodec, -flags +ildct
Eu gostaria de converter um vídeo de entrada não entrelaçado de alta qualidade em um formato H.264 / MP4 de menor qualidade, mas mais distribuível. A saída deve ter algumas restrições - em particular: deve ser entrelaçada !
Eu tentei o seguinte comando, onde mandelbrot
é um sinônimo para a entrada de alta qualidade:
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
Meu ffmpeg é ffmpeg version 3.4.2-2
.
No entanto, não tenho certeza se a linha de comando está correta.
libx264
não detecta uma entrada entrelaçada por si só. Eu tenho que inserir -x264opts interlaced=1
. -flags +ilme+ildct
... Você pode confirmar meus parâmetros? Muito obrigado.
x264 via ffmpeg pode definir o modo entrelaçado de duas maneiras:
1) via param particular, por exemplo, -x264opts
(ou -x264-params
) interlaced=1
2) ou via flag genérico libavcodec, -flags +ildct
Finalmente consegui excelentes resultados com
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}"
Tags ffmpeg video-encoding h.264 x264