ffmpeg 第17章 更改视频播放速度 ffmpeg 第17章 更改视频播放速度

2024-12-01

一、概述

要更改 MP4 文件的播放速度,我们可以通过修改视频的 pts(显示时间戳)来实现。

FFmpeg 中有一个 setpts 滤镜,可以用来调整视频的播放速度。

二、加速视频

将视频的播放速度加倍(即 2 倍速播放),可以使用以下命令:

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output_fast.mp4

解释:

  • -i input.mp4:输入的 MP4 文件

  • -filter:v "setpts=0.5*PTS":通过设置 pts 为原来的 0.5 倍来加速视频

  • output_fast.mp4:生成的加速后的视频文件

三、减慢视频

将视频的播放速度减半(即 0.5 倍速播放),则可以使用以下命令:

ffmpeg -i input.mp4 -filter:v "setpts=2.0*PTS" output_slow.mp4

解释:

  • -filter:v "setpts=2.0*PTS":通过设置 pts 为原来的 2 倍来减慢视频

四、同时更改音频速度

通常情况下,仅调整视频速度会导致音画不同步。

如果希望音频和视频同时加速或减慢,可以使用 atempo 滤镜。

需要注意的是,atempo 滤镜只能支持 0.5 到 2.0 倍的速度调整。

4.1、加速视频和音频

以下命令将视频和音频同时加速到 2 倍速:

ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output_fast_with_audio.mp4

4.2、减慢视频和音频

以下命令将视频和音频同时减速到 0.5 倍速:

ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=2.0*PTS[v];[0:a]atempo=0.5[a]" -map "[v]" -map "[a]" output_slow_with_audio.mp4

五、注意事项

极端速度变化:如果需要更大幅度的速度变化,可以使用多个 atempo 滤镜。例如,要实现 4 倍速播放,可以链式使用两个 atempo=2.0 滤镜。

帧率调整:大幅减慢视频速度时,可能需要调整帧率以保持流畅的播放效果。

阅读 203