Como você dimensiona uma entrada vazia no FFmpeg para corresponder a um stream de vídeo existente?

Como você dimensiona uma entrada vazia no FFmpeg para corresponder a um stream de vídeo existente?

Estou tentando criar uma caixa colorida de tamanho correspondente à minha primeira fonte de vídeo de entrada (-i) e empilhá-las uma ao lado da outra.

-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

Eu recebo este erro:

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

Como faço para corrigir as diferenças de tamanho?

Responder1

Seu comando usa hstack, mas seu erro mostra vstack. Presumo que seja de um comando diferente. De qualquer forma, use

-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

Embora, para este requisito específico, você possa simplesmente preencher o vídeo.

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

informação relacionada