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

141 阅读4分钟

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

一、Web多媒体历史

  • 多媒体:多媒体是我们可以看到和听到的一切:文本、书籍、图片、音乐、声音、CD、视频、DVD、档案、电影等等。

  • 多媒体以多种方式存在。在因特网上会有很多被嵌入网页中的元素,并且今天的 web 浏览器已支持多种多媒体格式。

  • 第一代浏览器只支持文本,而且即使是对文本的支持也仅限于单一字体和单一颜色,随后诞生了支持颜色、字体和文本样式的浏览器,还增加了对图片的支持。不同的浏览器以不同的方式处理对音效、动画和视频的支持,某些元素能够以内联的方式处理,而某些则需要额外的插件。

image.png

二、基础知识

2.1 编码格式

图像基本概念

图像分辨率:用于确定组成一副图像的像素数据,就是指在水平和垂直方向上图像所具有的像素个数。

图像深度:图像深度是指存储每个像素所需要的比特数。图像深度决定了图像的每个像素可能的颜色数,或可能的灰度级数。例如,彩色图像每个像素用R,G,B三个分量表示,每个分量用8位,像素深度为24位,可以表示的颜色数目为2的24次方,既16777216个; 一副单色图像存储每个像素需要8bit,则图像的像素深度为8位,最大灰度数目为2的8次方,既256个。

视频基本概念

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

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

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

视频帧分类

  • I帧:帧内编码帧,视频品德压缩不依赖其他帧
  • P帧:前向预测编码帧,解码依赖于前一帧的图片
  • B帧:双向预测编码帧,解码依赖于前后两帧的图片

image.png

GOP

一组图片,通常称两个I帧之间的间隔一个为GOP

image.png

编码数据处理流程

预测:分为帧内预测和帧间预测,帧内预测主要针对I帧,去除空间冗余;帧间预测主要去除时间冗余。

image.png

2.2 封装格式

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

常见视频封装格式:

image.png

2.3 多媒体元素和扩展API

HTML元素

  • <video> 标签用于播放视频或直播流,可以通过JS HTMLVideoElement对象访问,结合媒体API和其他DOM技术可实现更丰富的媒体应用

  • <audio> 标签用于播放音频,可以通过JS HTMLAudioElement对象访问

<video><audio>元素方法:

image.png

<video><audio>元素属性:

image.png

<video><audio>元素事件:

image.png

<video><audio>元素缺陷:

  • 不支持直接播放hls、flv等视频格式

  • 视频资源的请求和加载无法通过代码控制:

    • 分段加载(节约流量)
    • 清晰度无缝切换
    • 精确预加载

媒体源扩展API

  • 无插件在Web端播放流媒体
  • 支持播放hls、flv、mp4等格式视频
  • 可实现视频分段加载,清晰度无缝切换,自适应码率,精准预加载等

MSE (Media Source Extension):扩展了浏览器的媒体播放功能,允许用JS动态构造媒体流MediaSource对象,然后喂给<video><audio>标签进行更精细化的播放控制。

使用流程

  1. 创建Media Source实例
  2. 创建指向Media Source的URL
  3. 监听source open事件
  4. 创建Source Buffer
  5. 向Source Buffer中加入数据
  6. 监听updateend事件

MSE播放流程

image.png

播放器播放流程

image.png

2.4 流媒体协议

常用流媒体协议:

image.png

HLS

HLS全称是HTTP Live Streaming,是一个由Apple公司提出的基于HTTP的媒体流传输协议,用于实时音视频流的传输。目前HLs协议被广泛的应用于视频点播和直播领域。

播放流程

image.png

HLS中M3U8常见类型:

  • 主播放列表:

image.png

  • 媒体播放列表:

image.png

三、应用场景

image.png

四、个人总结

今天恕我在青训营学习的第16天,今天学习了Web多媒体的基础知识,包括Web多媒体的发展历史从flash-->H5 video-->MSE、编码格式、封装格式、多媒体元素、流媒体协议以及Web多媒体的应用场景,快速帮助我入门Web多媒体的应用,同时我结合自己搜索到的资料对Web多媒体有了一个初步的了解。