ffmpeg 处理视频,可以把视频做成快镜头(文件时长变短),也可以做成慢镜头(文件时长变长)。
1. 快镜头:
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4
其中:
[0:v]setpts=0.5*PTS[v]
意思是视频流变成0.5的倍;也就是原来的一半;
[0:a]atempo=2.0[a]
意思是音频流加快2.0倍;其实也是原来的一半长度。
2. 慢镜头
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=1.2*PTS[v];[0:a]atempo=1/1.2[a]" -map "[v]" -map "[a]" output.mp4
其中:
[0:v]setpts=1.2*PTS[v]
意思是视频流变成原来的1.2倍长;
[0:a]atempo=1/1.2[a]
意思是音频流也变成原来的1.2倍长(ffmpeg会自动计算1/1.2)。
【小结】建议用分数来设置音频倍数。比如把音视频都变成1.5倍:
setpts=1.5
atempo=1/1.5
3. 降低音频播放速度
ffmpeg -i input.mp3 -filter:a "atempo=3/4" -vn output.mp3
其中:
3/4 就是改成 3/4 的速度