一、音视频的后缀名
日常生活中我们会遇到各种后缀的音视频文件,比如:avi,rmvb,mp4,flv,mkv等等,这些后缀名代表的其实是一种封装的格式,何为封装格式?就是把视频数据和音频数据打包成一个文件的规范。仅仅靠看文件的后缀,很难能看出具体使用了什么视音频编码标准。总的来说,不同的封装格式之间差距不大,各有优劣。
下面是一些常见封装格式的区别:
1. AVI (Audio Video Interleave)
- 优点:
- 兼容性好,支持的设备和软件广泛。
- 可以封装多种不同的编码格式,如 DivX、Xvid、H.264 等。
- 缺点:
- 对现代编码和高效压缩支持较差。
- 不支持高级字幕和菜单功能。
- 应用场景:早期的数字视频文件,简单的视频存储和传输。
2. RMVB (RealMedia Variable Bitrate)
- 优点:
- 对低带宽环境优化,适合流媒体播放。
- 压缩效率高,文件较小。
- 缺点:
- 兼容性差,只有少数播放器支持。
- 画质一般,不适合高清内容。
- 应用场景:网络视频流媒体传输。
3. MP4 (MPEG-4 Part 14)
- 优点:
- 广泛支持,几乎所有设备和播放器都兼容。
- 支持高效的视频压缩格式,如 H.264 和 H.265。
- 支持多音轨、字幕、章节和元数据。
- 缺点:
- 在某些情况下编辑可能复杂。
- 应用场景:高清影音存储和流媒体传输,广泛应用于互联网和移动设备。
4. MKV (Matroska Multimedia Container)
- 优点:
- 开放源代码,灵活性高。
- 支持几乎所有的视频和音频编码格式。
- 支持多音轨、多字幕、章节、菜单等高级功能。
- 缺点:
- 相对较新的格式,某些设备可能不支持。
- 应用场景:高清和超高清电影、电视剧等,需要高级功能和高质量播放。
封装格式的选择
选择封装格式时,通常需要考虑以下几个因素:
- 兼容性:需要在多种设备和软件上播放时,选择兼容性较好的格式,如 MP4。
- 画质和文件大小:根据画质要求和存储限制选择合适的压缩格式和封装格式。
- 功能需求:需要多音轨、字幕和章节等高级功能时,MKV 是一个很好的选择。
- 网络传输:对于流媒体传输,FLV 和 RMVB 在低带宽环境中表现较好。
二、播放器原理
视音频技术主要包含以下几点:封装技术,视频压缩编码技术以及音频压缩编码技术。如果考虑到网络传输的话,还包括流媒体协议技术。
视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。
解协议:就是将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如HTTP,RTMP,或是MMS等等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。
解封装:就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。
解码:就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。
视音频同步:就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。
三、 流媒体数据协议
四、视频编码
视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。如果视频不经过压缩编码的话,体积通常是非常大的,一部电影可能就要上百G的空间。视频编码是视音频技术中最重要的技术之一。视频码流的数据量占了视音频总数据量的绝大部分。高效率的视频编码在同等的码率下,可以获得更高的视频质量。
视频压缩编码的基本方法:1)变换编码 2)熵编码 3)运动估计和运动补偿 4)混合编码
补充:
RGB 是一种直接表示颜色的格式,使用红、绿、蓝三种基本颜色的组合来表示每个像素的颜色。YUV 是一种表示颜色的格式,常用于视频压缩和传输。它分离了亮度 (Y) 和色度 (U 和 V) 信息
- RGB 格式适合图像显示和编辑,因为它直接表示颜色,数据量大且不适合压缩。
- YUV 格式适合视频压缩和传输,通过分离亮度和色度信息,并对色度信息进行子采样,能够有效减少数据量,同时保持较高的视觉质量。YUV 格式在现代视频编码和传输中广泛使用,提供了高效的视频压缩和存储解决方案。
有两种视频编码方案是最新推出的:VP9和HEVC。目前这两种方案都处于研发阶段,还没有到达实用的程度。当前使用最多的视频编码方案就是H.264。H.264仅仅是一个编码标准,而不是一个具体的编码器,H.264只是给编码器的实现提供参照用的。
五、音频编码
音频编码的主要作用是将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。音频编码也是互联网视音频技术中一个重要的技术。但是一般情况下音频的数据量要远小于视频的数据量,因而即使使用稍微落后的音频编码标准,而导致音频数据量有所增加,也不会对视音频的总数据量产生太大的影响。高效率的音频编码在同等的码率下,可以获得更高的音质。
补充:
- PCM 是最常见的音频采样数据格式,它直接表示音频信号的幅度, 是无压缩的、无损的音频数据格式,常用于音频录制、编辑和播放。
音频编码基本方法:
六、直播平台框架
可以看出,直播服务普遍采用了RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码格式,AAC作为音频编码格式。
采用RTMP作为直播协议的好处在于其被Flash播放器支持。而Flash播放器如今已经安装在全球99%的电脑上,并且与浏览器结合的很好。因此这种流媒体直播平台可以实现“无插件直播”,极大的简化了客户端的操作。封装格式,视频编码,音频编码方面,无一例外的使用了FLV + H.264 + AAC的组合。FLV是RTMP使用的封装格式,H.264是当今实际应用中编码效率最高的视频编码标准,AAC则是当今实际应用中编码效率最高的音频编码标准。视频播放器方面,都使用了Flash播放器。
七、点播平台框架
可以看出,点播服务普遍采用了HTTP作为流媒体协议,H.264作为视频编码格式,AAC作为音频编码格式。
采用HTTP作为点播协议有以下两点优势:一方面,HTTP是基于TCP协议的应用层协议,媒体传输过程中不会出现丢包等现象,从而保证了视频的质量;另一方面,HTTP被绝大部分的Web服务器支持,因而流媒体服务机构不必投资购买额外的流媒体服务器,从而节约了开支。点播服务采用的封装格式有多种:MP4,FLV,F4V等,它们之间的区别不是很大。视频编码标准和音频编码标准是H.264和AAC。这两种标准分别是当今实际应用中编码效率最高的视频标准和音频标准。视频播放器方面,无一例外的都使用了Flash播放器。
参考资料:视频压缩编码和音频压缩编码的基本原理_音视频压缩基本原理-CSDN博客
参考链接:https://blog.csdn.net/leixiaohua1020/article/details/18893769