Как изменить размер пустого входного сигнала в 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

Связанный контент