我正在使用Janus将来自 RTSP/H.264 摄像机(QD800)的视频流通过 WebRTC 传递到浏览器。
我在这里说的是哪些浏览器?以下是详细信息:
- Firefox(Linux,64 位,版本 59.0.2)
- Firefox(Windows7,64 位,版本 59.0.2)
- Chrome(Linux,64 位,版本 49.0.2623.87)
- Chrome(Windows7,64 位,版本 66.0.3359.139)
最初,相机在与客户端(Janus)协商时将 420029 作为 SDP 中的配置文件级别 ID 发送。
但是,Firefox 无法播放此版本(420029 表示级别 4.1,FF 理论上只能播放 3.1,但两者都是 Constrained Baseline Profile)。
现在我的 Janus 流插件配置如下所示:
[rtsp-test]
type = rtsp
id = 4
description = RTSP
url = rtsp://admin:admin@a.b.c.d:554/11
audio = no
video = yes
videopt = 96
videortpmap = H264/90000
videofmtp = profile-level-id=42e01f\;packetization-mode=1\;sprop-parameter-sets=Z00AKpWoHgCJ+VA=,aO48gA==
secret = adminpwd
如您所见,它覆盖了 videofmtp 配置中的配置文件级别 ID。
这工作正常,我可以在两个操作系统上的 FF 和 Chrome 中的 WebRTC 控制台中检查新的配置文件级别 ID。
我正在使用为 Janus (demos/streamingtest.html) 提供的默认演示 HTML。
在这两个浏览器中都没有显示任何视频。仅显示白框。
当我点击播放时:
- 在 Chrome 中:“Stream Started 405 kbits/sec”。白色的视频屏幕,微调器正在旋转。
- 在 Firefox 中:“Stream Started 0x0 407 kbits/sec”。白色视频屏幕,没有微调器,没有视频。
PS1.: 我的相机工作正常,VLC 可以直接播放 RTSP 流。
PS2.: FF 和 Chrome 实际上都在接收流但无法解码。
PS3.:我还尝试通过 FFMPEG 传递整个 RTSP:
ffmpeg -i 'rtsp://ip-camera' -an -codec copy -f rtp 'rtp://127.0.0.1:20000'
然后使用Janus的RTP样本,但我得到了和上面一样的结果。请参阅FFMPEG 的输出。
在 Janus 帮助组中,自从流通过 Janus 以来,我已经尽可能地走得更远,这不再是他们的能力。
参考: