FFmpeg使用指南(将多张连续的照片合成一个视频)
到下载,我用的是windows,这边注意我们下载点击 “Windows builds from gyan.dev”选择如 “ffmpeg-git-full.7z” 或 “ffmpeg-6.0-full_build.zip” 的静态包下载下载完后解压缩,我们可以看到一个bin文件夹,我们需要把这个路径加到我们的环境变量中。我用的是win11操作系统,我们按照设置-高级系统设置-高级-环境变量-系统变
1.安装
到官网下载,我用的是windows,这边注意我们下载点击 “Windows builds from gyan.dev”

选择如 “ffmpeg-git-full.7z” 或 “ffmpeg-6.0-full_build.zip” 的静态包下载

下载完后解压缩,我们可以看到一个bin文件夹,我们需要把这个路径加到我们的环境变量中。我用的是win11操作系统,我们按照设置-高级系统设置-高级-环境变量-系统变量-path这个顺序将bin的路径加入进去。

2.准备工作
将所有图片放在同一文件夹,并按照连续数字命名(如 img001.jpg, img002.jpg, …),最好所有图片分辨率相同。
这里可以用一个pyhton脚本将所有图片统一命名,我们在图片所在文件夹下创建一个batch_rename.py的python脚本
#!/usr/bin/env python3
# batch_rename.py
# 将指定目录下的图片文件(或其他类型文件)按连续数字重命名,如 img001.jpg, img002.jpg, ...
import os
import sys
import argparse
def batch_rename(
folder: str,
prefix: str = "img",
start_index: int = 1,
digits: int = 3,
extension: str = None
):
"""
批量重命名文件:
- folder: 目标文件夹路径
- prefix: 文件名前缀
- start_index: 起始序号
- digits: 序号位数
- extension: 只处理指定扩展名(不含点),如 jpg、png;若为 None,则处理所有文件
"""
# 获取所有文件并过滤
files = sorted(
f for f in os.listdir(folder)
if os.path.isfile(os.path.join(folder, f))
and (extension is None or f.lower().endswith(f".{extension.lower()}") )
)
total = len(files)
if total == 0:
print("没有找到符合条件的文件。请检查目录和扩展名设置。")
return
# 重命名
for idx, filename in enumerate(files, start=start_index):
old_path = os.path.join(folder, filename)
# 构造新文件名
seq = str(idx).zfill(digits)
ext = os.path.splitext(filename)[1].lower()
new_name = f"{prefix}{seq}{ext}"
new_path = os.path.join(folder, new_name)
# 如果新文件存在,先提示并略过
if os.path.exists(new_path):
print(f"跳过:目标文件已存在 {new_name}")
continue
os.rename(old_path, new_path)
print(f"重命名:{filename} -> {new_name}")
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description="批量重命名文件为连续数字格式"
)
parser.add_argument(
"folder", help="目标文件夹路径"
)
parser.add_argument(
"-p", "--prefix", default="img",
help="文件名前缀,默认 img"
)
parser.add_argument(
"-s", "--start", type=int, default=1,
help="起始序号,默认 1"
)
parser.add_argument(
"-d", "--digits", type=int, default=3,
help="序号位数,默认 3 位"
)
parser.add_argument(
"-e", "--ext", default=None,
help="指定扩展名(不含点),如 jpg;默认处理所有文件"
)
args = parser.parse_args()
batch_rename(
folder=args.folder,
prefix=args.prefix,
start_index=args.start,
digits=args.digits,
extension=args.ext
)
这里我们什么都不需要修改,我们按win+r后输入cmd再回车打开脚本所在文件夹路径(或者更简单我们之间在资源管理器里的脚本文件夹下的在地址栏空白处点击一下,输入 cmd 然后按回车)然后运行命令
python batch_rename.py D:/photos/slideshow_imgs -p img -s 1 -d 3 -e jpg
-
D:/photos/slideshow_imgs:要重命名的文件夹路径 -
-p img:前缀img(默认) -
-s 1:序号从 1 开始(默认) -
-d 3:序号 3 位数,自动补零(默认) -
-e jpg:只处理.jpg文件;省略-e则处理所有文件
3.运行
同样的在终端打开图片所在文件夹后,输入指令
ffmpeg -framerate 24 -i img%03d.jpg -c:v libx264 -pix_fmt yuv420p slideshow.mp4
-
-framerate 24:读入帧率 24fps。 -
-i img%03d.jpg:匹配img001.jpg~img999.jpg。 -
-c:v libx264:用 H.264 编码。 -
-pix_fmt yuv420p:提高兼容性。 -
slideshow.mp4:输出文件就在当前文件夹。
直接回车就会看到逐帧合成并编码的进度条,到此就完成了!
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)