音视频&流媒体
是什么促使我要写这一篇音视频入门文章?那是因为和一妹子打赌码率的概念,结果输了;对一个技术人员而言,码率这个种最基本的概率都没整明白,简直是奇耻大辱,开个玩笑。有了这个前提之后,发现,还是得多理解下原理和基础入门知识。
流媒体背景
当下,音视频、流媒体已经无处不在,直播已经火了几年,在后续的时间里面,人们聊天已经不仅仅满足与文字、而是更多的在于“类面对面”交流,能够实时感知对方的表情、动作。为此,有必要跟紧时代潮流,好好梳理梳理流媒体这门功课。
流媒体是什么?流媒体就是指采用流式传输技术在网络上连续实时播放的媒体格式,如音频、视频或多媒体文件。流媒体技术也称流式媒体技术。那么音视频就是流媒体的核心。
音视频常见术语定义规范
音视频组成
一个完整的视频文件,包括音频、视频和基础元信息,我们常见的视频文件如mp4、mov、flv、avi、rmvb等视频文件,就是一个容器的封装,里面包含了音频和视频两部分,并且都是通过一些特定的编码算法,进行编码压缩过后的。
H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。例如:将一个Xvid视频编码文件和一个MP3音频编码文件按AVI封装标准封装以后,就得到一个AVI后缀的视频文件。
因此,视频转换需要设置的本质就是
- 设置需要的视频编码
- 设置需要的音频编码
- 选择需要的容器封装
一个完整的视频转换设置都至少包括了上面3个步骤。
编码格式
音频编码格式
音频编码格式有如下
- AAC
- AMR
- PCM
- ogg(ogg vorbis音频)
- AC3(DVD 专用音频编码)
- DTS(DVD 专用音频编码)
- APE(monkey’s 音频)
- AU(sun 格式)
- WMA
音频编码方案之间音质比较(AAC,MP3,WMA等)结果: AAC+ > MP3PRO > AAC> RealAudio > WMA > MP3
目前最常见的音频格式有 Mp3、AC-3、ACC,MP3最广泛的支持最多,AC-3是杜比公司的技术,ACC是MPEG-4中的音频标准,ACC是目前比较先进和具有优势的技术。对应入门,知道有这几种最常见的音频格式足以。
视频编码格式
视频编码标准有两大系统: MPEG 和ITU-T,国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+、H.264等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。
常见编码格式有:
- Xvid(MPEG4)
- H264 (目前最常用编码格式)
- H263
- MPEG1,MPEG2
- AC-1
- RM,RMVB
- H.265(目前用的不够多)
目前最常见的视频编码方式的大致性能排序基本是: MPEG-1/-2 < WMV/7/8 < RM/RMVB < Xvid/Divx < AVC/H.264(由低到高,可能不完全准确)。
在H.265出来之前,H264是压缩率最高的视频压缩格式,其优势有:
- 低码率(Low Bit Rate):和MPEG2和MPEG4 ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。
- 高质量的图象 :H.264能提供连续、流畅的高质量图象(DVD质量)。
- 容错能力强 :H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。
- 网络适应性强 :H.264提供了网络抽象层(Network Abstraction Layer),使得H.264的文件能容易地在不同网络上传输(例如互联网,CDMA,GPRS,WCDMA,CDMA2000等)。
H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。举个例子,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比达到惊人的102∶1。低码率(Low Bit Rate)对H.264的高的压缩比起到了重要的作用,和MPEG-2和MPEG-4 ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像,正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。
目前这些常见的视频编码格式实际上都属于有损压缩,包括H264和H265,也是有损编码,有损编码才能在质量得以保证的前提下得到更高的压缩率和更小体积
存储封装格式
目前市面常见的存储封装格式有如下:
- AVI (.avi)
- ASF(.asf)
- WMV (.wmv)
- QuickTime ( .mov)
- MPEG (.mpg / .mpeg)
- MP4 (.mp4)
- m2ts (.m2ts / .mts )
- Matroska (.mkv / .mks / .mka )
- RM ( .rm / .rmvb)
- TS/PS
AVI : 可用MPEG-2, DIVX, XVID, WMV3, WMV4, AC-1, H.264
WMV : 可用WMV3, WMV4, AC-1
RM/RMVB : 可用RV40, RV50, RV60, RM8, RM9, RM10
MOV : 可用MPEG-2, MPEG4-ASP(XVID), H.264
MKV : 所有
视频码率、帧率、分辨率
码率
码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内采样率越大,数据流,精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。
当然,码率越大,文件体积也越大,其计算公式是文件体积=时间X码率/8。例如,网络上常见的一部90分钟1Mbps码率的720P RMVB文件,其体积就=5400秒×1Mbps/8=675MB。
通常来说,一个视频文件包括了画面(视频)及声音(音频),例如一个RMVB的视