之前编译过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播放的兼容性问题