![](/img/trans.png)
[英]How to decode the H.264 video stream received from parcelfiledescriptor
[英]How to get a video stream encoded in H.264 to play in a “WebView”?
我有一个带有html5视频播放器的远程托管网页,该播放器可流式传输H.264编码的视频。 我需要将此页面(而不是在浏览器中外部打开)嵌入到我的Android活动中。 最新的Android系统Webview(版本63.0)不支持H.264编码,也不支持Crosswalk的Webview(与我的硬件体系结构匹配)。 我有什么选择?
更新的答案
经过一番挖掘后,似乎Android中的Webview确实确实存在支持h.264的问题。 这是因为它基于Chromium,默认情况下不包含h.264支持(涉及专利等的悠久历史)。
目前,最常见的建议似乎是构建自己的Chromium Web视图,并且构建选项/标志包括h.264。
这是Chrome的一个已知限制,在撰写本文时,这里列出了一个未解决的错误:
Chrome和Chromium之间的差异在其他地方已得到充分证明,但是在这种情况下,关键点之一是Chromium是完全开源的,因此避免包含专有组件,这就是为什么不包括许可的H.264编解码器的原因。
原始答案和更正
[ 除非有什么变化,否则标准的Android网络视图应支持 ] Android设备和Android chrome浏览器通常支持h.264视频(只要配置文件和设置在设备支持的设置之内-最初使用基准配置文件进行测试是一种安全的开始方式)。 但是,基于Chromium的Android Webview在撰写本文时不支持h.264。
可在此处获得默认的受支持视频格式集: https : //developer.android.com/guide/topics/media/media-formats.html#video-formats
Android Web视图中存在已知/报告的WebRTC和h.264问题 但这是与webRTC相关的共识,即AFAIK -请参阅: https : //groups.google.com/a/chromium.org/forum/#!topic / android-webview -dev / hVZdHK6MKfI
导致H.264视频流在Android版Chrome上无法正常工作(通常是混杂的)有两个不同的问题:
1)Android版Chrome仅有H.264的硬件实现,而没有软件实现。 目前,H.264仅适用于具有Qualcomm(奇巧和更高版本)或Samsung Exynos(棒棒糖和更高版本)处理器的设备。
2)Android版Chrome中存在与H.264相关的错误
错误消息如下:
Unhandled Promise Rejection: OperationError (DOM Exception 34):
Failed to set remote offer sdp: Session error code: ERROR_CONTENT.
Session error description: Failed to set remote video description send parameters..
Chrome Android不提供/回答H.264受限基准配置文件
此问题可能会在Chrome Android M65中解决。 请参阅此以获得更多信息 。
由于您具有相同的错误消息(在其他答案下以注释的形式看到此消息),因此您的问题与此错误有关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.