gpt4 book ai didi

javascript - 使用 Node Media Server 将 IP cam 的 RTSP 重新流式传输到 http/ws 并以 html 形式显示

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:40 27 4
gpt4 key购买 nike

目标

我的目标是在标准 HTML 页面(html5 + css3 + vanilla javascript,没有魔法 = 无插件)上显示我的 IP 摄像头的 RTSP 输出流。 HTML 页面应托管在我的 Raspberry Pi 上的 NGINX Web 服务器中。

我的装备

我使用的设置是带有 Rasbian OS、Node.js 和 Node-Media-Server package 的 Raspberry Pi 3 B+ ,NGINX(但我不相信 NGINX 对我的问题很重要?无论如何,我还没有为其中的 Node 媒体服务器进行任何配置。)一个 IP 摄像头和一个浏览器。 enter image description here

我尝试过的

readme 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 错误,但我得到了这个:
获取http://localhost:8000/live/uterum.flv net::ERR_EMPTY_RESPONSE

这是 Node 终端的屏幕截图: enter image description here红色区域说明了当我尝试向 http://localhost:8000/live/uterum.flv 发出请求时的输出。

我想我尝试到达错误的端点,但哪个是正确的?文档指出http://localhost:8000/live/STREAM_NAME.flv。在我的例子中,“STREAM_NAME”是什么?

最佳答案

正如您从配置中看到的,您的 RTSP 流被推送到“cctv”应用程序。

所以你的播放地址应该是:

rtmp://localhost/cctv/uterum

http://localhost:8000/cctv/uterum.flv

关于javascript - 使用 Node Media Server 将 IP cam 的 RTSP 重新流式传输到 http/ws 并以 html 形式显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53934702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com