Error de ffmpeg: -vf/-af/-filter y -filter_complex no se pueden usar juntos

Error de ffmpeg: -vf/-af/-filter y -filter_complex no se pueden usar juntos

Estoy intentando ejecutar el siguiente cmd, que debería agregar una marca de agua al video y también mejorarlo.

ffmpeg -i "in.avi" -i "\logo.png" -vf scale=854:-1  -preset 
veryfast -crf 20 -filter_complex overlay=5:5 "ou.mkv"

Recibo el siguiente error.

Filtergraph 'scale=854:-1' was specified through the 
-vf/-af/-filter option for output stream 0:0, which is fed from 
a complex filtergraph. -vf/-af/-filter and -filter_complex 
cannot be used together for the same stream.

Antes de intentar aumentar la escala (sin la escala -vf = 854: -1), el cmd funcionaba con la marca de agua.

¿Cómo puedo lograr ambos?

¿Qué he probado?

  • Mover el parámetro -vf antes de la entrada, después de la entrada, etc.

Respuesta1

Puedes usar unográfico de filtropara hacer todos los filtrados:

ffmpeg -i input.avi -i logo.png -filter_complex \
"[0:v]scale=854:-2[scaled]; \
 [scaled][1:v]overlay=5:5[out]" \
-map "[out]" -map 0:a -c:v libx264 -c:a copy output.mkv
  • [0:v]se refiere a las transmisiones de video de la primera entrada ( input.avien este ejemplo). [1:v]es el vídeo de la segunda entrada ( logo.pngen este ejemplo).

  • El audio escopiado al vaporen este ejemplo en lugar de volver a codificarse; suponiendo que su primera entrada tenga audio.

  • La mejor práctica es nombrar manualmente las entradas y salidas del filtro, como en este ejemplo, en lugar de confiar en valores predeterminados que pueden resultar en selecciones de flujo incorrectas.

  • -2en elfiltro de vídeo de escalase usa en lugar de -1porque x264 requiere que la salida sea divisible por 2 cuando se genera en submuestreo de croma 4:2:0:

Si uno de los valores es -n con n > 1, el filtro de escala también usará un valor que mantiene la relación de aspecto de la imagen de entrada, calculada a partir de la otra dimensión especificada. Después de eso, sin embargo, se asegurará de que la dimensión calculada sea divisible por n y ajustará el valor si es necesario.

información relacionada