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 逐帧处理
相关推荐
木头程序员2 小时前
关于load_data_fashion_mnist函数运行原理以及运行速度慢解决方案
人工智能·python·深度学习·d2l
林姜泽樾2 小时前
python入门第六课,其他字符串格式化和input
开发语言·python·pycharm
代码改善世界2 小时前
【C++初阶】手撕C++ string类
java·开发语言·c++
yunpeng.zhou2 小时前
深度理解agent与llm之间的关系、及mcp与skill的区别
人工智能·python·ai
追雨潮2 小时前
内存向量检索引擎设计与实现:C# 轻量级 Milvus 替代方案
开发语言·c#·milvus
隐形喷火龙2 小时前
CentOS7 基于 FRP 实现 Java Web 服务内网穿透实操记录
java·开发语言
小碗羊肉2 小时前
【从零开始学Java | 第二十五篇】TreeSet
java·开发语言
wjs20242 小时前
NumPy 从数值范围创建数组
开发语言
java1234_小锋2 小时前
Java高频面试题:ElasticSearch如何做性能优化?
java·开发语言·elasticsearch·面试