用FFmpeg将图片转为视频
📸 图片转视频在创作中的应用

将静态图片合成为视频在多种创作场景中广泛使用:

  • 幻灯片制作:将演示文稿或照片集合转为视频,配合背景音乐和转场效果,制作产品展示、旅行回忆或活动总结,比静态幻灯片更具感染力。
  • 延时摄影合成:将延时摄影的连拍照片序列合成为流畅视频。帧率选择直接影响效果——24fps呈现电影感延时,30fps则更加流畅。照片数量越多、间隔越均匀,合成效果越好。
  • 单图循环视频:使用单张图片配合 -loop 1 -t 秒数 生成长视频,适合做视频背景、片头片尾、歌词视频的静态背景板。搭配 zoompan 滤镜可产生缓慢运镜效果。
  • 缩图优化:对于静态图像内容,使用 -tune stillimage 编码参数可显著减小文件体积,同时保持高画质,适合需要长时间循环播放的场景。
📖 FFmpeg图片序列转视频详解

将多张图片按顺序合成为视频,是FFmpeg最常见的用途之一。核心思路是:将图片文件名按数字序号排列后,FFmpeg会按序号顺序逐帧读取并编码为视频流。

  • 文件名格式 image-%03d.jpg%03d 表示3位数字序号(001, 002, 003...),FFmpeg按此序号顺序读取图片。如果序号是4位则用 %04d,依此类推。
  • -framerate:控制每秒播放多少张图片,单位 fps。例如 -framerate 25 表示每秒切换25张图片。这个参数直接影响幻灯片的切换速度——数值越大切换越快,画面越流畅;数值越小则每张图片停留时间越长。
  • -loop 1 -t <秒数>:针对单张图片循环生成视频。 -loop 1 表示将输入图片循环读取, -t 10 则控制输出视频的总时长为10秒。组合使用即可用一张图片生成指定长度的视频。
  • -tune stillimage:针对静态图像优化的编码参数。告诉编码器素材是静态图片而非动态视频,从而在保持画质的同时减小文件体积。适合幻灯片、菜单背景等场景。
  • -pix_fmt yuv420p:设置像素格式为 YUV 4:2:0,这是绝大多数播放器和视频平台(YouTube、B站、微信等)兼容性最好的格式。若不指定,FFmpeg可能使用其他格式导致部分播放器无法正常解码。
广告
{{v.name}}
按图片顺序生成视频,代码如下
$ ffmpeg -framerate 25 -i "image-%03d.jpg" -c:v libx264 -pix_fmt yuv420p output.mp4
单图生成视频,代码如下
$ ffmpeg -loop 1 -i "input.jpg" -t 10 -c:v libx264 -tune stillimage -pix_fmt yuv420p output.mp4
调整清晰度/文件大小(码率),代码如下
$ ffmpeg -framerate 25 -i "image-%03d.jpg" -c:v libx264 -b:v 4M output_control_size.mp4
调整清晰度/文件大小(CRF),代码如下
$ ffmpeg -framerate 25 -i "image-%03d.jpg" -c:v libx264 -crf 23 output_control_quality.mp4
统一图片分辨率,代码如下
$ ffmpeg -framerate 25 -i "image-%03d.jpg" -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:v libx264 -pix_fmt yuv420p output_scaled.mp4
只用前N秒的图片生成视频,代码如下
$ ffmpeg -framerate 25 -i "image-%03d.jpg" -c:v libx264 -t 30 output_30s.mp4
友链