【python实用小脚本-148】Python图片转视频:把零散照片一键合成vlog,告别手动剪辑

发布于:2025-07-19 ⋅ 阅读:(10) ⋅ 点赞:(0)

Python图片转视频:把零散照片一键合成vlog,告别手动剪辑

关键词:Python、图片合成视频、无剪辑vlog、小白脚本、OpenCV


故事开场:旅行照片塞满文件夹,却做不出一条vlog?

想象一下,你刚从云南回来,相机里躺着 300 张照片,想做成 30 秒的 vlog 发朋友圈。

  • 打开剪映?导入、排序、调比例,半小时过去还没开始。
  • 用手机 App?导出时突然弹出“VIP 才能去水印”。
  • 你只想“把照片按顺序连成视频”,却找不到一个一键按钮。

这把“瑞士军刀”——img2vid.py,只要一条命令,就能把文件夹里的所有照片按名字顺序自动合成为视频不加水印、不用剪辑,3 秒搞定。


代码解析:像拼乐高一样拆开看

① 告诉脚本“照片在哪、视频叫啥”

import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-p", "--path", required=True, help="照片文件夹路径")
ap.add_argument("-o", "--output_video", type=str, required=True, help="输出视频的名字")
args = vars(ap.parse_args())

通俗解释
就像你在快递单上写“取件地址”和“包裹名字”。
终端里敲:

python img2vid.py -p C:/照片 -o 旅行vlog.avi

脚本就懂了。

② 把照片“排队”并统一尺寸

from imutils import paths
imagePaths = list(paths.list_images(args["path"]))

通俗解释
把文件夹里所有 jpg/png 按文件名排好队,准备上场。

for filename in imagePaths:
    img = cv2.imread(filename)
    img = cv2.resize(img, (1400, 800))   # 统一成 1400×800,防止大小不一

通俗解释
如果照片有大有小,先拉到同一尺寸,不然视频会“抽搐”。

③ 创建“画布”——告诉视频要写多长、多宽

out = cv2.VideoWriter(
    args["output_video"],
    cv2.VideoWriter_fourcc(*'DIVX'),  # 视频格式
    1,                                # 每秒几张照片
    (1400, 800),                      # 宽×高
    True
)

通俗解释
VideoWriter 就像一张空白录像带,告诉它尺寸和播放速度(1 fps = 1 秒 1 张照片)。

④ 把照片“写进”画布

for i in range(len(img_array)):
    out.write(img_array[i])
out.release()

通俗解释
循环把每张照片写进去,最后 release 像按下“停止录制”,视频文件就生成了。


如果还想更厉害?两个超简单扩展

扩展1:加参数控制播放速度

在终端里再加一个 --fps,想多快就多快:

ap.add_argument("--fps", type=int, default=1, help="每秒放几张照片")
# 使用
out = cv2.VideoWriter(args["output_video"], fourcc, args["fps"], (w, h), True)

终端示例:

python img2vid.py -p C:/照片 -o fast.avi --fps 5

一秒放 5 张,动感加倍。

扩展2:批量给不同文件夹生成视频

把脚本包成函数,循环扫多个文件夹:

import os
root = "C:/旅行合集"          # 里面每个子文件夹都是一天的照片
for day in os.listdir(root):
    day_path = os.path.join(root, day)
    if os.path.isdir(day_path):
        out_name = f"{day}.avi"
        # 这里调用原脚本的核心逻辑即可

一天一个 vlog,十分钟搞定全年回忆。


总结:一条命令,把照片变电影

img2vid.py 只有几十行,却像一把随身小瑞士军刀:
你只需告诉它“照片文件夹”和“视频名字”,它就把零散瞬间连成流畅故事。
下次旅行回来,别再手动拖轨道,打开终端敲一行命令,让照片自己动,让你多睡半小时

源码获取

完整代码已开源,包含详细的注释文档:
🔗 [GitCode仓库] https://gitcode.com/laonong-1024/python-automation-scripts
📥 [备用下载] https://pan.quark.cn/s/654cf649e5a6 提取码:f5VG


网站公告

今日签到

点亮在社区的每一天
去签到