一、 視頻格式(容器)
Flv,mp4,rmvb,mkv,avi從形式上來說首先都是視頻文件的擴展名,其次它們也是視頻文件的封裝格式(即容器)。
問題1:視頻容器里面裝的是什么?答案如下:
所謂容器,就是把編碼器生成的多媒體內容(視頻,音頻,字幕,章節信息等)混合封裝在一起的標准。容器使得不同多媒體內容同步播放變得很簡單,而容器的另一個作用就是為多媒體內容提供索引,也就是說如果沒有容器存在的話一部影片你只能從一開始看到最后,不能拖動進度條(當然這種情況下有的播放器會話比較長的時間臨時創建索引),而且如果你不自己去手動另外載入音頻就沒有聲音。
視頻格式是視頻播放軟件為了能夠播放視頻文件而賦予視頻文件的一種識別符號。簡言之,視頻格式規定了和播放器的通信協議。
二、視頻協議(網絡視頻傳輸協議)
是針對網絡流媒體而言的,也就是只有在有網絡時通過瀏覽器或者移動端APP才能看到的視頻,目前常見的協議有RTSP、RTMP、HLS、HTTP等。
三、幀
流媒體領域,『流』很重要,『流』的基本元素『幀』同樣重要。原因在於:對於視頻編碼/壓縮而言,它的核心是采用盡量小的空間存儲一組時間上連續的幀數據;而對於視頻解碼而言,就是把被編碼/壓縮后的一組幀數據盡量恢復成原來的樣子。能夠被100%恢復的編碼/壓縮算法稱為無損壓縮,反之稱為有損壓縮(雖然無損壓縮是最理想的,但是在很多實際場景中為了追求高壓縮率,比如為了減小網絡帶寬壓力,常常不得不選擇有損壓縮)。由此可見,『幀』是視頻流媒體領域的核心。
『幀』,可以聯想成我們平時看到的一幅幅“圖像”,只不過我們平時接觸的圖片是『RGB』格式的,而視頻幀通常是『YUV』格式的。
四、視頻編碼方式和封裝格式
常見的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其實只能算是一種封裝標准(也可看做經過編碼后存放視頻數據的容器)。
一個完整的視頻文件是由音頻和視頻2部分組成的。H264、Xvid等就是視頻編碼格式,MP3、AAC等就是音頻編碼格式。
例如:將一個Xvid視頻編碼文件和一個MP3視頻編碼文件按AVI封裝標准封裝以后,就得到一個AVI后綴的視頻文件,這個就是我們常見的AVI視頻文件了。
由於很多種視頻編碼文件、音頻編碼文件都符合AVI封裝要求,則意味着即使是AVI后綴,也可能里面的具體編碼格式不同(H264,MPEG-4方式編碼)。因此出現在一些設備上,同是AVI后綴文件,一些能正常播放,還有一些就無法播放。
同樣的情況也存在於其他容器格式。即使RMVB、WMV等也不例外
事實上,很多封裝容器對音頻編碼和視頻編碼的組合方式放的很開,如AVI還可以使用H264+AAC組合,可以在具體使用中自己體會。尤其是MKV封裝容器,基本無論什么樣的組合都可以!但一般MKV用的最多的就是H264+AAC組合,此組合文件體積最小,清晰度最高。因此網上很多MKV視頻都是高清晰度的。
因此,視頻轉換需要設置的本質就是:A設置需要的視頻編碼、B設置需要的音頻編碼、C選擇需要的容器封裝。一個完整的視頻轉換設置都至少包括了上面3個步驟。
目前最常見的視頻編碼方式有 MPEG-1/-2 < WMV/7/8 < RM/RMVB < Xvid/Divx < AVC/H.264,視頻壓縮效能和技術先進性也基本表現為上述排列順序(由低到高,不完全准確)。
目前最常見的音頻格式有 Mp3、AC-3、ACC,MP3最廣泛的支持最多,AC-3是杜比公司的技術,ACC是MPEG-4中的音頻標准,ACC是目前比較先進和具有優勢的技術。
視頻編碼標准兩大系統
視頻編碼標准有兩大系統: MPEG 和ITU-T,如下表:
1、MPEG 標准 由MPEG制定
MPEG-1 | MPEG-2 | (MPEG-3) | MPEG-4 | MPEG-7 | MPEG-21
2、ITU-T 標准 由VCEG制定
H.261 | (H.262) | H.263 | H.263v2 | H.264
