1. 程式人生 > >短視訊寶貝=慢?阿里巴巴工程師這樣秒開短視訊。

短視訊寶貝=慢?阿里巴巴工程師這樣秒開短視訊。

文章概要

隨著短視訊興起,各大APP中短視訊隨處可見,feeds流、詳情頁等等。怎樣讓使用者有一個好的視訊觀看體驗顯得越來越重要了。大部分feeds裡面滑動觀看視訊的時候,有明顯的等待感,體驗不是很好。針對這個問題我們展開了一波優化,目標是:視訊播放秒開,視訊播放體驗良好。

在正式分析問題之前有必要說明下:我們現在首頁的視訊,都是320p H.264編碼的mp4視訊。

H.264 & H.265

H.264也稱作MPEG-4AVC(Advanced Video Codec,高階視訊編碼),是一種視訊壓縮標準,同時也是一種被廣泛使用的高精度視訊的錄製、壓縮和釋出格式。H.264因其是藍光光碟的一種編解碼標準而著名,所有藍光播放器都必須能解碼H.264。H.264相較於以前的編碼標準有著一些新特性,如多參考幀的運動補償、變塊尺寸運動補償、幀內預測編碼等,通過利用這些新特性,H.264比其他編碼標準有著更高的視訊質量和更低的位元速率。

H.265/HEVC的編碼架構大致上和H.264/AVC的架構相似,也主要包含:幀內預測(intra prediction)、幀間預測(inter prediction)、轉換 (transform)、量化 (quantization)、去區塊濾波器(deblocking filter)、熵編碼(entropy coding)等模組。但在HEVC編碼架構中,整體被分為了三個基本單位,分別是:編碼單位(coding unit,CU)、預測單位(predict unit,PU) 和轉換單位(transform unit,TU )。

總的來說H.265壓縮效率更高,傳輸位元速率更低,視訊畫質更優。看起來使用H.265似乎是很明智的選擇,但我們這裡選擇的是H.264。原因是:H.264支援的機型範圍更為廣泛。

*PS:閒魚H.265視訊在寶貝詳情頁會在近期上線,敬請關注體驗!

TS & FLV & MP4

TS是日本高清攝像機拍攝下進行的封裝格式,全稱為MPEG2-TS。TS即"Transport Stream"的縮寫。MPEG2-TS格式的特點就是要求從視訊流的任一片段開始都是可以獨立解碼的。下述命令可以把mp4轉換成ts格式,從結果來看ts檔案(4.3MB)比mp4檔案(3.9MB)大10%左右。

ffmpeg -i input.mp4 -c copy output.ts

FLV是FLASH VIDEO的簡稱,FLV流媒體格式是隨著Flash MX的推出發展而來的視訊格式。由於它形成的檔案極小、載入速度極快,使得網路觀看視訊檔案成為可能,它的出現有效地解決了視訊檔案匯入Flash後,使匯出的SWF檔案體積龐大,不能在網路上很好的使用等問題。FLV只支援一個音訊流、一個視訊流,不能在一個檔案裡包含多路音訊流。音訊取樣率不支援48k,視訊編碼不支援H.265。相同編碼格式下,檔案大小和mp4幾乎沒有區別。

ffmpeg -i input.mp4 -c copy output.flv

MP4是為大家所熟知的一種視訊封裝格式,MP4或稱MPEG-4第14部分是一種標準的數字多媒體容器格式。MPEG-4第14部分的擴充名為.mp4,以儲存數字音訊及數字視訊為主,但也可以儲存字幕和靜止影象。因其可容納支援位元流的視訊流,MP4可以在網路傳輸時使用流式傳輸。其相容性很好,幾乎所有的移動裝置都支援,而且還能在瀏覽器、桌面系統進行播放。綜合上面幾個封裝格式的特點,我們的最終選擇是MP4。

原文連結

https://mp.weixin.qq.com/s/T-yBbKhnrPQHofMB1FsNog

服務推薦