之前编译过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来同步代码,我下载的时候没有断过。

VS2019编译 当前最新版chromium-LMLPHP

6、生成vs2019解决方案 cd chromium 源码目录下 gn gen --ide=vs out\Default

7、编译生成可执行文件 执行 ninja -C out/Default chrome 编译,也可以在vs2019里面打开all.sln build编译, 时间比较久,10个小时才完成。

VS2019编译 当前最新版chromium-LMLPHP

VS2019编译 当前最新版chromium-LMLPHP

8、单步调试,分析相关google浏览器行为,这里我是确认我mp4播放的兼容性问题

05-28 23:45