web视频播放-视频协议/编解码/格式

1,266 阅读4分钟

前言

前不久做了视频相关的项目,对其中的三个概念(协议/编解码/格式)总是分不清,尤其是编码跟格式总是容易搞混,所以在这里总结梳理一下。

  • 视频流传输协议
  • 编解码
  • 视频格式

1.视频传输协议

流媒体传输协议(rtp/rtcp/rtsp/rtmp/hls) 流媒体(streaming media)是指将一连串数据压缩后,经过网络分段发送,即时传输以供观看音视频的一种技术。通过使用 streaming media 技术,用户无需将文件下载到本地即可播放。由于媒体是以连续的数据流发送的,因此在媒体到达时即可播放。可以像下载的文件一样进行暂停、快进或倒退操作。流媒体协议是一种标准化的传递方法,用于将视频分解为多个块,将其发送给视频播放器,播放器重新组合播放。

2.编解码器

编、解码器指视频压缩技术,即压缩器/解压器。编码不同于容器,容器指实际存储视频数据的格式,即视频格式,相当于放置数据的盒子,编解码就像拆开和包装盒子的说明。例如H.264/AVC、H.263、H.265/HEVC是编码,mp4、mov、avi是容器。

2.1 为什么使用编解码

以超高清(Ultra-High-Definition, UHD)视频为例,UHD分辨率为3840×2160像素,帧率为60(即每秒有60幅图像),那么未经压缩的1秒视频的数据量超过119.4亿比特(3840×2160像素/图像×24bits/像素×60图像/秒)。这么巨大的数据量,不经过压缩直接传输和存储视频信号几乎是无法实现的。而视频编码技术使得远程视频信号的流畅清晰播放成为可能。

2.2 视频编码进化史

H.262/MPEG-2标准推进了模拟电视到数字电视的变革,H.264/AVC使得高清视频和互联网视频得以广泛推广,H.265/HEVC则成功推动了4K超高清视频的普及,而H.266/VVC则对8K超高清、屏幕、高动态和360度全景视频等新的视频类型以及自适应带宽和分辨率的流媒体和实时通信等应用有了更好的支持。

上面提到的几个名词:帧,帧率,分辨率,如下:

  • 帧:每次切换显示的画面称之为一帧(frame)
  • 帧率:每秒切换帧的次数fps,一般一秒60帧
  • 分辨率:每一帧包含的像素数,以 水平方向的像素数量 × 垂直方向的像素数量 来表示,比如 
  • 720p = 1280 × 720 就是一个比较常见分辨率。
  • 比特率:视频每秒长度中包含的比特数
  • 2k:1920*1080分辨率
  • 4K:3480*2160 4倍高清
  • 8k:7680*4320 16倍高清 像素超3300万

image.png

3.视频格式

视频格式指视频文件格式(container format),视频数据需要按预先制定好的格式进行整理才能保存在设备上。格式的制定中主要保存两类信息即视频元数据和视频主体数据。元数据包含对主体数据的的一些描述信息,包括记录视频的大小、分辨率,音频和视频的编码方案。

常见的视频格式包括mp4,avi,mov等。文件格式只是一个框,框中包含视频文件、音频文件和元数据,一般会选择mp4为容器格式被各个系统和设备广发支持。

总结

好了,就是这三个概念也是多方学习总结归纳的,抽象为一个例子更形象说明总结下: 假如你是一个批发商,需要批量运输衣服(视频),编解码就是将衣服压缩打包以节省空间的机器,容器格式就是盛放压缩后的集装箱,协议就是将其送到目的地的交通工具,信号灯。