VLC 作为 RTSP 服务器 - 身份验证不起作用

top*_*top 2 vlc-media-player rtsp ip-camera raspberry-pi

设置:我有一个 IPcam 和一个树莓派(RPi3 运行带有 VLC 3.0 的 Raspbian)。当我用运行 Debian 和 VLC 3.0 的计算机替换树莓派时,也会出现此问题。

目标:我的目标是能够通过Rpi远程访问IPcam的流,即在Rpi上运行vlc作为RTSP服务器。它几乎可以工作,但我在通过密码保护退出 Rpi 的流时仍然遇到问题。

我所做的:在 Rpi 上,VLC 作为 RTSP 服务器运行,以摄像机的流作为输入。

运行的命令是:

cvlc rtsp://ipcamlogin:ipcampassword@ipcamIP:554/play1.sdp --sout '#transcode{acodec=mp4a,ab=128,channels=2,samplerate=8000}:rtp{sdp=rtsp://用户名:密码@rpiIP:8080/test.sdp}' --sout-ffmpeg-strict -2 --sout-avcodec-strict -2

(几乎)一切正常,我可以通过连接到 RPi 远程查看我的网络摄像头。

问题:问题是,虽然我在 rtsp:// username:password @rpiIP:8080/test.sdp 上进行流式传输,但可以在 rtsp://rpiIP:8080/test.sdp 上访问该流,而无需任何用户名/密码问道。换句话说,任何人都可以访问该流。我的问题是:如何使用用户名/密码保护输出流?

多谢。

小智 5

要在 RTSP 流中设置用户名和密码身份验证,您需要使用--sout-rtsp-user--sout-rtsp-pwd

最终命令应该是:

cvlc rtsp://ipcamlogin:ipcampassword@ipcamIP:554/play1.sdp --sout '#transcode{acodec=mp4a,ab=128,channels=2,samplerate=8000}:rtp{sdp=rtsp://rpiIP:8080/test.sdp}' --sout-ffmpeg-strict -2 --sout-avcodec-strict -2 --sout-rtsp-user username --sout-rtsp-pwd password
Run Code Online (Sandbox Code Playgroud)

protocol://username:password@hostname:port/path当您连接到某个远程端点时使用。当您创建自己的流时,您需要使用这些--sout-...选项。