【发布时间】:2018-06-22 21:26:09
【问题描述】:
我们正在寻找可以帮助我们开发能够正确解码 H264 的 Android 和 iOS 客户端应用程序的人。该应用程序可以以任何方式开发,只要它可以集成到我们现有的 Android 和 iOS 应用程序中。主要要求是在 iOS 和 android 设备上渲染一个 h264 WebRTC 流
我们已经使用 Janus WebRTC Gateway 和 Streaming 插件开发了信号机制。视频流使用具有硬件 H264 编码的标准 UVC 相机和具有以下管道的 Gstreamer 发送到 Janus:
gst-launch-1.0 -v v4l2src device=/dev/video1 !视频/x-h264,配置文件=基线,宽度=1280,高度=720,帧率=30/1! h264解析! rtph264pay 配置间隔=1 pt=126 ! udpsink 主机=x.x.x.x 端口=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 无法识别
任何帮助将不胜感激!如果您能够快速找到解决方案,我们随时准备回报您的努力。
【问题讨论】:
标签: android ios webrtc h.264 decoder