I've been able to get an RTSP URL by:
- Performing the initial oauth config/account link/etc.
- Calling the device list API to get my device id.
- Calling the sdm.devices.commands.CameraLiveStream.GenerateRtspStream command on the device.
I get a valid stream URL, which matches the format from https://developers.google.com/nest/device-access/traits/device/camera-live-stream. However, when I try to view the stream in VLC (even after switching the Live555 Stream Transport to RTP over RTSP), I get the following VLC error:
Your input can't be opened: VLC is unable to open the MRL '(INSERT URL HERE)'. Check the log for details.
The messages log shows no errors or warnings, but under debug I do see:
main debug: looking for access module matching "rtsps": 26 candidates main debug: no access modules matched main debug: dead input
What can I use to view this stream? Default builds of VLC on Windows and default builds of VLC, mplayer and ffmpeg cannot seem to view this stream. I suspect part of the problem is that it's RTSPS (which would be, I think, either RTP over RTSP over SSL?). I also suspect the VLC build might be an issue, since a test stream I got past the RTSP URL but it couldn't handle the embedded TSP.
You can modify the ffmpeg source to increase
control_uri
(inlibavformat/rtsp.h
) size from 1024 to 2048, and recompile. Then ffmpeg should be able to play the RTSPS streams.