我一直在从事一个项目,该项目允许在网络上查看IP摄像机。 然后,我被要求在网络上显示同轴摄像机。 因此,我决定使用DVR。 首先,我将DVR连接到路由器。 然后,DVR接收同轴摄像机的输入,并且DVR通过路由器传输信息。 通过此过程,我确认rtsp可以正常工作。 但这在网络上不起作用。
我当前正在使用Nginx Web服务器。 并使用ffmpeg将rtsp信息发送到我的Nginx Web服务器上的rtmp。 然后,Web服务器会将其转换为hls(index.m3u8)文件。 我认为在此过程中出现了问题。
# RTMP Config
rtmp {
server {
listen 1935; # Listen on standard RTMP port
chunk_size 4000;
application live{
live on;
deny play all;
push rtmp://localhost/play;
on_publish http://localhost:3001/api/on-live-auth;
on_publish_done http://localhost:3001/api/on-live-done;
}
application play {
live on;
# Turn on HLS
hls on;
hls_nested on;
hls_fragment_naming system;
hls_path /home/banana/nginx/live;
hls_fragment 3;
hls_playlist_length 60;
# disable consuming the stream from nginx as rtmp
#deny play all;
}
}
}
# End RTMP Config
ffmpeg -i rtsp://<cameraIp> -c:v copy -rtsp_transport tcp -preset veryfast -c:a copy -fflags +igndts+genpts -f flv rtmp://localhost/live/<cameraId>
IP摄像机RTSP地址= admin:qwerty1。@ ssnet4.iptime.org:555 / trackID = 3
DVR RTSP地址= admin:hrd-442s@hwakptz.iptime.org:4524/1
分别在vlc Player中运行上述rtsp地址
成功:IP摄像机RTSP地址,DVR RTSP地址
IP摄像机HLS地址= http://168.131.150.80:4567/live/5c28ae28c6cd0c6c329e1ebc/index.m3u8
DVR HLS地址= http://168.131.150.80:4567/live/5c8746c9d7d74a600edf2460/index.m3u8
分别在vlc Player中运行上述rtsp地址
成功:IP摄像机HLS地址
失败:DVR HLS地址
这与React Player上的结果相同。
const streamUrl = `http://168.131.150.80:4567/live/<cameraId>/index.m3u8`;
<ReactPlayer
onClick={this._onClickFullscreen}
width={"100%"}
height={"100%"}
url={streamUrl}
playing={true}
controls={false}
muted={true}
/>
答案 0 :(得分:1)
不。没有安装插件就没有理由在Web浏览器中看到RTSP。
Web浏览器唯一支持的协议是http,web socket和webrtx。