全部產品
Search
文件中心

ApsaraVideo VOD:基本概念

更新時間:Jul 13, 2024

為便於您更好的理解ApsaraVideo for VOD產品,您可以在使用前瞭解視頻格式、視頻編碼、視頻轉碼等基本概念。

檔案格式

作業系統中的檔案名稱都有尾碼,即副檔名,例如1.doc,2.jpg,3.avi等。設定副檔名的目的是讓系統中的應用程式來識別並關聯這些檔案,讓相應的檔案由相應的應用程式開啟。常見的檔案格式如1.avi,2.mpg,3.mp4這些都叫做視頻的檔案格式,可由電腦上安裝的視頻播放器關聯和開啟(播放)。

封裝格式

封裝格式(Format),也稱多媒體容器(Multimedia Container),是將已編碼壓縮好的視頻軌道、音頻軌道和中繼資料(視頻基本資料如標題、字幕等)按照一定的格式規範,打包放到一個檔案中,形成特定檔案格式的視頻檔案。

封裝格式主要分為兩大類:面向儲存的和面向流媒體的。

  • 面向儲存的,常見的有AVI、ASF(WMA/WMV)、MP4、MKV、RMVB(RM/RA)等;

  • 面向流媒體的,常見的有FLV、TS(需要配合流媒體網路傳輸協議,如HLS、RTMP等),MP4也支援流媒體方式(配合HTTP等)。

下面以流媒體傳輸協議的視角重點介紹面向流媒體的封裝格式:

  • MP4:經典的視頻封裝格式,移動端(iOS、Android)、PC Web多終端都能良好支援。但MP4的視頻檔案頭太大,結構複雜;如果視頻較長(如數小時),則其檔案頭會過大,影響視頻載入速度,故更適合短視頻情境。

    MP4由一個個的box(以前叫atom)組成,所有的Metadata(媒體描述中繼資料),包括定義媒體的排列和時間資訊的資料都包含在這樣的一些結構box中。Metadata 對媒體資料(比如視訊框架)引用說明,而媒體資料在這些引用檔案中的排列關係全部在第一個主檔案中的metadata描述,這樣就會導致視頻時間長度越大檔案頭就會越大、載入越慢。

  • HLS(HTTP Live Streaming):蘋果公司推出的基於HTTP的流媒體網路傳輸協議,視頻的預設封裝格式是TS,除了多個TS分區檔案,還定義了用來控制播放的m3u8索引檔案(文字檔),可以規避普通MP4長時間緩衝頭部資料的問題,比較適合點播情境。移動端(iOS、Android)支援較好,但PC端IE存在相容性問題依賴播放器的二次開發(建議使用阿里雲Web播放器)。

  • FLV:Adobe公司推出的標準,在PC端有Flash的強力支援,但在移動終端只有App實現播放器才能支援(建議使用阿里雲播放器),大部分手機端瀏覽器(特別是蘋果的行動裝置)均不支援。

  • DASH(Dynamic Adaptive Streaming over HTTP):使用fragmented MP4(fMP4)格式,將MP4視頻分割為多個分區,每個分區可以存在不同的編碼形式(如解析度、碼率等);播放器端可自由選擇需要播放的視頻分區,實現自適應多碼率、不同畫質內容的無縫切換,提供更好的播放體驗。其中MPD檔案類似HLS的m3u8檔案,國外視頻網站如YouTube、Netflix等較多使用DASH。

  • HLS+fMP4(HTTP Live Streaming with fragmented MP4):此處單列,但本質上還是HLS協議。蘋果公司於WWDC 2016宣布新的HLS標準支援檔案封裝格式為fragmented MP4,使用方法與TS分區類似,意味著一次轉碼可同時打包成DASH和HLS。

    HLS(包括HLS+fMP4)和DASH是最常用的自適應流媒體傳輸技術(Adaptive Video Streaming),推薦使用。

編碼方式

