浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

手机浏览器网页视频播放不了是什么原因,浏览器网页视频无法播放 。小编来告诉你更多相关信息 。

浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
优酷黑屏
尝试本地播放一个MP4,也是黑屏 。
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
播MP4黑屏
尝试进入youtube,看看google自家的视频能否播放 。果然,Google自家的视频网站播放是OK的,尝试播放一个VP9编码的webm视频,播放也是OK的 。很显然,是编译的浏览器默认不支持MP4封装h264编码的视频,默认只支持google自家的web封装的VP9编码视频 。
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
youtube视频播放OK
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
VP9编码地webm视频播放正常
现在的目标是让编译的chrome.exe 支持MP4播放 。
分析过程:
网上找了一番,很多人说chromium编译默认不编译ffmpeg,所以播放不了MP4视频 。这里整理网友几种解决方案:
1) 有人建议将ffmpeg编译对应编码库(一堆的dll库)放到chrome.exe目录下
这里有难处:ffmpeg版本如何和chrome.exe对应起来,自己在Windows上编译个ffmpeg也是很费劲 。
2) 有人建议将官方发布的chrome对应的ffmpeg的dll拷贝过去,但实际上近段时间官方的chrome安装包里面根本没有ffmpeg相关的dll(商业版的chrome压根就有没有用过ffmpeg还是将ffmpeg静态编译进其他dll,我们无法确定)
新发现:
发现一个编译参数可以将chrome以组件形式编译(即is_component_build = true),默认编译第三方库,第三方库都是静态编译到其他dll中去 。打开这个开关,发现编译后有一个叫ffmpeg.dll,但这个ffmpeg.dll才3M,不是我们常见的ffmpeg官方编译的一堆dll 。这个dll到底是真正包含了ffmpeg的dll,还是只是对ffmpeg的一个接口适配层呢?我们查看ffmpeg.dll导出的符号表(windows上称为导出表),发现ffmpeg对外的接口,都在这个符号表中 。很显然ffmpeg默认是已经编译好了 。只是chrome可能某些开关没有打开,导致chrome无法真正将ffmpeg的API用起来 。
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
ffmpeg.dll导出的符号表
问题解决:
终于找到这个开关 。编译前配置生成工程增加proprietary_codecs = true ffmpeg_branding = “Chrome\”这2个宏即可,再次编译生成chrome.exe,播放MP4,播放youku等视频网站都OK了 。
【浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因】
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
浏览器网页视频无法播放 手机浏览器网页视频播放不了是什么原因

文章插图
h264编码的MP4播放OK
更多更详细信息请关注公众号:AV_Chat

    推荐阅读