ffmpeg 如何在一个命令中垂直旋转和 concat/stack 两个视频?

ffmpeg how to vertically rotate and concat/stack two videos in one command?

我有两段录音inside.MOVoutside.MOV是用两台摄像机(相同的设置和相同的型号)录制的。


我想做这样的事情:

ffmpeg -i inside.MOV -vf "transpose=2,transpose=2" inside_rotated180degree.MOV # rotate 180 degree
ffmpeg -i outside.MOV -i inside_rotated180degree.MOV \
  -filter_complex "[0:v]scale=640:-1[v0];[v0][1:v]vstack=inputs=2" inside_and_outside.MOV # concat them

但在单个命令中

我已经成功旋转了上方的视频,但我需要旋转下方的视频:

ffmpeg -i outside.MOV -i inside_rotated180degree.MOV \
  -filter_complex "[0:v]scale=1920:-1,rotate=PI[v0];[v0][1:v]vstack=inputs=2" inside_and_outside.MOV

我尝试通过各种方式修改命令以添加 rotate=PI,但 command/screen/input/ 中始终存在错误...有人知道如何将视频旋转到下部而不是上部吗?

您只需对两个视频流(即 2 个过滤器链)进行相同的准备工作,然后再将它们堆叠在一起(最终链):

ffmpeg -i outside.MOV -i inside.MOV \
  -filter_complex "[0:v]scale=640:-1,hflip,vflip[v0];\
                   [1:v]scale=640:-1,hflip,vflip[v1];\
                   [v0][v1]vstack=inputs=2" inside_and_outside.MOV

transposerotate 应该是一样的,我正在使用另一个替代 hflip,vflip 来说明。不知道哪个最快