本文除了会讲到通过命令行处理倍速,还会讲到通过FFmpeg api的方式去处理音频倍速和视频倍速,进而合并成支持倍速的音视频发布成rtmp或者存成flv文件。
介绍FFmpeg的filter工具
音视频的倍速处理少不了filter这个工具,filter可以翻译成过滤器和滤波器。
按照处理数据的类型还可分为音频filter、视频filter、字幕filter,FFmpeg可以通过filter将音视频实现出非常多不同的filter效果,视频可以实现缩放、合并、裁剪、旋转、水印添加、倍速等效果,音频可以实现回声、延迟、去噪、混音、音量调节、变速等效果。
我们可以通过filter不同方式的组合去定制出我们想要的音视频特效
介绍FFmpeg命令行倍速
1、视频的倍速主要是通过控制filter中的setpts来实现,setpts是视频滤波器通过改变每一个pts时间戳来实现倍速的效果,如下只要把PTS缩小一半就可以实现2倍速,相反的是PTS增加一倍就达到2倍慢放的效果。
ffmpeg -i in.mp4 -filter:v "setpts=0.5*PTS" out.mp4
ffmpeg -i in.mp4 -filter:v "setpts=2.0*PTS" out.mp4
2、音频的倍速则是通过控制filter的atempo来实现,atempo的配置区间在0.5和2.0之间,如果需要更高倍速,则需要多个atempo串一起,下面是2、4倍速的实现命令。
ffmpeg -i in.mp4 -filter:"atempo=2.0" -vn out.mp4
ffmpeg -i in.mp4 -filter: