基于mediamtx+ffmpeg实现视频推流,基于python-deffcode实现视频拉流

软件依赖:mediamtx、ffmpeg

python包依赖:deffcode

mediamtx下载地址:https://github.com/bluenviron/mediamtx/releases

ffmeg下载地址:https://ffmpeg.org/download.html

deffcode安装命令:pip install deffcode

1、mediamtx下载安装

MediaMTX(原名 rtsp-simple-server)是一款即用型、零依赖的实时媒体服务器和媒体代理,可用于发布、读取、代理、录制和播放视频和音频流。它被设想为一个"媒体路由器",可将媒体流从一端路由到另一端。

其支持的流协议有:

打开https://github.com/bluenviron/mediamtx/releases/tag/v1.9.0,根据自己的硬件环境+操作系统下载软件。

下载后解压文件,得到mediamtx.exe与mediamtx.yml。

mediamtx.ym是软件配置文件,其可以配置各种协议的默认端口,如rtspAddress设置

2、进行推流与拉流

2.1 下载安装ffmpeg

打开 https://github.com/BtbN/FFmpeg-Builds/releases ,根据自己系统下载软件包

解压项目,同时将 ffmpeg-master-latest-win64-gpl-shared\bin 的路径添加到系统环境变量中

2.2 启动mediamtx

双击mediamtx即可,可以看到开始监听指定端口了

2.3 进行推流

在cmd或终端中执行

ffmpeg -re -stream_loop -1 -i 风景视频素材分享.flv -c copy -f rtsp rtsp://127.0.0.1:8554/input

其中风景视频素材分享.flv为视频文件名称,rtsp://127.0.0.1:8554/input为推流的地址

执行推流时的终端如下

此时mediamtx的输出如下

2.4 拉流播放

custom_ffmpeg是ffmpeg中bin目录

py 复制代码
from deffcode import FFdecoder
import cv2
# FFedecoder创建视频源和视频解码规则,formulate在ffmpeg中执行语句
# 本地视频
# decoder = FFdecoder("test.mp4").formulate()
# rtsp流
decoder = FFdecoder("rtsp://127.0.0.1:8554/input", custom_ffmpeg=r"D:\视频推流\ffmpeg-master-latest-win64-gpl-shared\bin").formulate()
 
# 从decoder中抓取RGB图像
for frame in decoder.generateFrame():
    # 将rgb图像转换为bgr图像,送给opencv展示
    frame_bgr = frame[:, :, ::-1]
    cv2.imshow("Output Frame", frame_bgr)
 
    key = cv2.waitKey(1) & 0xFF
    if key == ord("q"):
        break
 
# 安全关闭解码进程
decoder.terminate()

流播放效果如下所示

此时mediamtx软件页面信息如下

相关推荐
Scott9999HH2 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
AI云海3 小时前
python 列表、元组、集合和字典
开发语言·python
墨染天姬4 小时前
[V2X]音频数据流图
音视频
二十雨辰4 小时前
[爬虫]-Urllib
爬虫·python
玉鸯5 小时前
Agent Hook:在概率推理之上,为 Agent 叠加确定性控制
python·langchain·agent
weixin_446260856 小时前
HACO:面向动态部署环境的对冲式智能计算可靠多智能体调度框架
后端·python·flask
我的xiaodoujiao6 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
qetfw7 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
用户8356290780517 小时前
Python 实现 Excel 页面布局与打印设置自动化
后端·python