前言
前面的文章学习了一些关于C/C++和NDK相关的知识点,那么现在就来简单的入门一些关于音视频的相关概念,万层高楼平地起,还是从最基础开始。
正文
查看音视频文件的封装格式
这里要明确一个概念,就是封装格式,比如我们熟悉的mp4、avi等,这些是封装格式,而不是什么音频或者视频编码格式,具体看下图:
使用MediaInfo工具
前面我们使用播放器通过查看属性来分析音视频文件的内容,这里可以使用一个软件叫做MediaInfo来做同样的事,这样可以更快、更清晰地查看文件信息,看下图:
通过MediaInfo查看的音视频信息如下:
视频播放器原理
对于播放播放器的原理,其实就对应着音视频的生成过程,主要包括封装技术、视频压缩编码技术、音频压缩编码技术,如果考虑网络传输的话,还包括流媒体协议技术。
看上图,我们就能看出播放器的大致原理。
这里给做了个总结,主要就是了解一下基本步骤,以及常见的格式。
流媒体协议
既然上图给我们说明了一些基本步骤和协议,那就分别了解一些,先看一些主要流媒体协议。
这里主要就这2个方向,其中RTSP+RTP经常用于IPTV领域,因为其采用UDP传输音视频,支持组播,效率高,缺点就是网络不好的情况下会丢包。所以互联网网络环境的不稳定性,所以互联网视频服务经常采用TCP作为其流媒体传输层协议,所以像RTMP、HTTP这类协议广泛用于互联网音视频服务之中。
封装格式
封装格式在前面也说了,就是把视频码流和音频码流按照一定的格式存储在一个文件中
这里就罗列了一些常用的,这里只有AVI是不支持流媒体的,也就是不能边下边播,有的封装格式支持的音视频多,有的支持的格式少,这里具体细节不一一细说了,后面有机会再说。
视频编码
视频编码的作用就是将像素数据(RGB、YUV等)压缩成视频码流,从而降低视频的数据量。
如果视频不经过压缩编码的话,体积非常大,一部电影都有上百G的大小,所以视频编码是非常重要的技术。
下面还是罗列一些最常用的视频编码:
音频编码
音频编码的主要作用就是将音频采样数据比如PCM等压缩成音频码流,从而降低音频的数据量。音频编码也是非常重要的技术,但是一般情况下音频的数据远小于视频的数据,所以即使使用稍微落后的音频编码标准,导致音频数据量增加一点,也不会对音视频的总数据量产生大的影响。
下面也是罗列一些常用的音频编码:
网络视频服务平台对比
目前网络音视频服务主要有2种,一种就是直播平台,比如网络电视台、各种直播APP等,还有就是点播平台,可以根据用户的需要播放相应的视频节目,比如视频网站等。
其中直播平台主要架构就是RTMP+FLV+H.264+AAC这个技术方案,而点播平台一般都是HTTP+FLV+H.264+AAC这个架构,这些知识点到后面更深入的学习我们将进一步了解。
总结
这篇文章主要就是大概介绍一些关于音视频的基础和常见名称,有个印象即可,后面将更多的分析。
★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。
见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