python代码把GIF 转成视频

YOLO 模型本身不直接支持 GIF 文件 ,因为 cv2.VideoCapture 和大多数深度学习模型只接受视频(MP4、AVI 等)或者图片序列。GIF 是多帧动画,但它不是标准的视频容器,所以不能直接用 VideoCapture 读。

方案 1:把 GIF 转成视频,用 moviepyimageio 转成 MP4

复制代码
from moviepy.editor import VideoFileClip

gif_path = "fight.gif"
video_path = "fight_from_gif.mp4"

clip = VideoFileClip(gif_path)
clip.write_videofile(video_path, fps=25)

方案 2:把 GIF 拆成帧

如果你只想处理帧,也可以拆帧(这种方式不生成视频,只能在内存中处理。):

复制代码
from PIL import Image
import cv2
import numpy as np

gif_path = "fight.gif"
im = Image.open(gif_path)

frames = []
try:
    while True:
        frame = np.array(im.convert("RGB"))
        frames.append(frame)
        im.seek(im.tell() + 1)
except EOFError:
    pass

# frames 是一个列表,每个元素是 numpy 数组
# 可以用你的 fight_model 逐帧检测
for frame in frames:
    results = fight_model(frame, conf=0.6, iou=0.2)
    # ...同之前处理
  • GIF → 视频(推荐) → YOLO 处理
  • 或 GIF → 拆帧 → YOLO 逐帧处理
相关推荐
杨超越luckly7 小时前
Agent应用指南:获取12306官网全量站点及其编码信息
python·数据挖掘·数据分析·可视化·12306
16月6日-晴7 小时前
Java面向对象进阶—static
java·开发语言
爱跳舞的烤冷面7 小时前
自学嵌入式第16天(数据结构篇--链表进阶操作)
开发语言
持敬chijing7 小时前
PHP开发-环境搭建-安装phpstudy-vscode工具
开发语言·vscode·php
2401_868534788 小时前
MATLAB:车牌识别
python·django
卷无止境8 小时前
用 FastAPI 撑起大文件的上传下载:从流式处理到断点续传的完整实践
后端·python·fastapi
charlie1145141918 小时前
Cinux · 第一次跳进 Ring 3:用户态与特权隔离
开发语言·c++·操作系统·开源项目
躺不平的理查德8 小时前
Windows C++ 第三方库使用流程备忘录--OpenCV
开发语言·c++
张龙6878 小时前
别再裸调大模型了:用 60 行 Python 给 LLM 调用加上「重试 + 超时 + 降级」
python