我有一个使用UDP协议的视频流,可通过rtp://ipadd:port
或udp://@:port
访问。我完全无法控制服务器,因此我无法通过WebSocket更改它来为流提供服务,也不能将其转码为兼容的格式。
我想在Electron应用程序中显示流,但是我从Google搜索中找到的来源都告诉我,我想要完成的任务要求我使用像webchimera.js
这样的东西来组合一个不受欢迎的hacky解决方案,例如。
我已尝试按照this answer,在<video>
代码中删除网址,但Electron表示无法识别udp
和rtp
网址。我也尝试require('child_process').exec
静态构建ffplay
,它可以工作,但它在一个单独的窗口上显示流,这不是我想要的。 ActiveX,NPAPI和其他插件解决方案不是一种选择,因为Electron不支持它们。
我运气不好,还是有解决方案我还没有来过?
答案 0 :(得分:2)
通过查看其他人代码的页面和页面来计算出来。
显然我对WebSockets的初步了解是不正确的 - 在我的情况下,我不需要服务器端更改来使用WebSockets。
我必须使用ffmpeg
Node.js包装器将电子流中的流转码为MPEG2,然后将视频发送到Express服务器实例,该服务器实例然后在由{{呈现的静态网页中提供视频服务。 1}}。然后,静态网页在主电子应用页面中显示为IFrame。
生成的流具有比使用jsmpeg
播放原始UDP流时所看到的更多的可视化工件,这种方法可能会引入大量延迟,但它足以满足我的需求。