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

本文介绍了B站直播技术部姜军老师关于基于HLS的直播P2P技术的分享。文章讨论了HLS的优缺点,包括其在CDN部署的便利性、清晰度动态切换、实时回看等功能,并探讨了HLS直播的优化策略,如使用fMP4、非关键帧切割和多文件合并。接着,文章阐述了P2P在直播中的应用,面临实时性、用户进出频繁和网络环境复杂等挑战,以及如何利用WebRTC DataChannel进行数据传输和分布式调度的优化。未来研究方向包括缩短算法收敛时间、降低P2P环节的延迟以及优化数据块路由等。
摘要由CSDN通过智能技术生成

随着光纤入户的普及和电脑性能的不断提升,观众对直播的需求越来越高。常用的流媒体协议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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值