一、基础概念
1.两种应用场景
- 本地播放。先保存为文件,再使用本地播放器播放
- 在线观看。在线观看又分为 直播(直播即实时视频,只要终端接收流就从那一刻开始)和 点播(点播即编辑好的视频文件,存放在服务区或云上,被观众任意观看)
对于本地播放,每个视频都有自己的格式( .MP4,.RMVB, .AVI )等,这些格式代表的是 封装格式。简称视频格式,也称为 容器 。为了统一口径,本文统一称 视频封装格式 。何为封装格式?就是把视频数据和音频数据打包成一个文件的规范。仅仅靠看文件的后缀,很难能看出具体使用了什么视音频编码标准。总的来说,不同的封装格式之间差距不大,各有优劣。
在线观看其实是一种视频协议。也就是只有在有网络时通过浏览器或者移动端APP才能看到的视频。常见的直播流协议有:RTMP、RTSP、HTTP 等;常见的点播协议有:MP4、FLV、HLS 等。在连接视频协议时,除了音视频频流和metadata之外,可能还会携带播放的信令
2.采样
根据奈魁斯特(NYQUIST)采样定理,用2倍于一个正弦波的频率进行采样就能完全真实地还原该波形
3.帧速率
视频是由一帧帧的画面,也就是一张张的图片构成,如果一秒钟跑过去的图片有24张,帧速率就是24帧/秒(fps)
4.分辨率
我们所看到的图像都是由一个个的像素点构成的;分辨率就是所显示图像的精密程度,也可以理解为像素点的多少
标清:480x320,640x480
高清:1024x720p
全高清:1920x1080p
超清(4K):3840x2160,7680x4320
720p格式:分辨率为1280×720p/60Hz,行频为45kHz。
4K格式:分辨率是1080p的4倍 3840×2160 = 1920×2×1080×2
8K格式:分辨率是4K的4倍 7680×4320 = 3840×2×2160×2
5..码率
码率,又叫比特率,是指每秒钟视频或音频的数据量,一般用兆/秒或K/秒表示
CBR 固定码率
ABR 平均码率比特率
VBR 可变码率
6.音频采样率
音频采样率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然
视频有两个空间维度(高度和宽度),但是音频只有一个;响度,它本质上是任意给定的时刻的空气压力。所以音频保存为一系列的响度测量值。在模拟世界中,类似声音通过扬声器电缆的时候,这些变化是电线中电压的变化。对于响度变化进行采样的频率称为采样率
7.采样位数
采样位数可以理解为声卡处理声音的解析度.这个数值越大,解析度就越高,录制和回放的声音就越真实。
8.采样频率
采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然.在当今的主流声卡上,采样频率一般共分为22.05KHz、44.1KHz、48KHz三个等级,22.05只能达到FM广播的声音品质,44.1KHz则是理论上的CD音质界限,48KHz则更加精确一些.对于高于48KHz的采样频率人耳已无法辨别出来了,所以在电脑上没有多少使用价值.
二、视频播放原理
2.1视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:
- 解协议
- 解封装
- 解码视音频
- 视音频同步
如果播放本地文件则不需要解协议,为以下几个步骤:
- 解封装
- 解码视音频
- 视音频同步
2.2流程图
1.解协议
就是将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如HTTP,RTMP,或是MMS等等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据
2.解封装
解封装的作用,就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。
3.解码
解码的作用,就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。
4.视音频同步
视音频同步的作用,就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。
三、视频压缩知识
1.视频文件格式
2.视频封装格式 相当于 一种存储视频信息的容器
AVI,MPEG,VOB是一种视频封装格式,相当于一种储存视频信息的容器
3.1AVI格式 后缀.avi 音频视频交错格式
3.2 DV-AVI格式(后缀为.AVI)
3.3 QuickTime File Format 后缀.mov
3.4 MPEG格式(文件后缀可以是 .MPG .MPEG .MPE .DAT .VOB .ASF .3GP .MP4等)
3.5WMV格式(后缀为.WMV .ASF)
3.6 real video (后缀为.RM .RMVB)
3.7 Flash video 后缀.FLV 一种流行的网络视频封装格式
3.8 Matroska 后缀.mkv
常用视频格式及对应的文件格式 | |
视频封装格式 |
视频文件格式 |
AVI(Audio Video Interleave) |
AVI |
WMV (Windows Media Video) |
WMV |
MPEG (Moving Picture Expert Group ) 分为MPEG-1 MPEG-2 MPEG-4 |
MPG MPEG VOB DAT 3GP MP4 |
Matroska |
MKV |
Real video |
RM RMVB |
Quick Time Flie Format |
MOV |
Flash Video |
FLV |
4.流媒体协议
4.1RTSP+RTP经常用于IPTV领域
4.2RTMP
4.3 MMS
4.4 HTTP
四、视频编码方式
4.1 H.26X系列 包括H.261、H.262、H.263、H.264、H.265。
4.2 MPEG系列
4.3 VP9 VP8
视频原始数据格式
- YUV格式
- RGB格式
音频的原始数据
- PCM格式
音频编码标准
- MP3
- AAC
- AC-3