[英]Why WebRTC only support H264 in Chrome but not in native application with some devices
我使用官方示例在Android Chrome中創建商品SDP,我們可以找到a=rtpmap:100 H264/90000
,這意味着它可以支持H264。
但是,如果我構建AppRTC(Android官方示例)並使用官方預構建庫版本1.0.25821,請調用createOffer,然后在SdpObserver::onCreateSuccess
接收SDP,則SDP 不包含H264。
我的測試設備是Oppo R15(帶有MTK Helio P60,Android 8.1)。
那么,為什么WebRTC僅在Chrome中支持H264,而在某些Android設備上不支持本機應用程序?
Chrome版本使用openh264,而常規** WebRTC則不使用 。 我通常所說的是,您可能會使用chrome版本的h.264編碼器軟件,但我不建議這樣做。
在Android WebRTC上 ,僅在以下情況下支持H.264
在Java級別,您可以在HardwareVideoEncoderFactory.java
中看到該代碼,它在isHardwareSupportedInCurrentSdkH264
函數中檢查QCOM和EXYNOS設備。
有趣的是,如果您使用的是本機代碼,則甚至不支持QCOM和EXYNOS硬件編碼器(Webrtc問題跟蹤器中已記錄了錯誤)。 這是由於HW編碼代碼與JNI代碼的緊密集成-絕對不是一個好的模塊化代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.