常用的 ffmpeg 命令

2023-09-13 · 392 chars · 2 min read

不是专业做音视频相关工作的,只是偶尔用 ffmpeg 处理下视频,几个常用的命令记录一下,方便日常查找。

慢放 & 快放视频#

ffmpeg -i ./input.mp4 -filter:v "setpts=5*PTS" output.mp4

input.mp4 放慢 5 倍,另存为 output.mp4

加速视频就用小数,比如速度加快 5 倍:

ffmpeg -i ./input.mp4 -filter:v "setpts=0.2*PTS" output.mp4

Tip

对于前端来说,录个屏,慢放,能更加细致的查看交互&动画细节,对体验优化很有帮助!

片段截取#

ffmpeg -ss 6 -t 4 -accurate_seek -i input.mp4 -codec copy output.mp4

截取 input.mp4,从第 6 秒开始,截取 4 秒,另存为 output.mp4

也可以按照时分秒来写。

ffmpeg -ss 00:00:06 -t 00:00:04 -accurate_seek -i input.mp4 -codec copy output.mp4

分辨率调整#

ffmpeg -i input.mp4 -filter:v scale=320:-1 -c:a copy output.mp4

读取 input.mp4,调整分辨率,另存为 output.mp4640:-1 的意思就是宽度设置为 640,保持宽高比,高度自适应。

不过有时候这么用会报错:

[libx264 @ 0x7f977cf06840] height not divisible by 2 (320x711)
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

异常信息写的很明显了,原始视频按照宽度 320,保持宽高比计算后,是 320x711,高度不能被 2 整除。此时明确写一下高度即可,比如 scale=320:712

还有些更好的方案可以看这里

视频流下载#

ffmpeg 也可以用来下载视频流,比如:

ffmpeg -i https://xxx.com/xxx.m3u8 -c copy output.mp4
赞赏

微信