之前編譯過webrtc和chromium, 由於長時間沒用,被我刪除了,
最近在最新版本的google瀏覽器上遇到了播放器兼容性問題,老版本的google瀏覽器是沒問題,IE, 火狐瀏覽器也沒問題,
通過看google瀏覽器的打印日志和chromium媒體層的代碼,排查下來,是ffmpeg調用解碼器解碼AAC失敗了,有個別數據解碼失敗,我們是使用的libfdk,
懷疑是AAC數據打包進MP4的時候某些AAC數據被臟掉了,基本上就定位到這里,這兩天看了下chromium的代碼,又有點想搞下這個東西,
感覺新版的瀏覽器兼容性不太好,對數據正確的敏感性比較強了,於是又編譯下chromium,也是為了斷點調試進去,准確定位下,分析具體原因,這次用VS2019編譯最新版本的瀏覽器,
后面再編譯個帶有調試符號的ffmpeg庫。
1、工具
下載depot_tools,並配置環境變量,PATH下添加depot_tools的解壓路徑E:\src\depot_tools
2、設置代理
控制台管理員權限執行
git config --global http.proxy 127.0.0.1:1080
git config --global https.proxy 127.0.0.1:1080
netsh winhttp set proxy 127.0.0.1:1080
set HTTP_PROXY=127.0.0.1:1080
set HTTPS_PROXY=127.0.0.1:1080
3、cmd運行gclient
4、配置VS的版本,環境變量設置
DEPOT_TOOLS_WIN_TOOLCHAIN = 0
GYP_MSVS_VERSION = 2019
GYP_MSVS_OVERRIDE_PATH = D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
5、 下載源碼
最新版本的比較大,15G,比兩年前又多了很多。
命令行執行fetch chromium
中間斷了的話,可以通過gclient sync來同步代碼,我下載的時候沒有斷過。
6、生成vs2019解決方案 cd chromium 源碼目錄下 gn gen --ide=vs out\Default
7、編譯生成可執行文件 執行 ninja -C out/Default chrome 編譯,也可以在vs2019里面打開all.sln build編譯, 時間比較久,10個小時才完成。
8、單步調試,分析相關google瀏覽器行為,這里我是確認我mp4播放的兼容性問題