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帧。
相关推荐
音视频牛哥20 分钟前
一款优秀的视频直播软件应具备哪些核心功能?结合 SmartMediaKit 谈实时音视频系统的能力边界
音视频·视频直播·低延迟rtsp播放器·gb28181接入·rtsp服务器·低延迟rtmp播放器·鸿蒙next rtsp
AI小码28 分钟前
把动作「画」给视频世界模型,跨本体双向推演,李飞飞参与
大数据·人工智能·算法·ai·大模型·音视频·编程
嵌入式-老费2 小时前
esp32开发与应用(边采样边播放音频)
音视频
中微极客4 小时前
Veo视频生成与Gemini Agent平台集成实践
数据库·人工智能·oracle·音视频
码龙-DragonCoding5 小时前
一键批量提取音频、提取视频
android·音视频·提取
中微极客6 小时前
2026年AI视频生成模型技术选型与工程实践
人工智能·音视频
cellurw6 小时前
20260723 六组件全流程编译打通与音频项目启动
linux·服务器·音视频
小柯南敲键盘6 小时前
跨马翻译:批量图片与视频字幕翻译,支持智能抠图
大数据·人工智能·python·音视频
5G微创业8 小时前
Python / Node.js 调用短视频去水印 API 完整示例(含 SDK)
python·node.js·音视频·api·sdk·短视频
Yeauty9 小时前
用 Whisper 转录前,你不用再离开 Rust
开发语言·rust·ffmpeg·音视频·视频