1、在Ubuntu界面上調處命令行界面,最方便的方式是使用快捷鍵Ctrl+Alt+T。
2、安裝SDL
SDL是一個開源的多媒體開發庫,可以設置圖像和視頻的繪制等操作。如果不安裝SDL,FFMPEG將不能生成ffplay.exe播放器。在Ubuntu下安裝SDL也很簡單,只需要依次執行下列命令:
sudo apt-get install libsdl1.2-dev
sudo apt-get install libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev
sudo apt-get install libsdl-ttf2.0-dev
sudo apt-get install gfx1.2-dev
3、安裝x264和yasm
x264是非常流行的視頻編解碼工具,yasm則用於x264中匯編語言優化。
yasm: sudo apt-get install yasm
X264:
到官網下載X264的源代碼,編譯:
./configure --prefix=/usr --enable-shared //必須指定prefix位置,否則編譯ffmpeg的時候會提示找不到libx264
make
sudo make install
4、安裝ffmpeg的其他依賴庫,通過兩條命令完成:
sudo apt-get update
sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev zlib1g-dev
5、到ffmpeg官網下載ffmpeg的源代碼,或者 git clone https://github.com/FFmpeg/FFmpeg.git 解壓,編譯:
cd 到源碼文件夾下
./configure --enable-debug --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-x11grab --enable-version3 --disable-optimizations --disable-asm --enable-shared --enable-pic //優化操作,會使得某些變量被優化掉,在后續的調試時無法觀察變量的變化,因此關閉優化;里面有些參數可能環境不支持,刪去就好
make
sudo make install
//以上部分參考:在Ubuntu下編譯FFmpeg
6、GDB調試:
有兩種方式可以進入GDB,一種就是直接在命令行上輸入gdb,然后再在gdb中用file命令加載要調試的程序;另一種就是,直接在命令行上使用:gdb 程序名
gdb ffmpeg_g //調試時應當是ffmpeg_g,它帶有調試符號;而不是ffmpeg
file ffmpeg_g //file <文件名>: 加載被調試的可執行程序文件
set args -h filter=transform //用 "set args 參數值1 參數值2...."來設置輸入參數
set args -i input.mp4 -vf transform=input_stereo_format=MONO:w_subdivisons=4:h_subdivisons=4:max_cube_edge_length=512 -qscale 20 output.mp4
//以上參數是ffmpeg加入facebook/transform代碼的設置參數,自己調試時改成自己想要的參數就好了,ffmpeg常用參數一覽表
b transform_pos //b <函數名稱> : b: Breakpoint的簡寫,設置斷點。兩可以使用“行號”“函數名稱”“執行地址”等方式指定斷點位置。
b 450 //b <行號>
r //Run的簡寫,運行被調試的程序。如果此前沒有下過斷點,則執行完整個程序;如果有斷點,則程序暫停在第一個可用斷點處。
p face //p <變量名稱> : Print的簡寫,顯示指定變量(臨時變量或全局變量)的值。
c //Continue的簡寫,繼續執行被調試程序,直至下一個斷點或程序結束。
i b //查看斷點信息(i-->info,b-->break)
d <斷點標號> //刪除某個斷點
更多gdb調試參見:linux編程之GDB調試 LINUX下GDB調試