1. 使用ffmpeg转换视频播放速率
使用FFmpeg 修改视频播放速度需要同时调整视频和音频,对视频使用 setpts
滤镜,对音频使用 atempo
滤镜。例如,要将视频加速两倍,请使用 setpts=0.5*PTS
和 atempo=2.0
;要减速到原来的一半,请使用 setpts=2.0*PTS
和 atempo=0.5
。
修改视频速度
视频速度的调整是通过修改帧的显示时间戳(PTS)来实现的。
-
加速视频:
使用
setpts
滤镜,将倍数乘以一个小于1 的数值。例如,加速2 倍,使用setpts=0.5*PTS
。 -
减速视频:
使用
setpts
滤镜,将倍数乘以一个大于1 的数值。例如,减速到原来的一半,使用setpts=2.0*PTS
。
修改音频速度
音频速度的调整通过 atempo
滤镜实现,它能够重采样音频,保持音色不变。
-
加速音频:
使用
atempo
滤镜,将数值乘以一个大于1 的数值。例如,加速2 倍,使用atempo=2.0
。 -
减速音频:
使用
atempo
滤镜,将数值乘以一个小于1 的数值。例如,减速到原来的一半,使用atempo=0.5
。
同时调整音视频
要同时调整音视频的速度,需要结合使用这两个滤镜,并将两者串联到一起。命令格式。
ffmpeg -i <输入文件> -filter:v "setpts=<视频倍率>*PTS" -filter:a "atempo=<音频倍率>" <输出文件>
。
示例:加速2 倍。
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" output.mp4
。
注意事项
atempo
滤镜的倍率调整范围是[0.5, 2.0]。如果需要更高倍速,可以连续使用多个atempo
滤镜,如atempo=2.0,atempo=2.0
来实现4 倍加速。setpts
滤镜对视频速度的调整范围建议为[0.25, 4]。- 如果只需要调整视频速度,可以禁用音频 (
-an
),反之亦然。
2. 将m4a音频转为mp3
ffmpeg -i input.m4a -codec:a libmp3lame -qscale:a 2 output.mp3