Wie passt man die Größe einer leeren Eingabe in FFmpeg an einen vorhandenen Videostream an?

Wie passt man die Größe einer leeren Eingabe in FFmpeg an einen vorhandenen Videostream an?

Ich versuche, ein farbiges Feld mit einer passenden Größe zu meiner ersten Eingangsvideoquelle (-i) zu erstellen und sie direkt nebeneinander zu stapeln.

-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

Ich erhalte jedoch diesen Fehler:

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

Wie behebe ich die Größenunterschiede?

Antwort1

Ihr Befehl verwendet hstack, aber Ihr Fehler zeigt vstack. Ich nehme an, das stammt von einem anderen Befehl. Verwenden Sie jedenfalls

-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

Für diesen speziellen Bedarf können Sie das Video allerdings einfach auffüllen.

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

verwandte Informationen