与 scale2ref 和 hstack 并排比较:输出内容错误

与 scale2ref 和 hstack 并排比较:输出内容错误

我有两个视频(没有其他流),格式为 1440x1080。第一个视频应放在第二个视频的左侧(右侧),而第二个视频必须顺时针旋转 90°(目的是并排比较从两个不同角度录制的运动动作)。我以为我已经理解了背后的scale2ref想法hstackhttps://superuser.com/a/1342314,但显然,我没有:

我的尝试在以下初步测试中出现错误:

ffmpeg -y -hwaccel cuda -hwaccel_output_format cuda -i first.mkv -i second.mkv -filter_complex_script combine.script -map "[out]" -profile:v high -c:v h264_nvenc -b:v 125M out.mp4

combine.script看起来像这样:

[1:v]transpose=dir=clock[rot];
[rot]split[rot1][rot2];
[rot1][0:v]scale2ref=iw:main_h[sec];
[sec]setsar=1,drawbox=c=black:t=fill[sec2];
[sec2][rot2]hstack[outtemp];
[outtemp]showinfo[out]

过滤器看起来正确,因为showinfo控制台上提供了以下输出:

[Parsed_showinfo_6 @ 000002b8d70ea380] n:1420 pts:   7753 pts_time:7.753   
duration:      0 duration_time:0       fmt:yuv420p cl:unspecified 
sar:1/1 s:2520x1440 i:P iskey:0 type:? checksum:6E7F7B44 
plane_checksum:[3481517B 70563476 BFD1F544] mean:[55 129 126] stdev:[54.3 16.0 13.8]

请注意,s:2520x1440这里提到了,因此scale2refhstack必须正常工作(1440 + 1080 = 2520) - 因此[out]尺寸必须为 2520x1440。但是,查看时out.mp4,我发现

  • 视频格式仍然是1440x1080,
  • 内容和 是一样的first.mkv

ffmpeg 的版本是2023-11-15-git-78f55457c9-full_build

我做错了什么?为什么out.mp4显然没有收到过滤器图的输出?

答案1

您已将参考输出留在

[rot1][0:v]scale2ref=iw:main_h[sec];

未标记,因此它已被发送到第一个(这里,唯一一个)输出文件。

如果我正确理解了您的需求,您想要的是这个:

[1:v]transpose=dir=clock[rot];
[rot][0:v]scale2ref=oh*mdar:ih[sec][pri];
[pri][sec]hstack[out]

相关内容