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 逐帧处理
相关推荐
MeixianAgent2 小时前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m6255 小时前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python
SelectDB1 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
荣码1 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
金銀銅鐵2 天前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li2 天前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
小九九的爸爸2 天前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程
阿耶同学2 天前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员
花酒锄作田3 天前
Pydantic校验配置文件
python
hboot3 天前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络