# 视频倍速播放
# 视频
通过使用 av filter 中的 setpts 来实现:
ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
1
视频滤波器通过改变每一个 pts时间戳 来实现;
如果担心会出现丢帧的情况,可以使用 -r 指定输入帧数,如果源视频是30fps,我们想4倍播放:
ffmpeg -i input.mkv -r 120 -filter:v "setpts=0.25*PTS" output.mkv
1
参数支持的范围为 0.25-4。0.25 是四倍速,0.5 是二倍速,以此类推、
# 音频
通过 av filter 中的 atempo 来实现:
ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv
1
atempo 只支持 0.5-2.0 的数值,如果要调整成四倍速,需要按上面的写法来,填两组 2.0。
ffmpeg -i input.mkv -filter:"atempo = 2.0" -vn output.mkv atempo filter 配置区间在0.5和2.0之间,如果需要更高倍,可以使用多个 atempo filter 串在一起来实现,下面是实现4倍的参考:
# 同时对视频和音频倍速播放
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
1
# 合并B站视频和音频
ffmpeg -i 00.mp4 -i 00.mp3 -vcodec copy -acodec copy output.mp4
1
# 图像帧与视频拆分合并
# 拆分视频为图像
..\ffmpeg.exe -y -i .\test.avi %04d.png
1
-y
同意覆盖已有的
-i
输入视频
%04.d
的格式进行保存 ==》0001.png
# 合并图像为视频
..\ffmpeg.exe -y -framerate 25 -i %04d.png .\out.avi
1
-framerate
输入帧率
# FFmpeg 转封装
ffmpeg -i input.flv -vcodec copy -acodec copy output.mp4
1
# 转换 vp9 编码的 YouTube 上 webm 视频为 mov
for i in *.webm; do ffmpeg -i "$i" -pix_fmt yuv422p10le -c:v prores -profile:v 3 -vendor ap10 "$(basename "$i" .webm)".mov; done
1
注:视频嫌大了话可以用 -c:v libx265 转成HEVC的,如果嫌慢可以加 -preset faster,详见 http://trac.ffmpeg.org/wiki (opens new window)
# 参考链接
ffmpeg 视频倍速播放 和 慢速播放 (opens new window)
ffmpeg 拆分视频为图像 合并图像为视频 (opens new window)