使用scale2ref与hstack实现视频并排对比时输出内容不符合预期的问题求助
我现在遇到一个FFmpeg处理视频的问题,想请教大家帮忙看看哪里出错了:
我有两个1440x1080格式的视频(没有其他流),想要把第一个视频放在左侧,第二个视频旋转90度顺时针后放在右侧,做一个运动动作的多角度并排对比。我原本以为理解了scale2ref和hstack的用法,但实际操作下来结果不对。
我先做了个初步测试,执行的FFmpeg命令是:
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说明scale2ref和hstack应该是生效了(1440+1080=2520),理论上输出的[out]应该是2520x1440的尺寸。
但实际生成的out.mp4却完全不符合预期:
- 视频分辨率依然是1440x1080
- 内容和原视频
first.mkv完全一致,没有任何并排或旋转的效果
我使用的FFmpeg版本是2023-11-15-git-78f55457c9-full_build,想问下到底哪里出错了?为什么输出视频没有应用滤镜链的处理结果?
备注:内容来源于stack exchange,提问作者EagleRainbow