視頻編碼方式(Codec)是指能夠對數位視訊進行壓縮或解壓縮(視頻解碼)的程式或者裝置。通常這種壓縮屬於有損資料壓縮。也可以指通過特定的壓縮技術,將某個視頻格式轉換成另一種視頻格式。常見的編碼方式有:

  1. H.26X系列:由ITU(國際電信聯盟)主導,包括H.261、H.262、H.263、H.264、H.265。

    • H.261:主要應用於老的視頻會議和視頻電話產品中。

    • H.262:主要應用於廣播、DVD、數字電視等領域,主要提供標清(SD)視頻的編碼和傳輸功能。

    • H.263:主要應用於視頻會議、視頻電話和網路視頻中。

    • H.264:H.264/MPEG-4第十部分,或稱AVC(Advanced Video Coding,進階視頻編碼),是一種視頻壓縮標準,一種被廣泛使用的高精度視頻的錄製、壓縮和發布格式。

    • H.265:高效率視頻編碼(High Efficiency Video Coding,簡稱HEVC)是一種視頻壓縮標準,H.264/MPEG-4 AVC的繼任者。HEVC不僅增益圖像品質,同時也能達到H.264/MPEG-4 AVC兩倍的壓縮率(等同於同樣畫面品質下碼率減少50%),可支援4K解析度甚至超高畫質電視,最高解析度可達8192×4320(8K解析度),這是目前發展的趨勢。

  2. MPEG系列:由ISO(國際標準組織)下屬的MPEG(生動影像專家組)主導,視頻編碼方面主要有:

    • MPEG-1第二部分:主要使用在VCD上,有些線上視頻也使用這種格式,該轉碼器的品質大致上和原有的VHS錄影帶相當。

    • MPEG-2第二部分:等同於H.262,使用在DVD、SVCD和大多數數位視訊廣播系統和有線分布系統(Cable Distribution Systems)中。

    • MPEG-4第二部分:可以使用在網路傳輸、廣播和媒體儲存上,比起MPEG-2和第一版的H.263,它的壓縮效能有所提高。

    • MPEG-4第十部分:技術上和ITU-TH.264是相同的標準,二者合作,誕生了H.264/AVC標準,ITU-T將其命名為H.264,而ISO/IEC稱它為MPEG-4進階視頻編碼(Advanced Video Coding,AVC)。

  3. AVS(Audio Video coding Standard):我國自主智慧財產權的信源編碼通訊協定,是《資訊技術先進音視頻編碼》系列標準的簡稱,目前已完成兩代AVS標準的制定。

    • 第一代AVS標準包括國家標準《資訊技術先進音視頻編碼第2部分:視頻》(簡稱AVS1)和《資訊技術先進音視頻編碼第16部分:廣播電視視頻》(簡稱AVS+)。AVS+的壓縮效率與國際同類標準H.264/AVC最高檔次(High Profile)相當。

    • 第二代AVS標準,簡稱AVS2,首要應用目標是超高清晰度視頻,支援超高解析度(4K以上)、高動態範圍視頻的高效壓縮。AVS2的壓縮效率比上一代標準AVS+和H.264/AVC提高了一倍,超過國際同類型標準HEVC/H.265。

  4. 其他系列,如,VP8、VP9(Google 主導),RealVideo(RealNetworks推出)等編碼方式,在互連網視頻使用較少,此處不再介紹。

選擇編碼方式要充分考慮播放終端(如移動端APP、Web瀏覽器等)的相容性,盡量使用最常見和廣泛支援的。阿里雲ApsaraVideo for VOD可使用視訊編碼格式:H.264/AVC(預設)、 H.265/HEVC,音頻編碼格式:MP3(預設)、AAC、VORBIS、FLAC。

轉碼

視頻轉碼(Video Transcoding)是指將已經壓縮編碼的視頻碼流轉換成另一個視頻碼流,以適應不同的網路頻寬、不同的終端處理能力和不同的使用者需求。轉碼本質上是一個先解碼、再編碼的過程,因此轉換前後的碼流可能遵循相同的視頻編碼通訊協定,也可能不遵循相同的視頻編碼通訊協定。

轉封裝

