基于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软件页面信息如下

相关推荐
_深海凉_38 分钟前
LeetCode热题100-颜色分类
python·算法·leetcode
AC赳赳老秦1 小时前
OpenClaw email技能:批量发送邮件、自动回复,高效处理工作邮件
运维·人工智能·python·django·自动化·deepseek·openclaw
zhaoshuzhaoshu1 小时前
Python 语法之数据结构详细解析
python
AI问答工程师2 小时前
Meta Muse Spark 的"思维压缩"到底是什么?我用 Python 复现了核心思路(附代码)
人工智能·python
zfan5203 小时前
python对Excel数据处理(1)
python·excel·pandas
小饕3 小时前
我从零搭建 RAG 学到的 10 件事
python
老歌老听老掉牙3 小时前
PyQt5+Qt Designer实战:可视化设计智能参数配置界面,告别手动布局时代!
python·qt
格鸰爱童话3 小时前
向AI学习项目技能(六)
java·人工智能·spring boot·python·学习
悟空爬虫-彪哥3 小时前
VRChat开发环境配置,零基础教程
python
2401_885885044 小时前
开发视频短信接口好开发吗?图文视频短信接口对接教程
android·音视频