我正在尝试使用ffmpeg和janus-gateway在本地网络中流式传输视频。我将h264视频直接传输到ffmpeg中,并从那里将其作为RTP流传输到janus。然后Janus会做剩下的事情。
问题是,当我尝试使用janus中包含的streamingtest html页面打开流时,我可以选择流,但我永远看不到任何东西。在我启动janus的控制台上,它抛出了多个错误,以"SDP missing mandatory information“开头。
显然SDP缺少一些授权,如下所示:
a=ice-ufrag:?
a=ice-pwd:?我猜这是演示页面上的javascript的问题。
当我加载页面并单击start按钮时,它会按预期执行所有操作,并且还没有出现任何错误。它用我的流填充可用流的列表,当我在firefox中使用网络分析器时,我可以看到janus正在向页面的javascript发送正确的SDP。该SDP包含关于流的正确信息以及ice授权信息。
然后,当我选择流并单击start按钮时,javascript向janus发送了一个包含SDP的请求,但此SDP与之前收到的完全不同,并且确实缺少ice授权信息。它也有一堆完全错误的信息。例如,此SDP用于VP8视频,而我的流以及之前收到的正确SDP实际上是H264视频。
有人可以发布一个简单的例子来接收来自janus的单个webrtc视频流吗?
我已经寻找一个例子有一段时间了,但除了对我不起作用的演示和完全不相关的webrtc视频会议或聊天室例子之外,我没有发现任何对我没有任何用处的例子。
我所要做的就是获得一个从树莓派到本地托管的html网页的H264视频流,具有尽可能少的延迟,甚至是零延迟。
我试过使用hls,但它的延迟太大,有人建议使用webrtc……
发布于 2020-11-07 20:06:55
我也有类似的问题
经过“一天的战斗”--我在我的janus-webrtc安装UserLAnd (https://github.com/virtimus/tinyHomeServer)上用reolink网络摄像头工作:
在reolink web admin (设置/录制/编码)中:
janus.plugin.streaming.jcfg:
reolink-rtp: {
type = "rtp"
id = 999
description = "Reolink RTP"
audio = true
audioport = 5051
audiopt = 111
audiortpmap = "opus/48000/2"
video = true
videoport = 5052
videopt = 96
videortpmap = "H264/90000"
videofmtp = "profile-level-id=42e028;packetization-mode=1"
#videofmtp = "profile-level-id=420032;packetization-mode=1"
} ffmpeg命令(双路正向视频/音频):
ffmpeg -i 'rtsp://admin:[password]@192.168.2.148:554/h264Preview_01_main' -an -c:v copy -flags global_header -bsf dump_extra -f rtp rtp://localhost:5052 -vn -codec:a libopus -f rtp rtp://localhost:5051发布于 2020-06-14 03:04:03
不要紧。
我现在切换到对视频流使用uv4l,并托管显示视频流的实际网页。
这在很大程度上是开箱即用,并且相对容易实现。
https://stackoverflow.com/questions/62344842
复制相似问题