四、FFmpeg-用SDL顯示視頻畫面

一、SDL的安裝

可到SDL官網下載安裝SDL2.0,下載地址http://www.libsdl.org/

Linux下的SDL安裝步驟

cd SDL (進入源碼目錄)

mkdir build

cd build

../configure

make && sudo make install

二、SDL和視頻

本章我們將使用SDL在屏幕上顯示視頻,SDL是Simple Direct Layer的縮寫。它是一個跨平臺的出色的多媒體庫,許多項目都有用到它。可以從它的官網站http://www.libsdl.org/上下載這個庫的源代碼,你也可以把它的開發包下載自己的操作系統中。本章及後面的章節的程序的運行,都需要這個庫,所以你得先把它編譯安裝好。

SDL庫有許多種方法在屏幕上顯示圖像,其中一個特殊的圖像顯示方式叫做YUV覆蓋(overlay)。YUV(從技術上講叫YCbCr而不是YUV)是一種類似於RGB格式的存儲原始圖像的格式。Y是亮度分量,U和V是色度分量。(這種格式要比RGB複雜的多,因爲它丟棄了很多顏色信息,而且每兩個水平Y採樣點,對應一個U和一個V採樣點)。SDL的YUV覆蓋使用一組原始的YUV數據並在屏幕上顯示它們。它接受4種不同的YUV格式,但是YV12格式是最快的。有一種格式叫做YUV420P,它和YV12是一樣的,只是它的U和V分量的位置交換了。 420意思是採樣比爲4:2:0,即1個顏色分量對應4個亮度分量。所以它的色度信息只有原來的1/4。這樣有利於節省帶寬,而人眼感覺不到這種變化。P表示這種格式是平面的——簡單的說就是Y,U和V分量分別放在不同的數組中。FFMPEG可以把圖像格式轉換爲YUV420P,現在很多視頻流的格式已經是YUV420P的了或者可以容易的轉換成YUV420P格式。

現在我們改變一下writeFrame2File()函數的功能,在這個函數中把視頻幀顯示到屏幕上。我們先來看一下怎麼使用SDL庫,首先把相關的頭文件包含進來,然後進行初始化。

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