轉封裝指的是將視頻或音訊封裝格式進行轉換,如將AVI的視頻轉換為MP4,其間並不會進行音視頻的編碼和解碼工作,而是直接將視頻和音頻壓縮碼流從一種封裝格式檔案中擷取出來然後打包成另一種封裝格式的檔案。相比轉碼,轉封裝有兩大特點:

  • 處理速度極快。音視頻編解碼過程十分複雜,佔據了轉碼的絕大部分時間。轉封裝不需要進行編碼和解碼,節約了大量的處理時間。

  • 音視頻品質無損。沒有解碼(解壓縮)和編碼(壓縮)過程,所以不會有音視頻的壓縮損傷。

轉封裝後的檔案與原始檔案的解析度、碼率等幾乎一致,故播放時也稱其為“原畫”。

碼率、碼流

碼率(Bitrate)是指視頻檔案在單位時間內使用的資料流量,也叫碼流或碼流率,是視頻編碼中畫面品質控制最重要的部分。量度單位為“位元每秒”(bit/s或bps),常使用Kbps(每秒多少千個位元)或Mbps。一般來說同樣解析度下,視頻檔案的碼率越大,壓縮比就越小,畫面品質就越高。碼率越大,說明單位時間內取樣率越大,資料流精度就越高,處理出來的檔案就越接近原始檔案,映像品質越好,畫質越清晰,要求播放裝置的解碼能力也越高。

當然,碼率越大,檔案體積也越大,其計算公式是檔案體積=時間×碼率/8。例如,網路上常見的一部60分鐘的碼率為1Mbps的720P的視頻檔案,其體積就大概為3600秒×1Mbps/8=450MB。

解析度

解析度(Resolution)用來描述視頻對細節的分辨能力,通常表示為每一個方向上的像素數量,比如1280x720等。解析度決定了視頻畫面細節的精細程度。通常情況下,視頻的解析度越高,所包含的像素就越多,畫面就越清晰。

解析度是決定碼率的主要因素,不同的解析度要採用不同的碼率。總體而言,視頻的解析度越高,所要求的碼率也越大,但並不總是如此,不同解析度都有合理的碼率選擇範圍。所謂“合理的範圍”指的是,如果低於這個範圍,視頻畫面品質會很差;如果高於這個範圍,畫面提升有限甚至幾乎無提升,且浪費網路流量和儲存空間。

幀率

幀率(Frame Rate)是單位時間內視頻顯示幀數的量度單位,也就是每秒鐘重新整理的圖片的幀數,量度單位為“每秒顯示幀數”(Frame Per Second,FPS)或“赫茲”。

高的幀率可以得到更流暢、更逼真的畫面效果。一般來說25~30fps就可接受,提升至60fps則可以明顯提升互動感和逼真感,但一般來說超過75fps就不容易察覺到有明顯的流暢度提升了。如果幀率超過螢幕重新整理率只會浪費圖形處理的能力,因為顯示裝置不能以這麼快的速度更新,這樣超過重新整理率的幀率就浪費掉了。在解析度不變的情況下,幀率越高,則對顯卡的處理能力要求越高。

GOP(主要畫面格間隔)

GOP(Group of Pictures)是一組以 MPEG 編碼的影片或視訊串流內部的連續映像,以 I 幀開頭,到下一個 I 幀結束。一個 GOP 包含如下映像類型:

  • I幀(Intra Coded Picture):又稱幀內編碼幀,為主要畫面格,是一種內建全部資訊的獨立幀,無需參考其他映像便可獨立進行解碼,可以簡單理解為一張靜態畫面。視頻序列中的第一個幀始終都是I幀,每個GOP由I幀開始。

  • P幀(Predictive Coded Picture):又稱幀間預測性編碼幀,需要參考前面的I幀才能進行編碼。表示的是當前幀畫面與前一幀(前一幀可能是I幀也可能是P幀)的差別。解碼時需要用之前緩衝的畫面疊加上本幀定義的差別,產生最終畫面。與I幀相比,P幀通常佔用更少的資料位元,但不足是,由於P幀對前面的P和I參考幀有著複雜的依賴性,因此對傳輸錯誤非常敏感。

  • B幀(Bidirectionally Predictive Coded Pictures):又稱雙向預測編碼幀,也就是B幀記錄的是本幀與前後幀的差別。也就是說要解碼B幀,不僅要取得之前的緩衝畫面,還要解碼之後的畫面,通過前後畫面的與本幀資料的疊加取得最終的畫面。B幀壓縮率高,但是對解碼效能要求較高。

