• 717阅读
  • 2回复

[原创]历时数月钻研推流/对比各种流媒体服务程序/PK总结 [复制链接]

上一主题 下一主题
在线liudianwu
 

只看楼主 倒序阅读 楼主  发表于: 2023-08-18
## 1 前言
- 大量测试下来,网页显示视频流实时性从高到低依次是 webrtc > ws-flv > flv > hls。播放器打开rtsp/rtmp视频流实时性由具体的播放器控制,比如缓存大小和缓存时间,是否音视频同步等。
- 由于flv拉流同源地址最大支持6路同时播放,所以要想实时性高而且网页播放支持多路就选择ws-flv,hls实时性最差。
- mediamtx推出来的hls/webrtc流可以直接地址复制到浏览器打开,不依赖额外的js播放器播放。
- windows系统上554端口可能被系统服务占用,建议修改成其他端口比如5541。

## 2 mediamtx
同时支持rtsp/rtmp推拉流,拉流还支持hls/webrtc两种方式,最近V1.0版本发布还支持了srt方式。推出来的hls/webrtc可以直接嵌入个iframe网页播放(查阅代码得知就是流媒体服务器内部返回了一段支持hls/webrtc播放的网页代码),没有任何依赖,如果希望直接在网页中播放无依赖,强烈推荐用mediamtx,推荐指数五颗星。
开源地址:[https://github.com/bluenviron/mediamtx](https://github.com/bluenviron/mediamtx)

|类型|端口|格式|
|:------|:------|:------|
|rtsp|8554|rtsp://127.0.0.1:8554/live/stream|
|rtmp|1935|rtmp://127.0.0.1:1935/live/stream|
|hls|8888|http://127.0.0.1:8888/live/stream|
|webrtc|8889|http://127.0.0.1:8889/live/stream|

window.open('http://www.qtcn.org/bbs/attachment/Mon_2308/17_110085_44fb867b089c486.jpg?376');" style="max-width:700px;max-height:700px;" onload="if(is_ie6&&this.offsetWidth>700)this.width=700;" >


## 3 LiveQing
只支持rtmp推流,支持rtmp/hls/flv/ws-flv/webrtc等各种拉流,有个网页后台管理,非常方便。缺点是只有一个月试用,过期后要去官网重新下载,对应过期验证机制写死在程序中。需要网页管理后台的推荐这个,推荐指数四颗星。
官方地址:[https://www.liveqing.com/](https://www.liveqing.com/)

|类型|端口|格式|
|:------|:------|:------|
|rtmp|10085|rtmp://127.0.0.1:10085/hls/stream|
|hls|18000|http://127.0.0.1:18000/hls/stream/stream_live.m3u8|
|flv|18000|http://127.0.0.1:18000/flv/hls/stream.flv|
|ws-flv|18000|ws://127.0.0.1:18000/ws-flv/hls/stream.flv|
|webrtc|18000|webrtc://127.0.0.1:18000/rtc/hls/stream|
[attachment=23470]


## 4 EasyDarwin
只支持rtsp推拉流,默认端口5541,不支持其他格式拉流,如果仅仅是监控摄像头使用,非常方便,有个网页管理后台,不会过期可以一直用,缺点是功能单一,只能在他的后台查看视频流,或者用播放器播放。推荐指数两颗星。
官网地址:[https://www.easydarwin.org/](https://www.easydarwin.org/)

## 5 nginx-rtmp
只支持rtmp推拉流,默认端口1935,不支持其他格式拉流,功能极其单一,不推荐。

## 6 ZLMediaKit
同时支持rtsp/rtmp推拉流,而且支持h265的推拉流(推流端要支持265的ffmpeg/拉流播放端也要支持265的播放器),支持各种格式拉流,使用者众多,推荐指数五颗星。
开源地址:[https://github.com/ZLMediaKit/ZLMediaKit/](https://github.com/ZLMediaKit/ZLMediaKit/)

|类型|端口|格式|
|:------|:------|:------|
|rtsp|554|rtmp://127.0.0.1:554/live/stream|
|rtmp|1935|rtmp://127.0.0.1:1935/live/stream|
|hls|80|http://127.0.0.1:80/live/stream/hls.m3u8|
|flv|80|http://127.0.0.1:80/live/stream.live.flv|
|ws-flv|80|ws://127.0.0.1:80/live/stream/live.flv|




## 7 srs
支持rtmp推流,早期版本支持rtsp推流,不知道为何移除了。支持部分格式拉流,不支持ws-flv拉流,使用者众多,推荐指数四颗星。
开源地址:[https://github.com/ossrs/srs](https://github.com/ossrs/srs)

|类型|端口|格式|
|:------|:------|:------|
|rtmp|1935|rtmp://127.0.0.1:1935/live/stream|
|hls|8080|http://127.0.0.1:8080/live/stream.m3u8|
|flv|8080|http://127.0.0.1:8080/live/stream.flv|
|webrtc|8080|webrtc://127.0.0.1:8080/live/stream|




## 8 ABLMediaServer
同时支持rtsp/rtmp推拉流,也支持265的推拉流,国内一个音视频服务器大神编写,目前无官网和主页。最大优点是CPU占用极低,专门做了特别的优化,牺牲了部分内存,同等推流环境下25路视频占用0.3%CPU,ZLMediaKit和srs在3%,但是ZLMediaKit和srs内存占用极低。对CPU占用敏感的用户建议选择ABLMediaServer。推荐指数四颗星。

|类型|端口|格式|
|:------|:------|:------|
|rtsp|554|rtmp://127.0.0.1:554/live/stream|
|rtmp|1935|rtmp://127.0.0.1:1935/live/stream|
|hls|9088|http://127.0.0.1:9088/live/stream.m3u8|
|flv|8088|http://127.0.0.1:8088/live/stream.flv|
|ws-flv|6088|ws://127.0.0.1:6088/live/stream.flv|

![在这里插入图片描述](https://img-blog.csdnimg.cn/93f4a98239be4417879d38ff903af96f.jpeg#pic_center)
4条评分好评度+1贡献值+1金钱+10威望+1
20091001753 好评度 +1 - 2023-08-18
20091001753 贡献值 +1 - 2023-08-18
20091001753 威望 +1 - 2023-08-18
20091001753 金钱 +10 - 2023-08-18
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
在线圣域天子

只看该作者 1楼 发表于: 2023-08-18
学习了~~~
离线ccazqyy

只看该作者 2楼 发表于: 2023-10-31
    
快速回复
限100 字节
 
上一个 下一个