ffmpeg(六):图片与视频互转命令

图像序列转视频(多张图片 ➜ 视频)

ffmpeg -framerate 25 -i image_%03d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4

参数说明

  • image_%03d.jpg:文件名格式(如 image_001.jpg、image_002.jpg)。
  • -framerate 25:输入帧率(25fps)。
  • -c:v libx264:使用 H.264 编码。
  • -pix_fmt yuv420p:兼容大多数播放器。

补充选项

  • 指定起始编号:
ffmpeg -framerate 30 -start_number 100 -i frame_%03d.png -c:v libx264 -pix_fmt yuv420p out.mp4

视频转图像序列(视频 ➜ 多张图片)

ffmpeg -i input.mp4 image_%04d.png
  • 限制帧率(例如每秒提取一帧):
ffmpeg -i input.mp4 -vf fps=1 image_%03d.jpg
  • 只提取第一帧(封面图):
ffmpeg -i input.mp4 -frames:v 1 thumbnail.jpg

制作 GIF 动图(图像 ➜ GIF)

ffmpeg -framerate 10 -i frame_%03d.png output.gif
  • 优化色彩(避免颗粒感):
ffmpeg -i frame_%03d.png -filter_complex "[0:v] palettegen" palette.png
ffmpeg -i frame_%03d.png -i palette.png -filter_complex "[0:v][1:v] paletteuse" optimized.gif

GIF 转视频

ffmpeg -i input.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4

注意:有些编码器(如 libx264)要求分辨率为偶数,所以用了 scale=trunc(iw/2)*2:trunc(ih/2)*2

提取特定时间段的图片

ffmpeg -ss 00:01:00 -i input.mp4 -t 5 -vf fps=2 img_%03d.jpg

说明:

  • -ss 00:01:00:从第1分钟开始。
  • -t 5:持续5秒。
  • -vf fps=2:每秒提取2帧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值