开发者社区> EdgePlus> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

PCDN实现flash无延时直播的技术原理与优点

简介: PCDN是以P2P技术为基础,通过挖掘利用边缘网络海量碎片化闲置资源而构建的内容分发网络,它具有低成本、高品质的特点,十分适用于视频直播这一业务场景。针对直播中延时的情况,PCDN也进行了一系列优化,近期上线了flash无延时直播方案,下面我们将来介绍下无延时直播方案的技术原理和实现。
+关注继续查看

随着直播业务的大众化,直播过程中的技术也面临着越来越多的挑战。而延时影响用户体验的一个十分重要的因素。

直播过程中的延时是指从主播端采集,到观众端播放之间的时间差,主要来源于网络传输中的延时、网络抖动、网络丢包等等情况,短则1s-2s, 长则15以上,严重时可导致用户无法观看,所以解决直播延时问题一直是技术亟待解决的痛点。

我们知道PCDN是以P2P技术为基础,通过挖掘利用边缘网络海量碎片化闲置资源而构建的内容分发网络,它具有低成本、高品质的特点,十分适用于视频直播这一业务场景。针对直播中延时的情况,PCDN也进行了一系列优化,近期上线了flash无延时直播方案,下面我们将来介绍下无延时直播方案的技术原理和实现。

首先,我们来看看无延时传输策略是怎样的?

第一,切片大小是影响延时的直接因素,无延时直播的切片小,避免了因为切片过大的原因出现播放延时,同时P2P传输不会分包,提高传输效率。
第二,无延时直播采用订阅/推送模式,订阅子流,推送模式进行分享调度,满足直播的实时要求。
第三,当订阅/推送模式在peer退出时出现切片空洞,则使用快速补片的方式保证数据连续性和播放流畅度。

PCDN flash无延时直播整体服务架构

pcdn_

1、主播通过rtmp协议将直播流推送到阿里CDN
2、切片服务通过rtmp协议从阿里CDN拉取直播流并进行切片
3、阿里CDN再通过http协议拉取切片流,最终通过websocket协议分发到PCDN网络

那么无延时直播和有延时直播的区别是什么?

第一,切片类型不同
有延时直播切片按照时间切片,切片时长可配置,基本是在1s或500ms;
无延时直播切片按照大小切片,默认是1KB。
第二,分发类型
有延时直播,按照点播文件分发,每个切片都是单独的文件;
无延时直播,按照流式分发,与CDN L2节点维持长连接,通过http协议流式传输。
第三,CDN L1节点与终端传输协议不同
有延时直播是http协议,不支持持久连接
无延时直播是websocket协议,支持持久连接

我们可以看出,无延时直播方案是从直播流实时处理和传输分发等层面分别进行了优化,从而实现了流畅的直播用户体验。

PCDN flash无延时直播具有几大优势:

第一,可以支持大直播场景(重要赛事、大型活动、在线教育),服务端可以支撑上百万的同时在线量。
第二,P2P智能调度,可以从上百万的peer中选择与当前peer连通性最好的一批peer,确保更精准、更快速的数据传输。
第三, 支持热点自发现,仅为热点直播提供P2P服务,最大程度提升P2P效率,帮助用户节省成本。
第四,指标表现优异:平均延时小于 1s , 和CDN相比无延时,直播流畅率> 99%,同时P2P分享率可达30%-60%。

感兴趣的用户,可以在官网申请书使用,通过播放器加载SDK,SDK提供出LiveStream类,该类继承自flash.net.NetStream,播放器可使用NetStream类调用play函数播放对应的直播流,实现flash无延时直播。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
编写Java程序,使用Swing布局管理器与常用控件,实现用户登录界面
编写Java程序,使用Swing布局管理器与常用控件,实现用户登录界面
40 0
Python编程:使用os.urandom生成Flask的SECRET_KEY
Python编程:使用os.urandom生成Flask的SECRET_KEY
33 0
Myeclipse自动生成java的Bean和BeanName.hbm.xml文件(java项目必须支持Hibernate)
在javaEE开发中,我们在支持Hibernate之后,想使用Myeclipse自动生成java的Bean和BeanName.hbm.xml文件(Oracle12c为例): 注:以下提到"BeanName"为您使用的java class name。 1:创建一个java项目让他支持Hibernate(因为需要给后面生成的bean找一个存放目录) 2:切换视图到MyEclipse
2168 0
认真做 flex + spring + blazeDS + google app JDO 分页.每次查询总数.
认真做 flex + spring + blazeDS + google app JDO 分页.每次查询总数. 最近被 BlazeDS 折腾的不行了.. 都有点想换成 e4x 格式的 xml 那样来的比较简单.但是终没有放弃.收获还是不错的. 首先是在 explore 里面 使用 SWFLoader 做动态加载. 根据不同的菜单 显示不同
895 0
MyEclipse10.6/Eclipse4.2集成 flash builder 4.6
1.安装 Myeclipse10.6或Eclipse 4.2 以及 Flash builder 4.6 2.运行FB安装目录下的可执行文件X:\Program Files\Adobe\Adobe Flash Builder 4.
707 0
flash原理
1.正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言, 1block = 32page 1page = 512bytes(datafield) + 16bytes(oob 即out   of   band 带外数据.) 对于flash的读写都是以一个page开始的,但是在读写之前必须进行flash的擦写,而擦写则是以一个block为单位的。
608 0
Alipay数字证书管理员权限问题
支付宝证书不能正常使用,提示如下:   您是支付宝数字证书用户,本台电脑上已安装数字证书,请使用本电脑的管理员用户登录   解决方法: 打开ie浏览器,选工具--internet选项--内容--清除ssl状态   如果还不行则选常规--清除浏览器历史纪录,...
814 0
+关注
EdgePlus
阿里云产品运营,专注边缘计算和视频云产品与技术传播
528
文章
59
问答
来源圈子
更多
+ 订阅
相关文档: 边缘云节点
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载