網站視頻技術筆記

所謂視頻 和 視頻格式


我們平時看的視頻文件格式:mp4/rmvb/mkv/avi其實是一個容器。

這個容器中裝的東西分爲兩大類:音頻和視頻。對於視頻這部分,它包含的編碼格式有:H264/H265/VP8/VC1等。 對於音頻這個部分,它包含的編碼格式有:AAC/MP3/mid等。

所以說,我們平常籠統說的【視頻格式】其實包含了三個部分:視頻編碼,音頻編碼,容器格式。

視頻編碼成MP4或其他格式,就是將視頻圖像轉換成爲二進制數據的過程。視頻播放也就是視頻解碼就是將二進制數據轉化成圖像的過程。音頻編碼也是一樣的。

那麼我們看一個視頻文件的時候,能同時看到聲音和圖像,就說明我們至少同時存在視頻編碼和音頻編碼兩組數據。那麼這兩組數據是按照什麼規則組織起來的呢?這就要看【容器格式】的規定了。容器裏面存放的數據可能採用多種不同的編碼方式。比如avi文件存放的通常是xvid或者divx編碼的視頻和mp3編碼的音頻。rmvb 文件裏面存放的通常是 RV40 編碼的視頻和 cook 編碼的音頻。mp4 文件裏面通常存放的是 H.264 編碼的視頻和 AAC 編碼的音頻。mkv 文件裏面存放的則可能包含前面各種。


H264-- MP4的視頻編碼格式


H.264是國際標準化組織(ISO)和國際電信聯盟(ITU)共同提出的繼MPEG4之後的新一代數字視頻壓縮格式。H.264是ITU-T以H.26x系列爲名稱命名的視頻編解碼技術標準之一。H.264是ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像編碼專家組)的聯合視頻組(JVT:joint video team)開發的一個數字視頻編碼標準。該標準最早來自於ITU-T的稱之爲H.26L的項目的開發。H.26L這個名稱雖然不太常見,但是一直被使用着。H.264是ITU-T以H.26x系列爲名稱命名的標準之一,AVC是ISO/IEC MPEG一方的稱呼。


HTML5 -- 支持視頻播放的html


html5能直接播放視頻,但是html並不具備 解碼 MP4/OGG的能力,  html需要通過 瀏覽器自帶 視頻解碼器來進行視頻解碼。所以會出現不同的瀏覽器 H5支持的 視頻格式不一樣的問題。


附:WEBM 由Google提出,是一個開放、免費的媒體文件格式。    

OGG 是完全免費、開放和沒有專利限制的。 

但是由於 微軟和 蘋果公司 有H264的專利,所以 ie 和 safari 只支持MP4。


所有最優的播放模式是 

1)flash 優先,flash播放失敗(安卓或 ios),選用H5播放 

2)H5 <vedio>  裏面增加2個格式視頻播放,作爲多瀏覽器兼容(但是無法兼容低版本瀏覽器)


FFMEPG --一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。(可用於 hls 的視頻切片)

多媒體視頻處理工具FFmpeg有非常強大的功能包括視頻採集功能、視頻格式轉換、視頻抓圖、給視頻加水印等。

基於linux 可以做非常強大的 視頻處理程序

下面分析一下多媒體中最基本最核心的視頻解碼過程,平常我們從網上下載一部電影或者一首歌曲,那麼相應的多媒體播放器爲我們做好了一切工作,我們只用欣賞就ok了。目前幾乎所有的主流多媒體播放器都是基於開源多媒體框架ffmpeg來做的,可見ffmpeg的強大。下面是對一個媒體文件進行解碼的主要流程:

h264編碼文件——>解複用——>解碼——>yuy/rgb數據





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章