在ubuntu16.04下测试ffplay程序
下載FFmpeg及SDL源碼
離上次博文發布已經有一段時間了,這次我們來測試一下強大的FFmpeg播放器程序ffplay,它是FFmpeg原生附帶的。
本文編寫時,FFmpeg的最新版本是3.4.2,從官網ffmpeg.org上下載ffmpeg-3.4.2.tar.xz源碼,通過如下命令解壓:
ffplay.c的源碼在fftools目錄下,我們知道,早期的ffplay版本是基于SDL1.x實現的音視頻顯示和播放,而現在的ffplay則是基于SDL2.x實現的,因此我們需要到SDL官網(http://www.libsdl.org/)下載,本文編寫時的版本是SDL version 2.0.7 (stable),下載并解壓縮:
tar xzvf SDL2-2.0.7.tar.gz編譯SDL
要使能ffplay編譯,需要Ubuntu系統中支持SDL功能,所以我們首先需要下載SDL的源代碼。進入對應目錄,配置并編譯,安裝:
cd SDL2-2.0.7 ./configure make sudo make install將完成代碼編譯和庫及頭文件安裝。
編譯ffplay
必須在正確安裝SDL庫和頭文件后,編譯FFmpeg源碼時,才會自動配置ffplay編譯使能,否則在最終的編譯結果中,沒有ffplay可執行文件產生,這點一定要注意。
在編譯FFmpeg源碼的時候,默認會編譯出ffplay :
為了方便的獲取編譯結果,指定庫和頭文件的安裝路徑為ffout(在FFmpeg源碼根目錄下)。如果在configure過程中遇到nasm/yasm之類的錯誤,則首先需要更新對應的包:
sudo apt-get install yasm最后,在ffout/lib目錄下是FFmpeg幾大庫的位置,默認都編譯成了.a的靜態庫,ffout/include是FFmpeg對應的API頭文件,而ffplay程序則位于ffout/bin目錄下,同時存在的還有ffmpeg,ffprobe,ffserver等幾個程序。
測試ffplay
可以通過ffplay程序來測試播放本地影片,比如:
./ffout/bin/ffplay test.avi順利的話,可以看到影片的音視頻正常播放。
如果遇到如下打印,表示SDL的圖形層沒有正常加載成功:
而SDL圖層一般依賴于x11圖形系統,所以需要安裝對應的包:
sudo apt-get install libx11-dev sudo apt-get install xorg-dev安裝x11后,需要重新編譯和安裝SDL,最好是用源代碼重新解壓縮編譯。
如果遇到播放沒有聲音,需要系統安裝對應的音頻設備包:
同樣的,完畢后需要徹底重新編譯安裝SDL。
下面是播放的視頻截圖:
總結
以上是生活随笔為你收集整理的在ubuntu16.04下测试ffplay程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四轴控制系统框图
- 下一篇: ubuntu18.04安装pycharm