[英]WebRTC video Android and iOS client with H264 decoding capabilities
我們正在尋找可以幫助我們為 Android 和 iOS 開發能夠正確解碼 H264 的客戶端應用程序的人。 該應用程序可以以任何方式開發,只要它可以集成到我們現有的 Android 和 iOS 應用程序中。 主要要求是在 iOS 和 android 設備上呈現 h264 WebRTC 流
我們已經使用 Janus WebRTC 網關和 Streaming 插件開發了信號機制。 使用具有硬件 H264 編碼和 Gstreamer 的標准 UVC 攝像頭將視頻流發送到 Janus,並使用以下管道:
gst-launch-1.0 -v v4l2src device=/dev/video1 ! 視頻/x-h264,配置文件=基線,寬度=1280,高度=720,幀率=30/1! h264解析! rtph264pay 配置間隔=1 pt=126 ! udpsink 主機=xxxx 端口=xxxx
可以使用計算機上的瀏覽器或 Android 上的 Firefox 或 iOS 上的 Safari 來查看流。 但是,在 Android 上使用 Native WebRTC 庫或 ReactNative 不會顯示任何視頻。
這是要約 SDP 的示例:
{
"type":"offer",
"sdp":
"v=0
no=- 1515855541838524 1515855541838524 IN IP4 188.166.53.100
ns=Mountpoint 99
nt=0 0
na=group:BUNDLE video
na=msid-semantic: WMS janus
nm=video 9 RTP/SAVPF 126
nc=IN IP4 188.166.53.100
na=sendonly
na=mid:video
na=rtcp-mux
na=ice-ufrag:Ip+m
na=ice-pwd:nKEVyaCWWbgGSz1FHuohS7
na=ice-options:trickle
na=fingerprint:sha-256 D2:B9:31:8F:DF:24:D8:0E:ED:D2:EF:25:9E:AF:6F:B8:34:AE:53:9C:E6:F3:8F:F2:64:15:FA:E8:7F:53:2D:38
na=setup:actpass
na=rtpmap:126 H264/90000
na=fmtp:126 profile-level-id=42e01f;packetization-mode=1
na=rtcp-fb:126 nack
na=rtcp-fb:126 goog-remb
na=ssrc:309447223 cname:janusvideo
na=ssrc:309447223 msid:janus janusv0
na=ssrc:309447223 mslabel:janus
na=ssrc:309447223 label:janusv0
na=candidate:1 1 udp 2013266431 188.166.53.100 58606 typ host
na=candidate:2 1 udp 2013266431 10.18.0.5 36151 typ host
na=candidate:3 1 udp 2013266431 10.0.20.1 34608 typ host
na=end-of-candidates
n"
}
可以在此處找到 ReactNative 代碼: https : //github.com/Nefalas/VideoWebRTC我已經在三星 Galaxy S7 上對其進行了測試,但沒有呈現視頻,但我收到以下消息:
無法識別的視頻/avc 配置文件 2130706433
任何幫助將不勝感激! 如果您能夠快速找到解決方案,我們願意為您的努力提供報酬。
Firefox 在 Android 上附帶了軟件 H.264 編解碼器,而 Chrome 和 Android 的本機 WebRTC 庫沒有。 這就是為什么 Firefox 可以解碼您的流,而本機庫或 React Native(我認為它依賴於 Chrome 引擎)不能。
Chrome 和本機 WebRTC 庫確實支持 Android 上的某些硬件 H.264 編碼器,但您的特定設備似乎沒有。 不幸的是,在這種情況下,沒有適用於 Chrome 或原生 WebRTC 的軟件編解碼器。
編輯: Galaxy S7 應該有 WebRTC 支持的硬件 H.264 解碼器,所以問題可能與原始 H.264 流的參數有關。 盡管如此,當設備上沒有支持的硬件 H.264 編碼器/解碼器時,本機 WebRTC 庫以及 Chrome 將無法呈現流。
我認為您的問題是由 Chrome for Android 中的錯誤引起的,涉及 H.264
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.