历时数月钻研推流/对比各种流媒体服务程序/PK总结
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
| 类型 | 端口 | 格式 |
|---|---|---|
| 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 |

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



4 EasyDarwin
只支持rtsp推拉流,默认端口5541,不支持其他格式拉流,如果仅仅是监控摄像头使用,非常方便,有个网页管理后台,不会过期可以一直用,缺点是功能单一,只能在他的后台查看视频流,或者用播放器播放。推荐指数两颗星。
官网地址:https://www.easydarwin.org/
5 nginx-rtmp
只支持rtmp推拉流,默认端口1935,不支持其他格式拉流,功能极其单一,不推荐。
6 ZLMediaKit
同时支持rtsp/rtmp推拉流,而且支持h265的推拉流(推流端要支持265的ffmpeg/拉流播放端也要支持265的播放器),支持各种格式拉流,使用者众多,推荐指数五颗星。
开源地址: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
| 类型 | 端口 | 格式 |
|---|---|---|
| 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 |

历时数月钻研推流/对比各种流媒体服务程序/PK总结的更多相关文章
- 计算两个日期之间相差的年数月数天数(JS实现)
前言 如何计算年龄?我的第一直觉做法:(当前时间戳 - 出生时的时间戳)/ (365*86400) 所得结果向下取整.后来发现这种做法获得的结果不准确,不是多了一岁就是少了一岁,不能简单粗暴的这么处 ...
- 历时2月,动态线程池 DynamicTp 发布里程碑版本 V1.0.8
关于 DynamicTp DynamicTp 是一个基于配置中心实现的轻量级动态线程池管理工具,主要功能可以总结为动态调参.通知报警.运行监控.三方包线程池管理等几大类. 经过多个版本迭代,目前最新版 ...
- JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?
千呼万唤始出来,在经历了整整一年的跳票之后,Java 9 终于在 9 月 21 日拨开云雾,露出真正的面目.对众多 Java 程序员来说,这一天无疑是一个重大的日子,首先 Java 开发者们再也不用羡 ...
- 历时5月,Kubernetes1.19正式发布 !Ingress迎来GA,存储容量跟踪新特性
我们迎来了Kubernetes1.19,这是2020年发布的第二个版本,也是迄今为止最长的发布周期,总共持续了20周.它包括33个增强功能:12个增强功能达到稳定版,18个增强处在beta版,还有13 ...
- CentOS obs直播RTMP协议推流到Nginx流媒体服务器到VUE使用HLS直播
1. 发布打包前端管理平台(ant-design-vue) 2. 发布打包后端(.NET6-WebApi) .NET6 webAPI orm: free sql 数据库:mysql5.7 3. 发布打 ...
- Gaze Estimation学习笔记(1)-Appearance-Based Gaze Estimation in the Wild
目录 前言 简介 论文概述 论文主要内容 MPIIGaze数据集 引入CNN的新Gaze Estimation方法 人脸对齐与3D头部姿态判断 归一化 使用CNN进行视线检测 论文作者进行的实验及结果 ...
- 一生伏首拜阳明------<明朝那些事儿>
一生伏首拜阳明. 王守仁,字伯安,别号阳明. 成化八年(1472),王守仁出生在浙江余姚,大凡成大事者往往出身贫寒,小小年纪就要上山砍柴,下海捞鱼,家里还有几个生病的亲属,每日以泪洗面.这差不多也是惯 ...
- [OSChina]VirtualBox 6.0.0 发布,改进对高端显示器的 HiDPI 支持--尝试一下
VirtualBox 6.0.0 发布,改进对高端显示器的 HiDPI 支持 https://www.oschina.net/news/102838/virtualbox-6-0-0-released ...
- Nginx系列1.2:nginx-rtmp流媒体服务器添加权限认证(推流权限和播放权限)
用到的工具:OBS Studio(推流).nginx-rtmp流媒体服务器.VLC(拉取流播放) Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器 Nginx系列1.1:ubu ...
- 16Aspx.com源码2013年10月到2013年12月详细
创建时间FROM: 创建时间TO: ExtJS合同管理信息系统源码 2013-12-13 [VS2008] 源码介绍: ExtJS合同管理信息系统源码浏览器兼容:IE,Firefox,谷歌等主 ...
随机推荐
- 2022-08-16:绳子总长度为M, 100 -> M, (6, 100) (7,23) (10,34) -> arr, 每一个长度的绳子对应一个价格,比如(6, 10)表示剪成长度为6的绳子,对应
2022-08-16:绳子总长度为M, 100 -> M, (6, 100) (7,23) (10,34) -> arr, 每一个长度的绳子对应一个价格,比如(6, 10)表示剪成长度为6 ...
- 2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目。k8s安装xiu,drone文件如何写?
2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目.k8s安装xiu,drone文件如何写? 答案2022-07-25: 云原生环境不可能完全一样,只能做参考. 我采用的是dron ...
- 2021-12-14:根据身高重建队列。 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个
2021-12-14:根据身高重建队列. 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序).每个 people[i] = [hi, ki] 表示第 i 个 ...
- Python潮流周刊#1:如何系统地自学Python?
这里记录每周值得分享的 Python 及通用技术内容,部分内容为英文,已在小标题注明.(本期标题取自其中一则分享,不代表全部内容都是该主题,特此声明.) 文章&教程 1.编程语言的错误处理模式 ...
- Java 网络编程 —— 创建非阻塞的 HTTP 服务器
HTTP 概述 HTTP 客户程序必须先发出一个 HTTP 请求,然后才能接收到来自 HTTP 服器的响应,浏览器就是最常见的 HTTP 客户程序.HTTP 客户程序和 HTTP 服务器分别由不同的软 ...
- es mysql 适用场景对比
es mysql 适用场景对比 问题一 全文检索毫无疑问直接上es,那么除了这种场景,什么时候该选es?为啥mysql不行? 对枚举字段的搜索 mysql创建索引的原则是对于那些区别度高字段建立索引, ...
- Python连接es笔记三之es更新操作
本文首发于公众号:Hunter后端 原文链接:Python连接es笔记三之es更新操作 这一篇笔记介绍如何使用 Python 对数据进行更新操作. 对于 es 的更新的操作,不用到 Search() ...
- R数据分析:多项式回归与响应面分析的理解与实操
今天给大家分享一个新的统计方法,叫做响应面分析,响应面分析是用来探究变量一致性假设的(Congruence hypotheses).本身是一个工程学方法,目前在组织行为学,管理,市场营销等等领域中使用 ...
- 项目小结:使用Docker迁移服务到离线服务器
前言 最近遇到的这个场景,需要把之前开发的一套系统迁移到一个离线的服务器上,这个服务器有点麻烦,接入VPN后通过堡垒机才能访问,速度也很慢,遇到不少坑,本文记录一下迁移过程. 基本信息 原本这套系统也 ...
- ElasticSearch的使用和介绍
1.概述 功能 Elasticsearch 是一个分布式的 RESTful 搜索和分析引擎,可用来集中存储您的数据,以便您对形形色色.规模不一的数据进行搜索.索引和分析. 例如: 在电商网站搜索商品 ...