设置:我有一个 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:// 上流式传输用户名密码@rpiIP:8080/test.sdp,无需输入任何用户名/密码即可通过 rtsp://rpiIP:8080/test.sdp 访问该流。换句话说,任何人都可以访问该流。我的问题是:如何使用用户名/密码保护输出流?
多谢。
答案1
要在 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
当您连接到某个远程端点时,将使用此选项protocol://username:password@hostname:port/path
。当您创建自己的流时,您需要使用此--sout-...
选项。
答案2
您必须在摄像机菜单中设置 RTSP 密码。某些家用或婴儿监控摄像机没有设置实时流媒体密码的功能。
如果您可以在菜单中找到它,请设置没有用户名的密码,否则您应该更新设备的固件。