用 FFmpeg 调整视频播放速度

同时调整视频时间戳和音频节奏,把长视频加速或减速保存,画面与声音始终保持同步。

Linux视频音频命令行FFmpeg低风险
执行 ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" -af "atempo=2.0" output.mp4 即可 2 倍速播放(减速改为 setpts=2*PTS、atempo=0.5)。

01命令

命令
$ ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" -af "atempo=2.0" output.mp4

02作用说明

setpts 会缩放每个视频帧的显示时间戳:系数小于 1 表示加速,大于 1 表示减速。音频由 atempo 处理,它在变速的同时不变调,人声听起来依然自然。两个系数必须互为倒数,否则画面和声音会逐渐错位;减速到 0.5 倍以下时,单个 atempo 不支持低于 0.5,需要串联两个滤镜,例如 atempo=0.5,atempo=0.5。

03风险

风险低风险
使用条件ffmpeg (sudo apt install ffmpeg / sudo dnf install ffmpeg)
!注意: setpts 和 atempo 必须严格互为倒数(如 0.25*PTS 配 atempo=4.0),否则声音会与画面逐渐不同步。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

  • ffmpeg(1) — Linux manual page
    Arch Linux · community · 2026-09-17
    依据: Documents -vf and -af filter chain application to the output file.
  • FFmpeg Filters Documentation (setpts, atempo)
    FFmpeg · vendor-doc · 2026-09-17
    依据: setpts scales presentation timestamps to change video speed; atempo changes audio tempo with a supported range of 0.5 to 100 (chaining covers lower rates).

最后验证: 2026-09-18 · 分类: 媒体