2

I've been able to get an RTSP URL by:

  1. Performing the initial oauth config/account link/etc.
  2. Calling the device list API to get my device id.
  3. 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.

itomeshi
  • 31
  • 3
  • What's the error you get with ffmpeg? That should work, although you may need to extend the URL length limit in ffmpeg (if it's >1024 characters). – ejf Sep 23 '20 at 18:10
  • @ejf I can try it again on Ubuntu later, but ffmpeg on Windows has what I think is the same error: PS C:\Users\shawn\Desktop\ffmpeg-2020-09-20-git-ef29e5bf42-full_build\bin> .\ffmpeg.exe [STREAM_URL] ... lib output won't fit here ... [NULL @ 000001dde876e940] Unable to find a suitable output format for '[STREAM_URL]' [STREAM_URL]: Invalid argument This is with the latest 'git full' build from https://www.gyan.dev/ffmpeg/builds/ – itomeshi Sep 23 '20 at 20:52

1 Answers1

0

You can modify the ffmpeg source to increase control_uri (in libavformat/rtsp.h) size from 1024 to 2048, and recompile. Then ffmpeg should be able to play the RTSPS streams.

ejf
  • 619
  • 6
  • 13