GOP值表示主要畫面格的間隔(即兩個主要畫面格之間的幀數),也就是兩個IDR幀之間的距離,一個幀組的最大幀數。一般而言,每一秒視頻至少需要使用1個主要畫面格。增加主要畫面格個數可改善視頻品質,但會同時增加頻寬和網路負載。GOP值(幀數)除以幀率即為時間間隔,如阿里雲ApsaraVideo for VOD預設的GOP值為250幀,幀率為25fps,則時間間隔為10秒。

GOP值需要控制在合理範圍,以平衡視頻品質、檔案大小(網路頻寬)和seek效果(拖動、快進的響應速度)等:

  • 加大GOP值有利於減小視頻檔案大小,但也不宜設定過大,太大則會導致GOP後部幀的畫面失真,影響視頻品質。

  • GOP值也是影響視頻seek響應速度的關鍵因素,seek時播放器需要定位到離指定位置最近的前一個主要畫面格,如果GOP太大意味著距離指定位置可能越遠(需要解碼的預測幀就越多)、seek響應的時間(緩衝時間)也越長。

  • 由於P、B幀的複雜度大於I幀,GOP值過大,過多的P、B幀會影響編碼效率,使編碼效率降低。

  • 但如果設定過小的GOP值,則需要提高視頻的輸出碼率,以確保畫面品質不會降低,故會增加網路頻寬。

掃描模式

  • 漸進式掃描(progressive):在電子顯示屏上通過掃描顯示映像時,每一幀映像通過一場掃描來完成,由電子束順序地一行接著一行連續掃描而成,一場掃描即能構成完整的畫面。

  • 隔行掃描(interlaced):在電子顯示屏上通過掃描顯示映像時,每一幀映像通過兩場掃描來完成,通常第一場先只掃描奇數行,然後第二場只掃描偶數行,兩場組合起來構成完整的畫面。

IDR 幀對齊

IDR幀(Instantaneous Decoding Refresh Picture),即時解碼重新整理幀,是 I 幀的一種。與普通 I 幀的區別在於,一個 IDR 幀之後的所有幀都不能引用該 IDR 幀之前的幀的內容;相反,對於普通的 I 幀,其後的 P 幀和 B 幀可以引用該普通 I 幀之前的其他 I 幀。在編碼和解碼中為了方便,將首個I幀和其他I幀區別開,稱為IDR,這樣就方便控制編碼和解碼流程。

IDR幀的作用是立刻重新整理,使錯誤不致傳播,從IDR幀開始,重新算一個新的序列開始編碼。而普通I幀不具有隨機訪問的能力,這個功能是由IDR承擔。視頻播放時,播放器一般都支援隨機seek(拖動)到指定位置,而播放器直接選擇到指定位置附近的 IDR 幀進行播放最為便捷,因為可以明確知道該 IDR 幀之後的所有幀都不會引用其之前的其他 I 幀,從而避免較為複雜的反向解析。

在對同一個視頻進行多碼率轉碼時,如果指定 IDR 幀對齊(IDR Frame Alignment),則意味著所有輸出視頻的 IDR 幀在時間點、幀內容方面都保持精確同步,此時播放器便可實現多碼率視頻平滑切換,從而不會出現較為明顯的切換卡頓。

編碼層級

編碼檔次(Profile)是針對特定應用情境的特定編碼功能的集合。H.264 規定了三種主要層級:

  • Baseline:支援 I/P 幀,只支援無交錯(Progressive)和 CAVLC,一般用於低階或需要額外容錯的應用,比如視訊通話、手機視頻等即時通訊領域;

  • Main:提供 I/P/B 幀,支援無交錯(Progressive)和交錯(Interlaced),同樣提供對於 CAVLC 和 CABAC 的支援,用於主流消費類電子產品規格如低解碼(相對而言)的 MP4、便攜的視頻播放器、PSP 和 iPod 等;

  • High:在 Main 的基礎上增加了 8x8 內部預測、自訂量化、無損視頻編碼和更多的 YUV 格式(如 4:4:4),用於廣播及視頻碟片儲存(藍光影片),高清電視的應用。

