微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Google Nest Hello流网址无法正常工作

如何解决Google Nest Hello流网址无法正常工作

我正在使用Google的以下API,https://developers.google.com/nest/device-access/traits/device/camera-live-stream

我已经能够成功查看我的设备列表和相关信息。我也能够成功完成GenerateRtspStream请求。我收到了他们API记录的以下回复

{
  "results" : {
    "streamUrls" : {
      "rtsp_url" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken"
    },"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...","streamToken" : "g.0.streamingToken","expiresAt" : "2018-01-04T18:30:00.000Z"
  }
}

但是,问题是我无法访问视频供稿。我曾尝试使用VLC播放器和Pot Player之类的工具查看实时Feed,但是他们说URL不存在。我还尝试过在OpenCV中使用python来尝试访问实时供稿,并且它也无法正常工作(我已经在本地文件上测试了opencv,它们工作正常)

我在rtsps网址上做错了吗?如何在pythonVLC Player之类的第三方应用程序中访问实时供稿

以下是我已经尝试做的一些示例:

import cv2 as cv
x = cv.VideoCapture(STREAM_URL)
# ret is False --- it works on local files as it returns True and I am able to view the media 
ret,img = x.read()

这是尝试使用Pot Player / VLC

enter image description here

我的目标是用python处理此视频/图像,因此理想情况下,我的解决方案是使用opencv或类似的东西。我主要是使用VLC和其他播放器来首先调试此URL的问题。

更新

我已经使用以下公共链接进行了测试 rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov :

MYURL = "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov"
MYURL = STREAM_URL
import cv2 as cv
x = cv.VideoCapture(MYURL)
while(True):
    ret,img = x.read()
    if not ret:
        print('URL not working')
        break
    cv.imshow('frame',img)
    cv.waitKey(1)

它与opencvPot Player完美搭配。那么,问题可能出在Google设备访问API上吗?他们提供的网址可能不正确?还是我在这里想念东西?

也许与rtsps URL与rtsp有关?我该如何解决

解决方法

我建议尝试使用ffmpeg,但是您可能需要从源代码构建它。

如果您在使用ffmpeg时遇到问题,可以修改ffmpeg源,以将control_uri(在libavformat/rtsp.h中)的大小从1024增加到2048,然后重新编译。然后ffmpeg应该能够播放RTSPS流。

,

ffmpeg和ffplay都对我有效,不需要重新构建。在MacOS上,我只是这样做:

brew install ffmpeg
ffplay -rtsp_transport tcp "rtsps://..."

填写巨大的流URL。注意引号,URL中有些东西没有zsh不喜欢的引号。或者将流保存到文件

ffmpeg -y -loglevel fatal -rtsp_transport tcp -i "rtsps://..." -acodec copy -vcodec copy /path/to/out.mp4

您可以对ffmpeg使用不同的选项,以将流转换为rtsps以外的内容,以供其他应用程序使用。

有趣的是,尽管API告诉了我这一点:

  "maxVideoResolution": {
    "width": 640,"height": 480
  },

这是来自ffplay的信息:

  Metadata:
    title           : SDM
  Duration: N/A,start: -0.110000,bitrate: N/A
    Stream #0:0: Audio: aac (LC),48000 Hz,stereo,fltp
    Stream #0:1: Video: h264 (Main),yuvj420p(pc,bt709,progressive),1600x1200 [SAR 1:1 DAR 4:3],15 fps,15 tbr,90k tbn,30 tbc

指示1600x1200,不确定为什么maxVideoResolution实际上不是最大分辨率吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。