我有一个软件在我的网络中的节点上运行,生成通过UDP / IP承载的RTP流。这些流包含流数据,但不包含任何标准音频/视频格式(如H.264等)。我想有一个简单的Web应用程序,可以挂钩到这些流,适当地解码有效负载,并显示其内容。据我所知,无法从浏览器直接访问UDP套接字。
有没有办法使用JavaScript / HTML5读取任意RTP流(即,给定UDP端口号来接收数据)?发送流的软件没有实现WebRTC指定的任何信令协议,我无法更改它。我想能够获得RTP数据包内容;我可以毫无问题地处理解码和显示。
答案 0 :(得分:2)
据我所知,WebRTC API集合中没有任何内容可以让您这样做。正如您所指出的那样,在浏览器中处理UDP数据包也没有直接的编程方式。
您可以使用Canvas和Web Audio API有效地播放任意视频,但这需要大量的CPU。 MediaSource扩展可用于通过浏览器的编解码器运行数据,但您仍然必须以某种方式获取数据。
我认为在你的情况下,最好的解决方案是在服务器端建立这些连接,并使用类似FFmpeg的东西在浏览器可以处理的编解码器和容器中输出流,并简单地在视频元素中播放。然后,您可以连接到您想要的任何内容。我已经使用Node.js完成了类似的项目,这样就可以很容易地将流传输到浏览器,然后传输到浏览器。
答案 1 :(得分:0)
另一种替代方法是使用WASM并为流创建自己的播放器。在2014年以来,这是近几年来令人难以置信的技术。另外,正如@Brad所说,WebRTC甚至在2020年都无法满足您的需求。