[英]Re-stream RTSP from IP cam with Node Media Server to http/ws and display it with html
我的目標是在標准HTML頁面(html5 + css3 +香草javascript,無魔法=無插件)上顯示IP cam的RTSP輸出流。 HTML頁面應托管在我的Raspberry Pi上的NGINX Web服務器中。
我使用的設置是具有Rasbian OS,Node.js和Node-Media-Server軟件包 NGINX的Raspberry Pi 3 B +( 但是我不認為NGINX對於我的問題很重要?我沒有為Node進行任何配置-Media-Server仍在其中。 )IP攝像機和瀏覽器。
Node-Media-Server-project中的自述文件很詳細,並且有一個教程幾乎完全描述了我想做什么。 具體來說,有一個有關如何訪問實時流的標記示例:
<html>
<head>
<title>Camera</title>
</head>
<body>
<script src="https://cdn.bootcss.com/flv.js/1.4.0/flv.min.js"></script>
<video id="videoElement"></video>
<script>
if (flvjs.isSupported()) {
var videoElement = document.getElementById('videoElement');
var flvPlayer = flvjs.createPlayer({
type: 'flv',
url: 'http://localhost:8000/live/uterum.flv'
});
flvPlayer.attachMediaElement(videoElement);
flvPlayer.load();
flvPlayer.play();
}
</script>
</body>
</html>
這就是我在Raspberry PI上啟動媒體服務器kommandoran-mediaserver.js
:
const { NodeMediaServer } = require('node-media-server');
const config = {
logType: 3, // 3 - Log everything (debug)
rtmp: {
port: 1935,
chunk_size: 60000,
gop_cache: true,
ping: 60,
ping_timeout: 30
},
http: {
port: 8000,
allow_origin: '*'
},
relay: {
ffmpeg: '/usr/local/bin/ffmpeg',
tasks: [
{
app: 'cctv',
mode: 'static',
edge: 'rtsp://<USER>:<PASSWORD>@10.0.0.111/live1.sdp',
name: 'uterum',
rtsp_transport : 'tcp' //['udp', 'tcp', 'udp_multicast', 'http']
}
]
}
};
var nms = new NodeMediaServer(config)
nms.run();
當我嘗試通過Raspberry Pi(即本地主機)上的Chromium瀏覽器查看camera.html
(請參見上面的標記)時,什么都沒有顯示。 在Chromium調試檢查器中,沒有javascript錯誤,但是我得到了:
GET http://localhost:8000/live/uterum.flv net::ERR_EMPTY_RESPONSE
這是節點終端的屏幕截圖: 當我嘗試向
http://localhost:8000/live/uterum.flv
發出請求時,紅色區域顯示了輸出。
我想我嘗試到達錯誤的終點,但是哪個正確? 該文檔指出http://localhost:8000/live/STREAM_NAME.flv
。 在我的情況下,“ STREAM_NAME
”是什么?
從配置中可以看到,您的RTSP流已推送到“ cctv”應用程序。
因此,您的播放地址應為:
RTMP://本地主機/ CCTV / uterum
要么
HTTP://本地主機:8000 / CCTV / uterum.flv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.