Web多媒体简述|青训营笔记

176 阅读2分钟

这是我参与

「第四届青训营」笔记创作活动的第12天

Web多媒体基础知识

编码格式

  • 图像
    • 分辨率:用于确定一个图像的像素数据,就是指水平和垂直方向上图像所拥有的像素个数
    • 深度:指存储每个像素所需要的比特数。决定了图像每个像素可能的颜色数或可能的灰度级数
  • 视频
    • 帧率:视频单位时间内所包含的视频帧的数量
    • 码率:视频单位时间内所传输的数据量,一般用kbps表示

image.png

  • I帧:帧内编码帧,就是解码只依赖于自己本身
  • P帧:前向预测编码帧,解码依赖于前一阵
  • B阵:双向预测编码帧,解码不仅依赖于前面帧还依赖于后一帧,

为什么需要编码

当一幅分辨率为1290 * 1080的图片被渲染出来时,占用空间是:
1290 * 1080 * 24 / 8 = 6220800Byte 差不多6.0M
如果是帧率为30FPS时长90分钟的视频,容量大小将会达到933G,这是很难接受的
所以需要进行压缩,压缩就是通过编码

  • 空间冗余
    • 提取相同像素RGB的值,只需知道数量就能压缩存储
  • 时间冗余
    • 后一帧内容与前一帧差别不大时,只需存储相同内容
  • 编码冗余
    • 将元素用简单的编码进行表示,以减少存储空间
  • 视觉冗余
    • 肉眼难以察觉的色彩变化可以通过减少像素个数压缩体积

image.png

主流编码格式标准

image.png

封装编码

封装格式:存储音视频、图片或者字幕信息的一种容器
编码内不包含分辨率、轨道是否包含音频或视频这些信息,所以需要依赖于封装格式
也便于存储传输

image.png

HTML中的多媒体元素

<video> & <audio>标签

<body>
//写入<video>标签内
    <video src="./video.mp4" muted autoplay controls width=500 height=500></video>
    //嵌套src,能放入多个元素
    <video width="320" height="240" controls>
      <source src="movie.mp4" type="video/mp4">
      <source src="movie.ogg" type="video/ogg">
    </video>
    
    //音频资源
    <audio>
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
    </audio>
</body>

image.png

image.png

image.png

缺陷:

  • 不支持播放hls、flv等视频格式
  • 视频资源的加载和请求无法通过代码控制

image.png

扩展

实现资源的控制

image.png

播放器运行流程:

image.png