ffmpeg 调整音视频播放速度

1. 调整视频速率

1.1 原理

调整视频速率的原理为:修改视频的pts,dts
此过程由于不用进行解码编码,所以费时很少

1.2 setpts修改视频速率

ffmpeg -i input.mkv -an -filter:v "setpts=0.5*PTS" output.mkv

注意:

  • 调整速度倍率范围[0.25, 4]
  • 如果只调整视频的话最好把音频禁掉
  • 对视频进行加速时,如果不想丢帧,可以用-r 参数指定输出视频FPS
ffmpeg -i input.mkv -an -r 60 -filter:v "setpts=2.0*PTS" output.mkv

2. 调整音频速率

2.1 原理

简单的方法是调整音频采样率,但是这种方法会改变音色,
一般采用通过对原音进行冲采样,差值等方法。

2.2 atempo filter

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

注意:

  • 倍率调整范围为[0.5, 2.0]
  • 如果需要调整4倍可采用以下方法:
ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv

3. 同时调整

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

4. 参考文献

[1] http://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video

你可能感兴趣的:(ffmpeg,Android,FFmpeg多媒体,ffmpeg,视频,变速,setpts,atempo)