簡體   English   中英

將RTSP從帶有節點媒體服務器的IP凸輪重新流式傳輸到http / ws並使用html顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM