基于mediamtx基于mediamiamt 基于python,ffmpeg实现视频推流

软件依赖:mediamtx、ffmpeg。
python包依赖:deffcode。
xff1,mediamtx下载地址a;https://github.com/bluenviron/mediamtx/releases。
ffmeg下载地址https://ffmpeg.org/download.html。
deffcode安装命令:pip install deffcode。
1、mediamtx下载安装。
MediaMTX(原名 rtsp-simple-server)实时媒体服务器和媒体代理是一个即用的、零依赖的c;视频和音频流可用于发布、阅读、代理、录制和播放。它被设想为“媒体路由器”,可以将媒体从一端流向另一端。
其支持的流量协议包括:
打开https://github.com/bluenviron/mediamtx/releases/tag/v1.9.0,根据自己的硬件环境+操作系统下载软件。
下载解压文件,得到mediamtxx.exe与mediamtx.yml。
mediamtx.ym是软件配置文件,默认端口可配置各种协议c;例如rtspadress设置。
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目录。
from。deffcode。 import。FFdecoder。import。cv2。# FFedecoder创建视频源和视频解码规则c;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软件页面信息如下。
分享让更多人看到