b站视频是如何播放的(b站视频怎么播放)

上次我们聊 B 站视频为什么播放那么快是利用了视频分片技术,提前将视频分成很多小片,这样就可以实现播放的时候只加载播放位置的视频,只需要加载那一小段就可以了。

这样就可以达到快速播放的目的了。那么我没你拿到视频片段,怎么播放呢?

今天就来研究下。

浏览器的 SourceBuffer 的 API

首先,浏览器本身有一个叫做 SourceBuffer 的 API。我们去看他的官方文档解释。

SourceBuffer 接口标识通过 MediaSource 对象传递到 HTMLMediaElement 并播放的媒体分块。它可以由一个或者多个媒体片段组成。

这样在用的时候,我们把视频的地址,传入到这个媒体对象中去。

这样等到视频一部分一部分下载好之后,就可以直接拼接上去。因为这个媒体对象有个 appendBuffer 方法。

 sourceBuffer.appendBuffer(buf);

看代码是否有SoufceBuffer这个对象

我们直接在控制台搜索代码,果然有这个对象。

基本可以断定,b 站就是通过这个对象来实现网页的视频播放的。

服务端怎么存储视频片段

我们网页下载这些视频片段,那么服务器段就要存,所以服务器要先把视频以某个格式存储好,一个一个片段文件。这样就可以一部分一部分下载。

看b 站使用一种叫 m4s 的格式存储的。

相关文章

在平板电脑上使用Chrome观看视频的最佳技巧

平板电脑由于其便携性和较大的屏幕尺寸,成为了许多人观看视频的理想选择。配合功能强大的谷歌Chrome浏览器,你的视频观看体验可以更上一层楼。下面将分享一些在平板电脑上使用Chrome观看视频时的技巧。...

这可能是目前最简单的电视播放电脑里的视频的方法

最近想重温电脑里的视频,想要用电视来看,找了很多方法,比如电脑搭建samba服务器,搭建jellyfin服务器,把视频拷贝到U盘里播放等等,设置操作复杂且对电脑的配置要求比较高,前前后后折腾了很久,虽...

p5.js 视频播放指南(p5.js 教程)

本文简介在刚接触 p5.js 时我以为这只是一个艺术方向的 canvas 库,没想到它还支持视频文件和视频流的播放。本文简单讲讲如何使用 P5.js 播放视频。播放视频文件p5.js 除了可以使用 v...

C# 开发超级视频播放器VLC代码开源

自主采用C# 开发视频播放器,效果如下;VLC多媒体播放器(最初命名为VideoLAN客户端)是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影...

在B站看猫片被老板发现?不如按下F12学学HTTP

什么是HTTPHTTP 全称超文文本传输协议,也就是HyperText Transfer Protocol。 其中我们常见的文本,图片,视频这些东西都可以用超文本进行表示,而我常看的猫片,也属于超文本...