如何在Electron中显示RTSP流?

时间:2017-02-26 11:41:25

标签: node.js html5 udp electron rtsp

我有一个使用UDP协议的视频流,可通过rtp://ipadd:portudp://@:port访问。我完全无法控制服务器,因此我无法通过WebSocket更改它来为流提供服务,也不能将其转码为兼容的格式。

我想在Electron应用程序中显示流,但是我从Google搜索中找到的来源都告诉我,我想要完成的任务要求我使用像webchimera.js这样的东西来组合一个不受欢迎的hacky解决方案,例如。

我已尝试按照this answer,<video>代码中删除网址,但Electron表示无法识别udprtp网址。我也尝试require('child_process').exec静态构建ffplay,它可以工作,但它在一个单独的窗口上显示流,这不是我想要的。 ActiveX,NPAPI和其他插件解决方案不是一种选择,因为Electron不支持它们。

我运气不好,还是有解决方案我还没有来过?

1 个答案:

答案 0 :(得分:2)

通过查看其他人代码的页面和页面来计算出来。

显然我对WebSockets的初步了解是不正确的 - 在我的情况下,我不需要服务器端更改来使用WebSockets。

我必须使用ffmpeg Node.js包装器将电子流中的流转码为MPEG2,然后将视频发送到Express服务器实例,该服务器实例然后在由{{呈现的静态网页中提供视频服务。 1}}。然后,静态网页在主电子应用页面中显示为IFrame。

生成的流具有比使用jsmpeg播放原始UDP流时所看到的更多的可视化工件,这种方法可能会引入大量延迟,但它足以满足我的需求。