位元速率

位元速率(Bit rate)是指每秒傳送的位元(bit)數,單位為bps(Bit Per Second),位元速率越高,傳送的資料越大。在視頻領域,位元速率等同於碼率。位元速率表示經過編碼(壓縮)後的音、視頻資料每秒鐘需要用多少個位元來表示,而位元就是二進位裡面最小的單位,要麼是0,要麼是1。與碼率類似,位元速率與音、視頻壓縮的關係,簡單的說就是位元速率越高,音、視頻的品質就越好,但編碼後的檔案就越大;如果位元速率越低則檔案越小。

碼率控制方法

碼率控制是指視頻編碼中決定輸出碼率的過程,常用的碼率控制方法有:

  • VBR(Variable Bitrate):動態位元速率,也就是沒有固定的位元速率,音視頻壓縮軟體在壓縮時根據音視頻資料的複雜程度即時確定使用什麼位元速率,這是以品質為前提兼顧檔案大小的方式。

  • CBR(Constant Bitrate):固定位元速率,指檔案從頭到尾都是一種位速率。相對於VBR和ABR來講,它壓縮出來的檔案體積很大,而且視頻品質相對於VBR和ABR不會有明顯的提高。

  • ABR(Average Bitrate):平均位元速率,是VBR的一種插值參數。LAME針對CBR不佳的檔案體積比和VBR組建檔案大小不定的特點創造了這種編碼模式。ABR在指定的檔案大小內,以每50幀(30幀約1秒)為一段,低頻和不敏感頻率使用相對低的流量,高頻和大動態表現時使用高流量,可以做為VBR和CBR的一種折衷選擇。

    ABR在一定的時間範圍內達到設定的碼率,但是局部碼率峰值可以超過設定的碼率,平均碼率恒定。ABR是VBR的改良版,能確保輸出平均碼率在合理範圍,且在這個範圍內,還是動態根據複雜度編碼,也是阿里雲預設的編碼控制方式。

編碼格式

定義參考視頻編碼方式。主要包括無損編碼和有損編碼兩種。根據採樣定理,音頻編碼只能“無限接近”自然訊號,故而所有的音頻編碼方式實質上都是有損的。在電腦領域中,通常約定能夠達到最高保真水平的PCM編碼為無損編碼。互連網中常見的音頻編碼均為有損編碼,常見的編碼格式有MP3、AAC等。

採樣率

採樣率(Sample Rate),也稱為採樣速度或者採樣頻率,定義了每秒從連續訊號中提取並組成離散訊號的採樣個數,單位為赫茲(HZ)。採樣率是指將類比訊號轉換成數字訊號時的採樣頻率,也就是單位時間內採樣多少點,採樣頻率越高聲音的還原就越真實越自然。

碼率

參考視頻編碼的“碼率”介紹。

聲道、聲道數

聲道(Sound Channel)是指聲音在錄製(或播放)時,在不同空間位置採集(或播放)的相互獨立的音頻訊號。所謂聲道數,也就是聲音錄製時的音源數量或播放時的擴音器數量。

UTC時間(ISO 8601標準時間格式)

UTC時間指的是國際標準時間,又稱世界統一時間、世界標準時間、國際協調時間。由於英文(CUT)和法文(TUC)的縮寫不同,作為妥協,簡稱UTC。國際標準時間是以原子時秒長為基礎,在時刻上盡量接近於世界時的一種時間計量系統。中國內地採用ISO 8601-1988的《資料元和交換格式資訊交換日期和時間標記法》(GB/T 7408-1994)稱之為國際協調時間。

如無特別指定,阿里雲ApsaraVideo for VOD預設返回的時間欄位或介面請求的時間參數都為UTC時間,時間格式按照ISO8601標準表示,格式為:YYYY-MM-DDThh:mm:ssZ。例如:2017-01-11T12:00:00Z 表示北京時間2017年1月11日20點0分0秒。註:北京時間與UTC的時差為+8,也就是UTC+8。