基于DASH的视频分片传输

DASH,Dynamic Adaptive Streaming over HTTP,即基于HTTP的动态自适应多媒体流,其核心是实现基于HTTP协议的媒体内容流传输,目前常见的是MPEG-DASH,即在MPEG格式的视频文件上实现视频传输,其基本的架构如下图:

基于DASH的视频分片传输_第1张图片

DASH内容准备提供不同码率的视频文件(使用不同的质量需求和网络环境),然后使用特定的分片方法, 将视频文件分片,然后分片传输到客户端进行播放。MPD文件时在视频文件进行分片时获得的视频本身的属性信息和视频分片信息。

客户端,通常是基于Browser实现,获取MPD之后通过解析MPD文件可以获取视频的相关信息,然后使用http请求按片获取视频内容,然后进行播放。

目前可以使用的一种分片工具是一个MP4封装工具:MP4Box,可以实现DASH切片功能,详见MP4BOX;

使用MP4BOX分片封装视频文件,同时生成对应的MPD文件之后,在Browser中使用XMLHttpRequest访问获取对应的MPD文件后获取对应的分片信息,然后按照分片信息获取视频片段,然后添加到对应的视频源MediaSource。

具体的实现请见:https://code.csdn.net/liulangdeyue/cloudtv_basedonwebrtc/tree/dash

目前已经实现视频分片,分片信息分析,视频片获取,但是在将视频片添加到视频源时遇到困难,也希望能获得大家的帮助,谢谢。

你可能感兴趣的:(开源夏令营)