历史上的今天
今天是:2025年06月28日(星期六)
2020年06月28日 | 解密百度进军直播行业 直播流切片方法
2020-06-28 来源:爱集微
5月15日晚八点,李彦宏亮相百度直播间,与樊登读书创始人樊登围绕“家·书”主题展开对话。值得注意的是,百度直播聚焦在信息和知识领域,避免了与抖音、快手直接“拼刺刀”,而李彦宏亲自上阵也彰显了百度重点发力直播业务的决心。
2012年YY直播率先推出了支持电竞直播的插件,在随后的几年时间里,一大批的直播平台如雨后春笋般的出现,例如斗鱼TV、虎牙直播、战旗直播等,由BAT所领头的大量资本涌入,“直播”成了互联网资本圈所追逐的宠儿。
而直播所涉及到的计算机技术,HLS (超文本直播流)绝对是一个,这个协议是基于HTTP (超文本传输协议)的流媒体传输协议,被广泛应用于互联网视频直播领域,是目前主流的互联网直播协议之一。
相对于其他常见的互联网直播协议,HLS协议最大的不同在于,HLS协议在服务器将直播流切片为连续的、很短时长的TS文件,而直播观看用户则不断地下载并播放这些TS文件。因为服务器总是会将最新的直播流生成新的TS文件,这样直播观看用户只要不停地按顺序播放从服务器获取到的TS文件,就实现了直播。
而百度就在19年1月24日申请了一项名为“直播流切片方法、装置和系统”的发明专利(申请号:201910068514.3),申请人为北京百度网讯科技有限公司。
根据目前公开的专利资料,让我们一起来看看这项直播方法吧。

如上图所示为该专利中设计的系统架构,系统架构100中可以包括直播源站服务器101、HLS源站服务器102、对象存储服务器103和网络104、105。网络104用以在直播源站服务器和HLS源站服务器之间提供通信链路的介质。网络105用以在HLS源站服务器和对象存储服务器103之间提供通信链路的介质。
HLS源站服务器可以通过网络104与直播源站服务器交互,还可以通过网络105与对象存储服务器交互,接收或者发送消息等。
直播源站服务器可以用于存储直播流,对象存储服务器可以用于存储直播流的索引文件和分片文件。HLS源站服务器可以用于从直播源站服务器获取直播流,对直播流进行切片,生成直播流的索引文件和分片文件,并且将直播流的索引文件和分片文件发送给对象存储服务器,以使对象存储服务器对直播流的索引文件和分片文件进行存储。

如上图为直播流切片方法的流程图,首先从直播源站服务器获取直播流,HLS源站服务器可以从直播源站服务器获取直播流。其中,直播流是直播提供用户利用其终端设备录制的直播视频。
其次,对直播流进行切片,生成直播流的索引文件和分片文件。HLS源站服务器对直播流进行切片,以生成直播流的索引文件和分片文件。其中,索引文件是M3U8文件,分片文件是TS文件。通常根据M3U8文件记录的索引可以查找TS文件,不停地按顺序播放所查找到的TS文件,即可实现播放直播流。
最后,将直播流的索引文件和分片文件发送给对象存储服务器。HLS源站服务器将直播流的索引文件和分片文件发送给对象存储服务器,使得对象存储服务器对直播流的索引文件和分片文件进行存储。
其中,对象存储服务器是BOS服务器,当直播观看用户发起直播请求时,HLS源站服务器从对象存储服务器查找所请求的直播流的索引文件和分片文件,并返回给直播观看用户的终端设备。直播观看用户的终端设备基于直播流的索引文件播放直播流的分片文件,以实现直播。
接下来我们再通过一个应用场景来理解这个直播流切片系统。

如上图所示,直播观看用户的终端设备向CDN调度服务器发送直播域名解析请求,CDN调度服务器将直播域名解析请求中的直播域名解析成CDN边缘节点的VIP,并返回给直播观看用户的终端设备。
随后,直播观看用户的终端设备基于VIP向CDN边缘节点的负载均衡服务器发送直播请求,负载均衡服务器向HLS源站服务器发送直播请求。若对象存储服务器中未存储所请求的直播流的索引文件,HLS源站服务器从直播源站服务器获取所请求的直播流,对所请求的直播流进行切片,生成所请求的直播流的索引文件和分片文件,发送给对象存储服务器和负载均衡服务器。
最后,对象存储服务器对索引文件和分片文件进行存储。同时,负载均衡服务器将索引文件和分片文件发送给直播观看用户的终端设备,直播观看用户的终端设备基于索引文件播放分片文件,以实现播放直播流供直播观看用户观看。
以上就是百度发明的降低直播时延的发明专利,通过在直播观看用户的终端设备发起直播请求时,HLS源站服务器从直播源站服务器获取直播流进行切片,生成请求的直播流的M3U8文件和TS文件,从对象存储服务器获取所请求的直播流的M3U8文件和TS文件,并返回给直播观看用户的终端设备。这样的方式将有助于降低直播时延,极大地提升了直播服务的可用性!
史海拾趣
|
我们现有关于PIC单片机、ARM应用开发的2本图书选题,诚找有写书意向的作者合作。要求作者实战经验和写作资源丰富,有一定的业余时间、能够保证写作进度。有意者请直接发信,写明自己最擅长的领域。 联系方式:haohong99@163.com、478057587(Q ...… 查看全部问答> |
|
大家好 我在 platform builder 中导出了一个sdk 。 然后安装, 再在 vs2008中建立了一个选择了这个sdk的win32程序。不做任何修改就进行编译报以下错误 1>C:\\Program Files\\Windows CE Tools\\wce500\\minitest\\include\\ARMV4I\\commctrl.h(6 ...… 查看全部问答> |
|
我在命令行方式下,用romimage.exe ce.bib 生成nk,执行到 compacting bin file 时报指令访问了0x0内存. 而在PB下makeimg却正常。哪位大侠知道什么原因? … 查看全部问答> |
|
如题,当应用程序在运行的时候,通过usb和电脑同步,发现应用软件某些线程停在sleep。当断开usb连接后,线程有时能继续进行,有时不能(这个相当懊恼),写了个简单软件,里面就开一个线程,做如上测试,照样发现问题(排除程序复杂 ...… 查看全部问答> |
|
要设计一个频率计,其他的部分都差不多搞定了,可是频率控制这块总弄不懂。要求:可测量0——999999的频率,闸门电路时钟信号为 2HZ ,产生计数周期1s,清零周期 0.5s,4s为一个周期测量一次信号。。。。 帮帮忙了,急需。… 查看全部问答> |
|
同志们,最近做一个项目,用的是MSP430F149,用AD进行数据采集,我用的是查询功能,发现如下问题: 程序运行起来后,一直是正常的,忽然有天发现AD采集不对了,后来在线调试程序,运行若干天后再次出现问题, 问题原因是ADC12IFG始终为0了。系统 ...… 查看全部问答> |




