2

我已经能够通过以下方式获得 RTSP URL:

  1. 执行初始 oauth 配置/帐户链接/等。
  2. 调用设备列表 API 来获取我的设备 ID。
  3. 在设备上调用 sdm.devices.commands.CameraLiveStream.GenerateRtspStream 命令。

我得到一个有效的流 URL,它与https://developers.google.com/nest/device-access/traits/device/camera-live-stream的格式匹配。但是,当我尝试在 VLC 中查看流时(即使在将 Live555 流传输切换到 RTP over RTSP 之后),我收到以下 VLC 错误:

无法打开您的输入:VLC 无法打开 MRL '(INSERT URL HERE)'。检查日志以获取详细信息。

消息日志显示没有错误或警告,但在调试下我确实看到:

主调试:寻找匹配“rtsps”的访问模块:26 个候选主调试:没有匹配的访问模块主调试:死输入

我可以用什么来查看这个流?Windows 上 VLC 的默认构建和 VLC、mplayer 和 ffmpeg 的默认构建似乎无法查看此流。我怀疑部分问题在于它是 RTSPS(我认为,RTP over RTSP over SSL?)。我还怀疑 VLC 构建可能是一个问题,因为我通过了 RTSP URL 但它无法处理嵌入式 TSP 的测试流。

4

1 回答 1

0

您可以修改 ffmpeg 源以将control_uri(in libavformat/rtsp.h) 大小从 1024 增加到 2048,然后重新编译。然后 ffmpeg 应该能够播放 RTSPS 流。

于 2020-09-23T21:09:14.043 回答