2017-08-01 119 views
0

我試圖從我的rpi(任何linux機器)流式直播視頻到我的筆記本電腦使用websockets(socket.io是準確的)和節點服務器。任何人都曾經這樣做過,並可以分享他們的設置?注:我嘗試了一堆靜止圖像和流媒體,但它似乎是一個非常緊湊的CPU任務,並且還會產生明顯的延遲通過websocket與節點流視頻

+1

向我們展示一些代碼。你有什麼想要做的? – 2017-08-01 23:23:08

+0

@MarceloAlves我有流媒體劇照的代碼,但我不喜歡這種解決方案。所以我試圖找到一個新的方法來流實際視頻 – nikolaevra

回答

1

您可以使用ffmpeg將視頻流解碼爲hls -format。 該解決方案在真實世界和顯示視頻之間有一點延遲(約3-10秒)。見細節here(俄語)。

// index.html 
<!DOCTYPE html> 
<html> 
<head> 
    <meta HTTP-EQUIV="Expires" CONTENT="0"> 
    <meta HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
    <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> 
    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate"> 
    <meta http-equiv="Cache-Control" content="private"> 
    <script src="https://cdn.jsdelivr.net/hls.js/latest/hls.min.js"></script> 
</head> 

<body> 
    <video id="video"></video> 
    <script> 
    if(!Hls.isSupported()) 
     return console.error('HSL is not supported'); 

    var video = document.getElementById('video'); 
    var hls = new Hls(); 
    hls.loadSource('index1.m3u8'); 
    hls.attachMedia(video); 
    hls.on(Hls.Events.MANIFEST_PARSED, function() { 
     video.play(); 
    }); 
    </script> 
</body> 
</html> 

// ffmpeg example (I use rstp stream) 
ffmpeg -rtsp_transport tcp -loglevel error -hwaccel auto -i rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k1.mov -ar 44100 -acodec aac -ac 1 -strict -2 -crf 18 -c:v copy -preset ultrafast -flags -global_header -fflags flush_packets -tune zerolatency -hls_time 1 -hls_list_size 3 -hls_wrap 4 -hls_flags delete_segments -start_number 0 index1.m3u8 

// http server (you can use any other) 
var http = require('http'); 
var fs = require('fs'); 
var static = require('node-static'); 
var file = new static.Server('.', {cache: false }); 

http.createServer(function(req, res) { 
    file.serve(req, res); 
}).listen(1111); 

console.log('Server running on 127.0.0.1:1111...'); 
+0

大聲笑,即時通訊實際上是俄語,所以,你鏈接的教程是完美的,謝謝 – nikolaevra