B站直播中HLS和去中心化P2P的实际应用

随着光纤入户的普及和电脑性能的不断提升,观众对直播的需求越来越高。常用的流媒体协议HLS虽已被广泛用于PC和手机终端的音视频服务,但在使用中仍然存在一些不足。我们邀请到哔哩哔哩弹幕视频网直播技术部的姜军老师,介绍基于HLS的直播P2P以及研发过程中他们遇到的挑战及未来规划。

文 / 姜军

整理 / LiveVideoStack

大家好,我是哔哩哔哩弹幕视频网直播技术部的姜军,今天主要介绍基于HLS的P2P。HLS是比较早的技术,全称是HTTP Live Streaming,字面意思是利用HTTP进行播放直播,在开发过程中或者是网络搭建过程中,它可以大限度利用以前静态文件的CDN服务,部署过程比较方便;但缺点是延时大,首帧加载慢。我们在工程化部署服务的时候会有各种方式来缓解问题。

前半部分介绍HLS的内容,后半部分介绍基于HLS的P2P。因为HLS是基于短文件的,一个个文件进行分片传输,所以比较容易开发基于HLS的P2P。

今天的分享分为六个方面——引言、HLS直播、HLS直播的优化、直播P2P、直播P2P的挑战、去中心化协作。

#01 引言

首先是引言部分。

目前用户对高清直播的需求越来越强烈,电脑性能的提升让以前卡顿的视频可以流畅播放,内容平台可以提供更高清的视频,发挥硬件性能,得到更好的观看体验。直播画质的提升对编解码器性能和宽带成本提出了更高的要求,画面和声音越清晰,需要传输的数据越多。目前网络成本一直处于很高的水平(按照带宽计算费用),如果为每个用户提供高质量内容,那带宽的成本是非常大的。

哔哩哔哩直播现在采用HLS传输和P2P相结合的方式,提升了服务器带宽的利用效率(本来一倍量的带宽给一倍量的人看,那么现在一倍量的带宽可以给两倍甚至三倍的人看,在相同的带宽压力下可以服务更多观众)。

哔哩哔哩现在可以将分享率(指上传下载比)只有100%的时候将节省率做到70%,这70%是用户量不论多少表现相似。

#02 HLS篇

首先向大家介绍前半部分——HLS。

2.1.什么是HLS——HTTP Live Streaming

HLS全称是HTTP Live Streaming,字面意思是用HTTP做直播,HLS有很多版本。大家见到比较多的是旧版本的HLS,也就是一个m3u8的文件其中包含很多小的TS文件的列表。其实m3u8这样的东西很多,从上一个年代就开始使用电脑的人比较熟知,因为那时的音乐播放器的文件列表格式是“.m3u”。m3u8其实是同样的,它作为播放列表,随着时间的推移里面的项越来越多,因为随着直播进行、内容总时长是不断增加的。随着新项的添加,旧项会被移除,和队列一样。HLS的播放列表里就会保持最后一小段时间内容的文件列表,于是客户端一边轮询m3u8文件的变化,一边下载小分片进行播放。

因为传统的MP4文件结构所限,所有的索引放在一起、所有的数据放在一起,播放的时候两者缺一不可,但得到完整数据之前无法拿到完整的索引。在这种情况下,传统MP4文件虽然可以做到边下边播,却无法实现直播。为了做到直播,MP4文件需要进行分段(0.5s或者1s为组),分完之后一边传给服务器,一边服务器传给用户这样进行直播。HLSv7是将分开后的数据块独立成小文件放在列表中,然后不断更新m3u8的播放列表。

左图是传统MP4。和分段MP4的不同,传统MP4文件是一个大的索引,数据块只有一大个;而分段MP4文件每一小块都有索引和与其对应的数据块。把这样一个分段MP4文件再切成一个个小文件之后,配上

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一款免费的流媒体直播软件,主要用于流媒体直播,视频直播,视频点播,视频录制等应用,与FMS、WOWZA、RED5一道,作为用户流媒体直播应用的可选方案。 1、支持Windows/Linux等多种操作系统; 2、采用开发的流媒体协议,而非私有协议,可以与主流系统对接,至少支持RTMP推流,RTMP拉流,RTSP拉流三种方式获取直播流,支持对获取的直播流再按照TS组播或者单播,RTMP,RTSP,HLS,TS OVER HTTP,FLV OVER HTTP等标准流媒体协议的方式进行对外直播转发; 3、支持录制,可定时录制或手动录制,能录制MP4或者FLV格式文件,录制时支持生成新文件或者追加文件两种方式,支持录制超过4G的文件; 4、单台服务器可支持1000个以上并发用户,直播延时小于2秒; 5、支持RTMP转发功能,能够把AMS上的直播流转发给其它AMS服务器或者第三方的RTMP服务器,例如RED5,FMS,WOWZA流媒体服务器; 6、 支持PC/手机/平板电脑等多终端访问,无论是windows,linux,或者andriod以及IOS系统访问收看直播时都无需下载插件,直接观看; 7、响应点播时间控制在100ms以内,支持暂停、拖动等特技操作; 8、支持文件直播,可把硬盘上存在的FLV文件编目后,按设定好的任务和顺序进行直播; 9、内置Web应用系统,无需复杂配置,可直接部署到用户服务器使用,也可以选配更复杂的媒资管理系统,完成类似优酷土豆的应用模式; 10、开放的系统架构,提供二次开发接口,可轻松的融入到用户已有的平台或网站平台、或在此基础上进行二次开放等 ------------------------------------------------------------------------- 使用说明: 1、关于安装运行:软件解压到硬盘上后,执行AokuMServiceManager,即可完成AMS服务的安装,安装完成后,在Windows系统服务会出现一个AokuMService服务; 2、关于端口:AMS默认的管理端口是9001,可通过浏览器登陆http://127.0.0.1:9001/main.html进行管理;AMS默认的RTMP端口是1935,默认的rtsp端口是5554,默认的flv over http端口是7000,默认的ts over http端口是8008,默认的hls端口也是9001; 3、关于推流:使用直播你需要有一个支持rtmp推流的编码器,建议用奥酷全接口高清编码器,当然你也可以通过FME进行软编码来实现; 4、关于接收直播:AMS正常启动并发布上直播流后,你可以在网络内的任一电脑上打开http://ip:9001,通过浏览器观看直播,若开启了hls功能,通过iphone或者ipad登陆http://ip:9001即可观看直播。 5、若开启了TS组播,请确认防火墙是否允许组播,另外您网络内的路由器是否支持组播,接收组播是需要用VLC播放器来完成; 6、接收flv over http也是通过VLC播放器或者支持类似协议的播放器来测试。 7、若使用出现问题,你可以查看logs目录下的rtmpserver.log文件,里面有详细的错误日志描述。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值