拼接
ffmpeg -i 540_header.mp4 -i 540_body.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" output.mp4
增加unsafe参数,忽略分辨率,sar值等不同
ffmpeg -i 360_head.mp4 -i 360_body.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1:unsafe=1[outv][outa]" -map "[outv]" -map "[outa]" output.mp4
修改分辨率
ffmpeg -i head.mp4 -vf scale=200:400,setsar=1:1 video_640x480.mp4
修改sar值
ffmpeg -i head.mp4 -vf setsar=9:16 video_640x480.mp4
待解决问题
- sar值修改为什么有时会不生效(可能是被强制纠正了)
- 分辨率和sar值的关系(修改分辨率和sar有独立的命令修改,不会同步)
- demuxer,协议,和滤镜拼接的区别不是太理解
参考文档: 官方文档 stackoverflow