為了深入瞭解ffmpeg的工作原理,需要閱讀原始碼,除錯原始碼。在Windows下除錯ffmpeg原始碼,一種方法是在MinGW+Msys環境下,利用GDB進行除錯;另一種是藉助Eclipse進除錯,其本質也是呼叫GDB進行除錯,只是提供了良好介面,便於使用者互動。本文主要記錄利用Eclipse除錯FFmpeg原始碼的過程。
1.Eclipse安裝
Eclipse安裝過程可參考網上其他資料,安裝完Eclipse後,需要配置C/C++開發環境,參考:http://shinepaopao.iteye.com/blog/1926445。
2.建立ffmpeg工程
Eclipse-->File-->New-->Project-->C project,選擇Makefile project,選擇MinGW GCC,如下圖所示。
配置MinGW GCC的環境變數,主要配置PATH、C_INCLUDE_PATH、LD_LIBRARY_PATH,如下圖所示。
配置ffmpeg原始碼,配置參考:http://www.cnblogs.com/dwdxdy/p/3625766.html,只執行./configure ...。
3.編譯ffmpeg工程
拷貝配置好程式碼到ffmpeg-debug工程目錄下,然後按F5更新工程,最後編譯工程,Project-->Build All,編譯過程如下圖所示。
4.除錯ffmpeg原始碼
選擇除錯的執行程式ffmpeg_g.exe或ffplay_g.exe,設定輸入引數,開始除錯,如下圖所示。
在除錯之前,需要把生成動態連結庫檔案拷貝到工程目錄,如avcodec-54.dll,avdevice-54.dll,avfilter-53.dll,avformat-54.dll,avutil-52.dll,postproc-52.dll,swresample-0.dll。另外,ffmpeg所依賴的動態連結庫也需要拷貝到工程目錄,如libx264-142.dll,SDL.dll。
除錯的結果如下圖所示: