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

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

bash 复制代码
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:兼容大多数播放器。

补充选项

  • 指定起始编号:
bash 复制代码
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
  • 限制帧率(例如每秒提取一帧):
bash 复制代码
ffmpeg -i input.mp4 -vf fps=1 image_%03d.jpg
  • 只提取第一帧(封面图):
bash 复制代码
ffmpeg -i input.mp4 -frames:v 1 thumbnail.jpg

制作 GIF 动图(图像 ➜ GIF)

bash 复制代码
ffmpeg -framerate 10 -i frame_%03d.png output.gif
  • 优化色彩(避免颗粒感):
bash 复制代码
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 转视频

bash 复制代码
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

提取特定时间段的图片

bash 复制代码
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帧。
相关推荐
网管NO.143 分钟前
视频核心技术 08:播放器原理与秒开优化 —— 首帧链路、缓冲策略与卡顿根治
音视频
searchforAI1 小时前
视频画面里的PPT怎么提取?视频转图文讲义的实操教程
人工智能·学习·ai·aigc·powerpoint·音视频·贴图
视频号下载助手1 小时前
2026实测可用!全网视频无水印保存完整操作方法
音视频
Database_Cool_2 小时前
alibabacloud-polardb-ai-assistant:让大模型成为你的数据库运维搭档
ffmpeg
广州灵眸科技有限公司3 小时前
瑞芯微(EASY EAI)RV1126B 音频电路
开发语言·人工智能·深度学习·算法·yolo·音视频
孤舟簔笠翁3 小时前
音频均衡器(EQ)详解
音视频
jushi89994 小时前
网易爆米花 网盘视频聚合播放器 支持各大网盘、NAS挂载
音视频
MicroTech20254 小时前
微算法科技(NASDAQ :MLGO)发布基于NEQR技术的新型量子视频处理算法,重构智能视觉底层逻辑
科技·算法·音视频
REDcker5 小时前
QUIC协议详解1
音视频·webrtc·实时音视频·webtransport
ximu_polaris5 小时前
ffmpeg6.1 Windows编译支持drawtext滤镜功能
ffmpeg