0
我試圖從我的rpi(任何linux機器)流式直播視頻到我的筆記本電腦使用websockets(socket.io是準確的)和節點服務器。任何人都曾經這樣做過,並可以分享他們的設置?注:我嘗試了一堆靜止圖像和流媒體,但它似乎是一個非常緊湊的CPU任務,並且還會產生明顯的延遲通過websocket與節點流視頻
我試圖從我的rpi(任何linux機器)流式直播視頻到我的筆記本電腦使用websockets(socket.io是準確的)和節點服務器。任何人都曾經這樣做過,並可以分享他們的設置?注:我嘗試了一堆靜止圖像和流媒體,但它似乎是一個非常緊湊的CPU任務,並且還會產生明顯的延遲通過websocket與節點流視頻
您可以使用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...');
大聲笑,即時通訊實際上是俄語,所以,你鏈接的教程是完美的,謝謝 – nikolaevra
向我們展示一些代碼。你有什麼想要做的? – 2017-08-01 23:23:08
@MarceloAlves我有流媒體劇照的代碼,但我不喜歡這種解決方案。所以我試圖找到一個新的方法來流實際視頻 – nikolaevra