¿Cómo se dimensiona una entrada vacía en FFmpeg para que coincida con una transmisión de video existente?

¿Cómo se dimensiona una entrada vacía en FFmpeg para que coincida con una transmisión de video existente?

Estoy intentando crear un cuadro de color de un tamaño que coincida con mi primera fuente de video de entrada (-i) y apilarlos uno al lado del otro.

-i movie.mov -filter_complex \
  "color=c=black,scale=w=300:h=-1[c_s]; \
  [c_s][0:v]scale2ref[c]; \
  [0:v][c]hstack=shortest=1:inputs=2[combined]" \
 -map "[combined]" out.mov

Aunque recibo este error:

[Parsed_vstack_12 @ 0x7f94b0d0a120] Input 1 width 3840 does not match input 0 width 600.
Error configuring complex filters.

¿Cómo soluciono las diferencias de tamaño?

Respuesta1

Su comando usa hstack pero su error muestra vstack. Supongo que es de un comando diferente. De todos modos, usa

-i movie.mov -filter_complex \
  "color=c=black[c_s]; \
  [c_s][0:v]scale2ref[c][v]; \
  [c]setsar=1[cr]; \
  [v][cr]hstack=shortest=1:inputs=2[combined]" \
 -map "[combined]" out.mov

Aunque, para este requisito específico, puedes simplemente rellenar el vídeo.

-i movie.mov -vf pad=2*iw:ih:color=black out.mov

información relacionada