多模态(3):实战 GPT-4o 视频理解

最近,OpenAI 团队的 GPT-4o 模型,在多模态方面的能力有了大幅提升,这次我们就使用 GPT-4o 完成一个视频理解的实战。

1. 环境搭建

1.1 安装 FFmpeg

做视频处理,我们需要用到 FFmpeg 这款功能强大的开源多媒体处理工具。FFmpeg 用于处理音频、视频和其他多媒体文件,可以实现以下功能:

  • 转码:将多媒体文件从一种格式转换为另一种格式,例如将视频从 MP4 转换为 AVI。
  • 剪辑:从多媒体文件中提取片段或合并多个片段。
  • 处理:调整视频的尺寸、比特率、帧率,或音频的采样率、声道数等。
  • 添加效果:为视频添加滤镜、字幕、水印等。
  • 流媒体:将多媒体文件实时传输到网络上。

首先我们来安装 FFmpeg 工具。我使用的是 Mac 电脑,可以直接通过 brew 来安装。如果同学们使用的是其它平台,也可以参考官网的教程进行安装,这里就不赘述了。

bash 复制代码
brew install ffmpeg

安装完成后,可以通过下面的命令进行验证:

bash 复制代码
ffmpeg -version

1.2 安装依赖库

除了 FFmpeg 之外,我们还需要安装 opencv-python 和 moviepy,它们是 Python 领域非常主流的计算机视觉库,具备强大的音视频处理能力

复制代码
pip install --upgrade opencv-python moviepy

2. 视频抽帧

因为 OpenAI 官方暂时还没有直接开放视频理解的 API,所以我们只能曲线救国,先对视频进行抽帧,提取出一组帧的图片,再批量发送给 GPT-4o 进行理解。

我利用大模型生成了一段 5秒的搞笑视频:

对该视频进行抽帧,按照每1秒提取一帧,总共可以提取出5帧的内容。具体代码如下:

3. 视频理解

抽帧完成后,我们就可以将这些图片批量发送给 GPT-4o,让其生成视频内容介绍。

代码如下:

python 复制代码
import os
from typing import List

import dotenv
from openai import OpenAI

# 加载环境变量
dotenv.load_dotenv()

# 创建OpenAI客户端
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"),
                base_url=os.getenv("OPENAI_API_BASE")
                )


def introduction(frames: List) -> str:
    """
    生成视频介绍
    :param frames: 视频帧列表
    :return: 视频内容介绍
    """

    # 使用GPT-4o模型,生成视频介绍
    response = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {"role": "system", "content": "你是一位资深的内容编辑。请以Markdown格式,生成视频的介绍。"},
            {"role": "user", "content": [
                "下面是视频的图像帧",
                *map(lambda x: {"type": "image_url",
                                "image_url": {"url": f'data:image/jpg;base64,{x}', "detail": "low"}},
                     frames)
            ]},
        ],
        temperature=0,
    )
    return response.choices[0].message.content

执行代码,可以看到 GPT-4o 为我们生成了 Markdown 格式的内容:

bash 复制代码
# 视频介绍

在这段富有喜剧色彩的视频中,乡村田野的宁静被一位尝试骑行水坑的年轻人打破。阳光明媚的一天,他戴着大帽子,骑着复古自行车,试图勇敢地穿越一条泥泞的小路。

## 场景描绘

- **骑自行车者的冒险**: 骑车者穿着淳朴的服装,头戴宽檐帽,给人一种漫游田园的印象。在他的自行车后座绑着一只体型小巧的家禽,为场景增添了趣味性。
- **挑战与失误**: 视频的高潮部分呈现了骑车者试图跨越路面上的浅水坑。尽管动作充满信心,但他最终失去平衡,坠入水中,溅起大片水花,构成了幽默的结局。
- **观众的反应**: 在画面的一侧,可以看到一群穿着传统服装的人们,他们以各种姿态观望骑自行车者的冒险,脸上似乎带着惊讶和喜悦。 

## 视频氛围

整个场景在绿色的草地和清澈的蓝天背景中进行,表现出乡村生活的悠然宁静,同时以幽默的方式捕捉人们日常尝试中的滑稽瞬间。这段视频不仅让观众感受到幽默,也让人赞美大自然的美丽与朴实生活的简单乐趣。

可以看出,GPT-4o 基本 Get 到了视频内容的精髓。

小结

本篇文章中,我们全面了解了 GPT-4o 的强大功能及其在多模态 AI 应用开发中的巨大潜力,并通过实际操作体验了如何利用 GPT-4o 进行视频理解。

GPT-4o 作为全新的端到端多模态模型,能够在极短的时间内处理多种模态输入和输出,使得人机交互更加自然和高效。尤其是在音频分析和视频理解方面,GPT-4o 的表现令人印象深刻。

大模型在多模态方面能力的持续提升,将为 AI 应用的开发带来革命性的变化,一方面可以大幅提升用户体验;另一方面也可以加速促进 AI 应用在各行各业的广泛应用,并不断催生出更多创新的解决方案。

相关推荐
孤狼程序员6 小时前
DeepSeek文献太多太杂?一招制胜:学术论文检索的“核心公式”与提问艺术
人工智能·文献搜索·deepseek
Sui_Network6 小时前
凭借 Seal,Walrus 成为首个具备访问控制的去中心化数据平台
大数据·人工智能·科技·web3·去中心化·区块链
老蒋新思维6 小时前
2025变现打法:AI+IP实现高效变现|创客匠人
人工智能·知识付费·创始人ip·知识变现
TechubNews7 小时前
Webus 与中国国际航空合作实现 XRP 支付
大数据·网络·人工智能·web3·区块链
图欧学习资源库7 小时前
人工智能领域、图欧科技、IMYAI智能助手2025年8月更新月报
人工智能·科技
一颗20217 小时前
深度解读:PSPNet(Pyramid Scene Parsing Network) — 用金字塔池化把“场景理解”装进分割网络
人工智能·深度学习·计算机视觉
奋进的电子工程师7 小时前
汽车软件研发智能化:AI在CI/CD中的实践
人工智能·ci/cd·汽车·软件工程·软件构建·代码规范
摘星编程7 小时前
Cursor Pair Programming:在前端项目里用 AI 快速迭代 UI 组件
前端·人工智能·ui·typescript·前端开发·cursorai
ZHOU_WUYI7 小时前
门控MLP(Qwen3MLP)与稀疏混合专家(Qwen3MoeSparseMoeBlock)模块解析
人工智能·llm
黄焖鸡能干四碗7 小时前
信息系统安全保护措施文件方案
大数据·开发语言·人工智能·web安全·制造