lxq.link
postscategoriestoolsabout

FFmpeg 视频处理

ffmpeg 是一个开源跨平台,被广泛使用的视频处理工具。

官网地址:https://ffmpeg.org/

视频截图

# 从20秒截取一帧
ffmpeg -ss 20 -i video.mp4 -vframes 1 -y video.jpg

# 从1小时30分0秒截取一帧
ffmpeg -ss 1:30:00 -i video.mp4 -vframes 1 -y video.jpg

视频转换GIF

# 从第20秒截取10帧生成gif
ffmpeg -ss 20 -i video.mp4 -vframes 10 -f gif video.gif

# 调整输出的文件大小
ffmpeg -ss 20 -i video.mp4 -vframes 10 -s 160x90 -f gif video.gif

# 从第20秒截取一个10秒时长的gif
# 宽度600px,高度自适应 (宽度如果小于原视频,会影响清晰度)
# 循环播放
ffmpeg -ss 20 -t 10 -i video.mp4 -vf "fps=10,scale=600:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 video.gif

保存hls(m3u8)/rtmp的视频/直播流

ffmpeg -i 'rtmp://example.com/xxx' -c copy -f mp4 output.mp4

显示帮助:

ffmpeg --help

部分参数说明:

  • -y 覆盖视频,执行完命令,输出的文件会直接覆盖原同名文件;
  • -ss 起始时间,可以用秒来做单位,也可以指定为一个具体的时间。比如 -ss 20 就是从视频的20秒处开始处理,-ss 1:30:00 就是从1小时30分0秒开始处理;
  • -i 输入
  • -t 截取的视频时长
  • -loop 控制循环次数 -loop -1 不循环 -loop 0 无限循环 -loop 2 循环两次
2020-05-18