2017-02-26 146 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流時所看到的更多的視覺僞影,並且這種方法可能會引入很多延遲,但它對我的需求足夠好。