Chromium工程ffmpeg生效及增加多媒体格式支持类型的方法

利用Chromium工程编译生成的程序播放网页audio或video时,可能会遇到如下两种情况:

1、编译生成的content_shell程序,无法播放网页音视频。

2、编译生成Chrome或chromium浏览器时,虽然网页音视频可以播放,但经常遇到某些格式无法打开,如mp4音视频或mpeg类型的音频文件。

问题1的原因:

多媒体文件播放所依赖的ffmpeg受编译时指定的branding变量控制。参见third_party\ffmpeg\ffmpeg.gyp:

Chromium工程ffmpeg生效及增加多媒体格式支持类型的方法_第1张图片

'platform_config_root': 'chromium/config/<(ffmpeg_branding)/<(os_config)/<(ffmpeg_config)',

根据上述信息可知,ffmpeg的平台配置相关信息存在于third_party\ffmpeg\chromium\config目录下,可见

Chromium工程ffmpeg生效及增加多媒体格式支持类型的方法_第2张图片

只有指定为Chrome、Chromium、ChromeOS、ChromiumOS这四种类型时,才会生效。

即为什么content_shell无法播放音视频。

【解决方法】

1、在build/common.gypi中指定branding变量为Chrome(或其它可支持的值)。或者,

2、在third_party\ffmpeg\ffmpeg.gyp中将ffmpeg_branding变量指定为Chrome(或其它可支持的值)

Chromium工程ffmpeg生效及增加多媒体格式支持类型的方法_第3张图片

 

问题2的原因是:

Chromium工程多媒体解码器受proprietary_codecs变量控制。参见media/media.gyp:

Chromium工程ffmpeg生效及增加多媒体格式支持类型的方法_第4张图片

由此可见,默认情况下部分类型解码器并未参与编译,因此导致相应多媒体文件无法播放。

【解决方法】

在build/common.gypi中增加proprietary_codecs变量定义,并指定为1。例如:

Chromium工程ffmpeg生效及增加多媒体格式支持类型的方法_第5张图片

经过上述两种定制修改即可使Chromium工程生成程序更好地支持多媒体格式。

 

你可能感兴趣的:(Chromium工程ffmpeg生效及增加多媒体格式支持类型的方法)