HTML5引进了新的标签,可以直接播放音频和视频。但是不同浏览器对音频视频的支持格式有所不同。今天合肥h5培训在本文给大家详细介绍HTML5支持更多音视频格式。
比如Chromium浏览器不支持MP3、MP4格式,而Chrome却支持。根本原因是浏览器内核所依赖的FFmpeg编译开关不一样导致的的。
在Chromium代码工程的生成gn工程的时候加上以上两个值:
ffmpeg_branding="Chrome"
proprietary_codecs=true
就可以让Chromium编译出来的浏览器像Chrome一样支持MP3、MP4格式格式了。
proprietary_codecs的作用是开启代码中的USE_PROPRIETARY_CODECS宏,使Chromium的代码支持更多的音视频解码格式。ffmpeg_branding则是作用于Chromium所依赖的第三方ffmpeg工程的代码,使之编译相关的支持代码。
Chromium的音视频解码是调用的第三方库ffmpeg。ffmpeg几乎支持所有的音视频格式,那么Chromium理论上也是可以支持所有的音视频格式的能力。实际上由于ffmpeg这个库很大,为了优化浏览器的体积,Chromium只编译链接了它所需要支持格式的相关代码,只占整个ffmpeg很小的一部分。
我以3GP格式为例,介绍如何让Chromium内核的video标签支持更多视频格式。
我们先编写一个测试3gp格式视频的html文件:
然后在MimeUtil::AddSupportedMedi