ubuntu ffmpeg+sdl編譯安裝過程記錄
在ubuntu上的整個編譯過程其實就是標準的./configure &&make &&sudo make install
幾個問題記錄下:
1.如果系統沒有裝SDL1.x版本的話,預設是不會編譯出ffpaly命令的。因為ffmpeg的音視訊顯示依賴SDL庫,且必須是1.x版本的SDL。
2.
執行ffplay時,有些機器上會出現
Could not initialize SDL - No available video device
(Did you set the DISPLAY variable?)
說明系統中沒有安裝x11的庫檔案,因此編譯出來的SDL庫實際上不能用。
sudo apt-get install libx11-dev
sudo apt-get install xorg-dev
重新編譯sdl
再次進入sdl原始碼目錄重新編譯,make clean,./configure,make,make install
3.安裝SDL的時候出現
/src/video/x11/SDL_x11sym.h:168:17: error: conflicting types for _XData32?
SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
^
./src/video/x11/SDL_x11dyn.c:95:5: note: in definition of macro 釹DL_X11_SYM?
rc fn params { ret p##fn args ; }
查閱了一些資料,發現是libx11-dev版本問題(檢視版本如圖),版本>1.5.99,所以需要修改src/video/x11/SDL_x11sym.h 檔案,按照提示修改168行,
修改如下:
原來是:SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
改後新增一個單詞即可:(_Xconst)
SDL_X11_SYM(int,_XData32,(Display *dpy,register_Xconst long *data,unsigned len),(dpy,data,len),return)
再make 和 sudo make install就可以了。