# python_pika **Repository Path**: skyqi/python_pika ## Basic Information - **Project Name**: python_pika - **Description**: 项目名称:视频场景提取与识别系统 本项目是一个基于Python的视频场景提取和识别系统,它通过RabbitMQ消息队列协调任务流程,使用PySceneDetect进行视频场景分析,并将提取的场景保存为PNG文件,最后通过AI大模型进行场景文字分析。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-05-07 - **Last Updated**: 2024-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目名称:视频场景提取与识别系统 ## 项目简介 本项目是一个基于Python的视频场景提取和识别系统,它通过RabbitMQ消息队列协调任务流程,使用PySceneDetect进行视频场景分析,并将提取的场景保存为PNG文件,最后通过AI大模型进行场景文字分析。 ## 功能概述 - **视频推流**:客户端(手机)通过RTMP协议推流到服务器端(此步骤不在本项目代码范围内)。 - **流媒体文件保存**:将流媒体文件保存到NAS存储系统中。 - **RabbitMQ任务创建**:向RabbitMQ队列发送消息,创建场景提取任务。 - **视频场景分析**:使用PySceneDetect从MP4文件中分析视频,查找并提取场景。 - **场景保存**:将提取的场景保存为PNG文件。 - **AI场景文字识别**:将PNG文件提交给AI大模型,根据prompt和图片分析出场景文字。 ## 系统要求 - Python版本:3.8及以上 - RabbitMQ服务器:用于消息队列服务 - PySceneDetect:用于视频场景检测 - AI大模型服务:用于场景文字分析 ## RabbitMQ队列详细信息 - **队列名称**:`scene_extraction_queue` - **队列特性**:持久化,以确保消息不会在RabbitMQ重启后丢失。 ## 安装指南 确保RabbitMQ服务器已经安装并运行。 安装Python 3.8及以上版本。 安装必要的Python库: ```bash pip install pika PySceneDetect ``` ## sender.py 这个Python脚本利用pika库与RabbitMQ交互,用于发送消息到指定的队列。脚本导入了一些库,包括使用的ffmpeg,以及定义了处理时间的库和命令行参数解析器。脚本包含一个未实现的函数和一个用于获取命令行参数的函数。RabbitMQSender函数建立连接,声明队列,并发送硬编码的文件名到特定路由键。 ## receiver.py文件 Python脚本负责从RabbitMQ消息队列接收视频文件名,并使用FFmpeg生成视频缩略图。脚本首先建立与RabbitMQ服务器的连接,并声明一个队列用于接收消息。通过监听队列,脚本在收到消息时执行回调函数,该函数会打印消息并根据消息内容暂停一段时间后调用视频处理函数。视频处理包括文件存在性检查和缩略图生成。