Web多媒体入门 | 青训营笔记

60 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第14天

Web多媒体入门

重点知识点介绍

  • Web 多媒体历史
  • Web 多媒体基础知识

详细知识点介绍

一、多媒体历史

历史不长,只有二三十年,以往的浏览器不能支持视频音频的播放,得依赖flash的插件。新的HTML5原生就支持播放音频和视频,但是功能很有限,只能支持部分视频格式如mp4,并且关于视频的请求状态也无法获取,通过扩展API来完善

image.png

二、Web 多媒体基础知识

1. 编码格式

图像的基础知识: image.png

思考 同样分辨率越大的图像所占的屏幕分辨率越大吗?

答案:实际上不一定,得同时结合分辨率和图像深度结合来分析

视频的基本概念:

  • 分辨率:每一帧的图像分辨率

  • 帧率:视频单位时间内包含的视频帧的数量

  • 码率:就是指视频单位时间内传输的数据量,一般我们用kbps来表示,即千位每秒

视频帧又会分为 I帧 P帧 B帧

第一帧就是I 帧,视频压缩编码的时候,I帧只依赖于自己,不依赖其他帧

P 帧是前一项预测编码帧,它的解码依赖于前一帧的结果

B 帧不仅依赖于前面的帧,还要依赖后面的帧,只有前后的帧都解码出来后才能进行B帧

image.png

每一个GOP的第一帧一定是关键帧,GOP是指其内的帧只有内部依赖关系,没有外部依赖,即两个GOP独立

image.png

2.为什么需要编码

image.png 首先计算一下一张图片的大小,并代入到一整个视频计算视频大小

如果不编码的话,一个视频将会变得非常大,编码的主要目的是压缩空间和传输。下面介绍几种常见的编码场景,需要压缩的几类数据

空间冗余 一小块内颜色几乎都一样,可以存储一个像素的颜色和对应的重复范围,这样可以减少许多存储空间

image.png

时间冗余

视频里两张连续图片里有百分之99的内容都是重复的,存储的时候将相同的部分称之为时间冗余

image.png

编码冗余

只有少数颜色的时候,采用位数更少的编码方式,而不是正常的二十四位编码方式,这样数字位数就减少了,需要比较的位数也少了

image.png

视觉冗余

人类视觉对于高频并不是很敏感,可以降低频度

image.png

image.png

预测是指将N+1帧和N帧作对比得出结论,确定要去除空间的冗余和视觉的冗余部分。

3.主要的一些编码格式

JVT里 H262 H264 H265 H266 目前最主流的编码

image.png

电视和光盘上基本上是H262,PC上常见的是H264编码,4K视频的话要更好的压缩率用H265,基本上手机端都在用H265编码,H266编码主要是VR

4.封装格式

封装格式:存储音视频、图片或者字幕信息的一种容器

image.png

三、应用场景

image.png

四、多媒体元素和扩展API

主要是 video audio MSE

image.png 需要注意的是 play方法是异步的

image.png

image.png

但是 video 和 audio 缺陷是不支持直接播放hls、flv等视频格式。视频资源的请求和加载无法通过代码来控制。

image.png

小结

这里简单介绍了下多媒体的历史和一些编码知识,扩充了多媒体的基础知识