2017-02-26 49 views
0

我有一个使用UDP协议的视频流,可以通过rtp://ipadd:portudp://@:port访问。我完全无法控制服务器,因此我无法将其更改为通过WebSocket提供流,或将其转码为兼容的格式。如何在电子中显示RTSP流?

我想在Electron应用程序中显示流,但是我从Google搜索中找到的所有源都告诉我,我希望完成的操作需要我使用诸如webchimera.js之类的东西来构建一个令人讨厌的解决方案,例如。

我曾尝试下探的URL在<video>标签按this answer,但电子表示,udprtp URL方案无法识别。我也试过require('child_process').exec,它的工作原理是ffplay的静态构建,但它在一个单独的窗口上显示流,这不是我想要的。 ActiveX,NPAPI和其他插件解决方案不是一种选择,因为Electron不支持它们。

我运气不好,还是有没有解决办法,我还没有来过呢?

回答

2

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

显然,我的WebSockets的初步认识是不正确的 - 我不需要一个服务器端的变化,我的情况使用WebSockets。

我不得不使用Node.js的ffmpeg包装,其中发送视频到一个Express服务器实例,然后通过供应呈现jsmpeg一个静态网页中的视频,从内电子转码流为MPEG2。然后,静态网页将显示为主Electron应用程序页面内的IFrame。

由此产生的流具有比用ffplay播放原始UDP流时所看到的更多的视觉伪影,并且这种方法可能会引入很多延迟,但它对我的需求足够好。