FFmpeg の空の入力を既存のビデオ ストリームに合わせてサイズ設定するにはどうすればよいですか?

FFmpeg の空の入力を既存のビデオ ストリームに合わせてサイズ設定するにはどうすればよいですか?

最初の入力ビデオ ソース (-i) に一致するサイズの色付きボックスを作成し、それらを隣り合わせて積み重ねようとしています。

-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

ただし、次のエラーが発生します:

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

サイズの違いを修正するにはどうすればいいですか?

答え1

コマンドではhstackが使用されていますが、エラーではvstackが表示されています。これは別のコマンドによるものだと思います。とにかく、

-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

ただし、この特定の要件については、ビデオにパディングを加えるだけで済みます。

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

関連情報