mediamtx流媒体服务器测试

前言

验证mediamtx流媒体服务器的目的是为了要在嵌入式web中播放rtsp码流,经调研,在web中是不能直接播放rtsp码流的,需要通过这种流媒体服务器在中间做桥梁,将rtsp码流转成rtmp或hls或webrtc流

  • 转成rtmp需要在web中安装FLASH插件,而在嵌入式web中显然不太友好
  • 转成HLS,HLS(HTTP Live Streaming) 是把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。HLS 协议由三部分组成:HTTP、M3U8、TS。这三部分中,HTTP 是传输协议,M3U8 是索引文件,TS是音视频的媒体信息,播放端只是需要下载要至少2个ts切片后才开始播放,就导致了延时比较大

我这里主要是使用mediamtx服务器来将rtsp转为webRTC流,然后在支持wenRTC的web中就可以直接播放视频了

MediaMTX简介

在web页面中直接播放rtsp视频流,重点推荐:mediamtx,不仅仅是rtsp-CSDN博客

mediamtx github

MediaMTX(以前的rtsp-simple-server)是一个现成的和零依赖的实时媒体服务器和媒体代理,允许发布,读取,代理和记录视频和音频流。它被设想为一个“媒体路由器”,将媒体流从一端路由到另一端。使用go语言开发的

特性:

  • 向服务器发布直播流
  • 从服务器端读取直播流
  • 流自动从一种协议转换为另一种协议
  • 在不同的路径上同时服务多个流
  • 记录流到磁盘
  • 认证用户;使用内部或外部身份验证
  • 重定向阅读器到其他RTSP服务器(负载平衡)
  • 通过API查询和控制服务器
  • 在不断开现有客户端连接的情况下重新加载配置(热重新加载)
  • 读取普罗米修斯兼容的指标
  • 在客户端连接、断开、读取或发布流时运行钩子(外部命令)
  • 兼容Linux, Windows和macOS,不需要任何依赖或解释器,它是一个单一的可执行文件

一、启动及配置

1、下载

mediamtx有各个环境下编译好的可执行文件,直接下载对应的版本即可,不用再交叉编译

https://githubfast.com/bluenviron/mediamtx/releases/tag/v1.4.2

包中只有mediamtx执行文件和mediamtx.yml配置文件

2、配置

mediamtx.yml配置文件中配置了各个流媒体配置,各个流服务的端口如下:

  • rtmp server端口:1935
  • rtsp server端口:8554
  • hls server端口:8888
  • webrtc server端口:8889
  • SRT server端口:8890
  • API端口:9997

3、启动

mediamtx会默认匹配下面配置文件,如果是部署在的其他目录下,启动时需要手动指定配置文件路径

  • /usr/html/rtsp-simple-server.yml
  • /usr/html/mediamtx.yml
  • /usr/local/etc/mediamtx.yml
  • /usr/etc/mediamtx.yml
  • /etc/mediamtx/mediamtx.yml

/usr/mediamtx/mediamtx /usr/mediamtx/mediamtx.yml

二、在web中播放webrtc

在web中不能直接播放rtsp流,需要通过mediamtx流媒体服务器转换成rtmp或hls或webrtc流

经查阅mediamtx使用说明可知,mediamtx可直接在web中通过在网页中嵌入iframe就可直接播放webrtc视频流 和 HLS视频流,而且还支持多路转流,也就是可以在web中播放多路rtsp视频流。

  • HLS视频流会有时延,webrtc几乎是实时的
  • 在RK3568上经测试,同时播放2路webrtc视频流还算流畅,但是到4路就有点卡顿了,top查看cpu占用率,4个cpu基本已满负荷

1、单路播放

webrtc1.html

iframe中的src

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值