今天閒來無事,逛論壇無意間發現中國傳媒大學-雷霄驊,雷神的博文。感嘆雷神文章通俗易懂,以及他無私奉獻的精神之餘,特地寫下一片簡短的總結。
0.視頻常識
平時能遇到各種各樣的視頻文件*.mp4,*.flv,*.mkv,*.rmvb,*.avi等等。這裏看到的文件後綴都是音視頻文件不同的封裝格式!但是不同的封裝格式有支持不同的音視頻編碼標準。可以通過一個工具查看對應視頻採用的技術-MediaInfo!主要的封裝格式以及對應的編碼標準可以對照下表:
1.視頻播放器原理
視頻播放器播放一個互聯網上的視頻文件,需要經過以下幾個步驟:解協議,解封裝,解碼視音頻,視音頻同步。如果播放本地文件則不需要解協議,爲以下幾個步驟:解封裝,解碼視音頻,視音頻同步。他們的過程如圖所示。
解協議:通常是將網絡傳輸的流媒體數據解析成標準的封裝格式數據,傳輸協議通常包含RTMP,RTP,HTTP。這些傳輸協議通常還包含一些信令數據以支持流媒體的播放/暫停等。網絡傳輸的通常形式是:protocol header+data。通俗講,解協議的任務就是講data內的音視頻數據拿出來。
解封裝:此步驟的任務就是將上一步解協議後等到的封裝流進行再解析,得到音頻數據和視頻數據。
解碼:將解封裝後的壓縮音視頻數據解壓成非壓縮的音視頻數據。壓縮的視頻數據解壓成YUV或者RGB;壓縮的音頻數據解壓成標準的PCM數據。
視音頻同步:就是根據解封裝模塊處理過程中獲取到的參數信息,同步解碼出來的視頻和音頻數據,並將視頻音頻數據送至系統的顯卡和聲卡播放出來。
2.音視頻編碼標準
主要視頻編碼一覽
名稱 |
推出機構 |
推出時間 |
目前使用領域 |
HEVC(H.265) |
MPEG/ITU-T |
2013 |
研發中 |
H.264 |
MPEG/ITU-T |
2003 |
各個領域 |
MPEG4 |
MPEG |
2001 |
不溫不火 |
MPEG2 |
MPEG |
1994 |
數字電視 |
VP9 |
|
2013 |
研發中 |
VP8 |
|
2008 |
不普及 |
VC-1 |
Microsoft Inc. |
2006 |
微軟 |
下面包含一些碼流分析工具:
Elecard:http://www.elecard.com/en/index.html
CodecVisa:http://www.codecian.com/
Intel Video Pro Analyzer 2014: https://software.intel.com/en-us/media-solutions-portal,該工具是專門針對最新的H.265和VP9的
雷神自己專門寫了一個H.264的分析工具:https://blog.csdn.net/leixiaohua1020/article/details/17933821 膜拜~~~
主要音頻編碼一覽
名稱 |
推出機構 |
推出時間 |
目前使用領域 |
AAC |
MPEG |
1997 |
各個領域(新) |
AC-3 |
Dolby Inc. |
1992 |
電影 |
MP3 |
MPEG |
1993 |
各個領域(舊) |
WMA |
Microsoft Inc. |
1999 |
微軟平臺 |
以上只是總結全部源自雷神的博文,有很多沒有總結到位。更多詳盡的解釋說明,請閱讀原文!