B站最近新出的HTML5播放器 是怎么做到播放flv视频的?
我在审查元素里看到加载的是flv格式的视频
video标签的src属性 是这样的:blob:http%3A//http://www.bilibili.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
------JS新手
阿神2017-04-11 12:51:16
html5是否可以播放视频文件,是需要看视频文件的编码。
把B站上视频下载下来,可以看到视频编码是AVC,这是大部分支持html5的浏览器支持的编码。
所以即使文件的后缀是.flv也可以播放,如果一个视频文件是mp4格式,但编码不是avc,html5也播放不了
巴扎黑2017-04-11 12:51:16
HTML5的视频播放是基于 视频自身编码和封装的(其实任何播放器也是这样)支持性。
决定一个视频文件如何被解析来播放需要知道其数据封装格式(从而正确的分离 数据格式描述/视频数据包/音频数据包/其他数据包),这一过程在视频播放器处理中称为解复用(dmux),然后根据数据格式描述(查找各种数据包对应的解码器),各种解码器把数据恢复为基于同一时间基线的数据流(视频的帧数据,音频的音频流数据等等),然后用渲染程序向显卡输出各个帧(同时向声卡输出各个音频数据流,以及其他需要同步数据的输出,例如字幕)从而完成播放.
在这个过程中,扩展名其实不是必须的,因为视频本身的数据头才是标识数据封装、编码器等等数据信息的实体,所以仅仅看支持.flv的扩展名其实完全可能是一种处理中的个例,如前 数据编码实可能为H.264 AVC,封装也是mp4的。
其实一般扩展名在web服务中仅仅是为了方便http服务端程序在不解析数据的情况下处理数据,一般在MIME中标识,而对于.flv 和 .mp4,一般仅仅需要标识为其数据需要流式传输即够了,即服务器端其处理需求是一致的。