如何通过 nginx 将 rtsp ip 摄像头流式传输到网站

问题描述 投票:0回答:2

我尝试在网站上流式传输我的 RTSP-IP-Camera。我使用 Nginx 网络服务器。我的 html 代码来源是:

  <source src=rtmp://ip-address:1935/live/ type="application/x-mpegURL" />

要转换 rtsp 流,我使用以下 ffmpeg 代码:

ffmpeg -rtsp_transport tcp -i rtsp://user:password@ip-camera:554/h264Preview_01_main -vcodec copy -acodec copy -f mp4 -y rtmp://ip-address:1935/live/

我收到错误消息“复用器不支持不可查找的输出 无法为输出文件 #0 写入标头(编解码器参数不正确?):参数无效”

我还尝试将 rtsp-camera 转换为 mp4 文件,然后在我的 html 代码中作为源访问该文件,但是当 ffmpeg 在其中写入时我无法读取该文件。

如果您需要更多信息,请告诉我。

谢谢您,祝您有愉快的一天。

html nginx ffmpeg rtsp rtmp
2个回答
0
投票

首先,您应该使用格式

flv
,而不是
mp4
。此外,您应该指定一个流(obs 的 StreamKey),例如
livestream
:

ffmpeg -rtsp_transport tcp -i rtsp://user:password@ip-camera:554/h264Preview_01_main -c copy \
  -f flv -y rtmp://ip-address:1935/live/livestream

然后你将RTSP转换为RTMP,你可以使用服务器将RTMP转换为HLS,就像你所做的那样。

HLS的延迟较大,大约5~10s,如果你想得到更低的延迟,请使用HTTP-FLV或WebRTC,见链接这里


0
投票

您可以在 OBS Studio 中使用 camaraIP,通过 SRT://IpCamara 进行操作,通过 OBS Studio 和 Nginx-RTMP 进行传输,通过 HTML5 保存 .m3u8 和列表

© www.soinside.com 2019 - 2024. All rights reserved.