RTMP服务器的延迟,多级边缘不影响延迟,gop为最大因素
转自:http://blog.chinaunix.net/uid-26000296-id-4932826.html
编码器用FMLE,用手机秒表作为延迟计算。
结论:
1. 影响延迟的三个重要因素:网络带宽不足延迟越大,服务器算法缓存越多延迟越大,编码gop越大延迟越大
2. 若只考虑服务器,NGINX-RTMP做源站时延迟在2-3秒以上。
3. 若只考虑服务器,SmartServer做边缘延迟最小在0.3秒,多级边缘服务器没有影响。
服务器结构如下:
源站:NGINX-RTMP
一级边缘:SmartServer
二级边缘:SmartServer
图片从左到右为:手机秒表,源站,一级边缘,二级边缘;
一、H264-Baseline-1秒GOP
H264,baseline,gop=1秒,fps=20,bitrate=500kbps
可见,延迟主要是在NGINX-RTMP,边缘服务器的延迟算法让延迟最低。
改变编码参数:
二、H264-Baseline-5秒GOP
H264,baseline,gop=5秒,fps=20,bitrate=500kbps
可见,gop变大后,每层都会有随机的延迟,原因是缓存了一些数据。
基本上5秒gop,就会有5/2秒延迟,即2.5秒左右延迟。
改变编码参数gop为10秒:
H264-Baseline-10秒GOP
H264,baseline,gop=10秒,fps=20,bitrate=500kbps
gop大了之后,延迟就要拼人品了。
改变编码参数为main:
三、H264-Main-1秒GOP
H264,main,gop=1秒,fps=20,bitrate=500kbps
基本上和baseline差不多。
没有什么影响,除了我的CPU上去了。
编码参数改为VP6:
四、VP6-1秒GOP
VP6 Quality=GoodQuality-GoodFramerate NoiseReduction=None DatarateWindow=Medium CPUUsage=Dedicated gop=1秒 fps=20
可见VP6也是一样,延迟在NGINX-RTMP源站,边缘没有延迟。
编码参数改为VP6,gop为10秒:
五、VP6-10秒GOP
VP6 Quality=GoodQuality-GoodFramerate NoiseReduction=None DatarateWindow=Medium CPUUsage=Dedicated gop=10秒 fps=20
可见VP6时也一样受gop影响。
六、HTTP切片方式的延迟
H264 Baseline gop=1秒 fps=20
HTTP切片长度为1秒
从左到右依次为:编码器,NGINX-RTMP源站,SmartServer边缘,HTTP切片边缘
可见:
NGINX-RTMP源站延迟在1.4秒
SmartServerRTMP边缘延迟0.6秒
HTTP切片边缘延迟1.1秒
实际环境中,1秒一个切片,在CDN分发时,下载的速度可能没有这么快,所以延迟应该会比这个高。
RTMP服务器的延迟,多级边缘不影响延迟,gop为最大因素的更多相关文章
- Android实现录屏直播(三)MediaProjection + VirtualDisplay + librtmp + MediaCodec实现视频编码并推流到rtmp服务器
请尊重分享成果,转载请注明出处,本文来自Coder包子哥,原文链接:http://blog.csdn.net/zxccxzzxz/article/details/55230272 Android实现录 ...
- 利用docker搭建rtmp服务器(1)
以后的项目里面可能需要用到直播,所以就先看看 本来想在自己MAC上搭建nginx的,后来怕把自己的机子搞乱,刚好就学习了下docker,感觉docker强大就在于是一个操作系统软件的版本管理系统,可以 ...
- 实现输出h264直播流的rtmp服务器
RTMP(Real Time Messaging Protocol)是常见的流媒体协议,用来传输音视频数据,结合flash,广泛用于直播.点播.聊天等应用,以及pc.移动.嵌入式等平台,是做流媒体开发 ...
- 实现输出h264直播流的rtmp服务器 flash直播服务器【转】
实现输出h264直播流的rtmp服务器 RTMP(Real Time Messaging Protocol)是常见的流媒体协议,用来传输音视频数据,结合flash,广泛用于直播.点播.聊天等应用,以及 ...
- 实现输出h264直播流的rtmp服务器 flash直播服务器
http://www.cnblogs.com/haibindev/archive/2012/04/16/2450989.html 实现输出h264直播流的rtmp服务器 RTMP(Real Time ...
- Mac使用nginx+rtmp服务器
一.安装Homebrow 已经安装了brow的可以直接跳过这一步.执行命令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/H ...
- 推送安霸A7L实时视频至RTMP服务器(1)
使用librtmp进行H264与AAC直播 (转:http://www.codeman.net/2014/01/439.html) 1.帧的划分 1.1 H.264帧 对于H.264而言每帧的界定符为 ...
- 超级rtmp服务器和屌丝wowza
超级rtmp服务器和屌丝wowza http://blog.csdn.net/win_lin/article/details/11927973
- FFMPEG推流到RTMP服务器命令 - weixin_37897683的博客 - CSDN博客 https://blog.csdn.net/weixin_37897683/article/details/81225228
FFMPEG推流到RTMP服务器命令 - weixin_37897683的博客 - CSDN博客 https://blog.csdn.net/weixin_37897683/article/detai ...
随机推荐
- element-ui select 下拉框位置错乱--解决
element-ui select 下拉框位置错乱 由于使用 element-ui 的 select 组件时,下拉框的位置错乱了. 开始查找问题 通过各种问题查找,发现是 css 问题 css bod ...
- 13.AutoMapper 之映射前后(Before and After Map Action)
https://www.jianshu.com/p/1ff732094f21 映射前后(Before and After Map Action) 你可能偶尔需要在映射发生前后执行自定义逻辑.这应该很少 ...
- python内置下载服务器
python内置了一个下载服务器.例如你的同事要让你传的文件位于某一个目录下面,那么你可以进入这个目录,然后执行下面的命令启动一个下载服务器 python2 python -m SimpleHTTPS ...
- LNMP完整安装教程
软件下载地址 https://lnmp.org/install.html 本环境与外网生产环境一致(MySQL 5.6 + PHP 7.1 + CentOS + Nginx 1.12 ) 上图红色 ...
- Redis【1】Linux下安装~
先去Redis官网下载tar.gz文件.点击中间的[Check the downloads page.].再点击中间Stable 模块的[Download]下载 这把我做演示的文件是 redis-5. ...
- GDAL支持中文路径和Shp文件中文属性写入
在使用GDAL的过程中,为了支持中文,比需手动进行中文路径的设置,同时特别是在对Shp的属性进行中文输入的时候,都必须进行必要的设定. 为了支持中文路径,在注册了驱动之后,加上第三句就可以了.必须设置 ...
- AIX中的网络管理
1.AIX中网络配置 AIX支持的适配器: #lsdev -Cc adapter 查看网络适配器: #lsdev -Cc if 修改网卡属性 #smitty chgenet ...
- nginx反向代理+负载均衡+url重写+ssl认证
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄 ...
- 009-通过jmx监控tomcat
前言想理解怎么监控tomcat,必需识下图(图片源出网络) zabbix-Web前端界面,它通过数据库里数据展示.和其它组件不直接关联zabbix-server运行在10051端口,Zabbix-se ...
- CPU、CPU核与线程的关系
CPU相关概念: CPU:独立的中央处理单元,体现在主板上是有多个CPU的插槽. CPU cores:在每一个CPU上,都可能有多个核(core),每一个核中都有独立的一套ALU.FPU.Cache等 ...