กริ่งประตู (แบบใช้สาย)

Nest Doorbell

Google Nest Doorbell (แบบใช้สาย) รองรับใน Smart Device Management (SDM) API อุปกรณ์นี้แสดงผล ประเภทอุปกรณ์ DOORBELL:

sdm.devices.types.DOORBELL

Google Nest Doorbell (แบบใช้สาย) มีกล้อง ซึ่งทำงานเหมือนกับ ประเภทอุปกรณ์กล้อง CAMERA

ลักษณะ

ข้อมูลอ้างอิง

ลักษณะ คำสั่ง หรือเหตุการณ์ต่อไปนี้เกี่ยวข้องกับอุปกรณ์นี้

ลักษณะเฉพาะคำอธิบายคำสั่งกิจกรรม
CameraClipPreviewลักษณะนี้เป็นของอุปกรณ์ที่รองรับการดาวน์โหลดตัวอย่างคลิปClipPreview
CameraLiveStreamลักษณะนี้เป็นของอุปกรณ์ที่รองรับสตรีมมิงแบบสดGenerateWebRtcStream
ExtendWebRtcStream
StopWebRtcStream
CameraMotionลักษณะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับการเคลื่อนไหวการเคลื่อนไหว
CameraPersonลักษณะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับคนบุคคล
DoorbellChimeลักษณะนี้เป็นของอุปกรณ์ที่รองรับกริ่งประตูและเหตุการณ์การกดที่เกี่ยวข้องเคมี
ข้อมูลลักษณะนี้เป็นของอุปกรณ์ใดๆ สำหรับข้อมูลที่เกี่ยวข้องกับอุปกรณ์

JSON

การขาดลักษณะในการตอบสนอง GET แสดงให้เห็นว่าลักษณะหรือ ฟีเจอร์นี้ไม่พร้อมใช้งานสำหรับอุปกรณ์นี้ในขณะนี้ ดูข้อมูลเพิ่มเติมได้ที่ประเภทอุปกรณ์

{
  "type" : "sdm.devices.types.DOORBELL",
  "traits" : {
    "sdm.devices.traits.CameraClipPreview" : {},
    "sdm.devices.traits.CameraLiveStream" : {
      "maxVideoResolution" : {
        "width" : 640,
        "height" : 480
      },
      "videoCodecs" : ["H264"],
      "audioCodecs" : ["AAC"],
      "supportedProtocols" : ["WEB_RTC"]
    },
    "sdm.devices.traits.CameraMotion" : {},
    "sdm.devices.traits.CameraPerson" : {},
    "sdm.devices.traits.DoorbellChime" : {},
    "sdm.devices.traits.Info" : {
      "customName" : "My device"
    }
  }
}

จัดการเหตุการณ์ของกริ่งประตูและกล้อง

เหตุการณ์ต่อไปนี้อาจทริกเกอร์จากอุปกรณ์ประเภทกริ่งประตู

ตัวอย่างเช่น มีการกดปุ่มกริ่งประตูตรงนี้

เพย์โหลด

{
  "eventId" : "f59f5437-de17-4557-966e-3c7b351821ba",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "AX7LNOBDn1juo5BZ3D2eZvivMc..." } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }

วิดีโอคลิปพร้อมให้ดูตัวอย่างและจะมีเหตุการณ์ที่มี previewUrl ตัวอย่างคลิปอาจได้รับการเผยแพร่พร้อมกับเหตุการณ์ ใช้ eventSessionId เพื่อเชื่อมโยงกิจกรรมนี้และกิจกรรมที่เกี่ยวข้อง previewUrl ที่มีเหตุการณ์ที่รองรับอย่างน้อย 1 เหตุการณ์

เพย์โหลด

{
  "eventId" : "b1257a36-fc25-4479-b8c1-37a1456ef960",
  "timestamp" : "2019-01-01T00:00:45Z",
  "resourceUpdate" : {
    "name" : "enterprises/project-id/devices/device-id",
    "events" : {
      "sdm.devices.events.DoorbellChime.Chime" : {
        "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
        "eventId" : "AX7LNOBDn1juo5BZ3D2eZvivMc..."
      },
      "sdm.devices.events.CameraClipPreview.ClipPreview" : {
        "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
        "previewUrl" : "https://previewUrl/..."
      }
    }
  },
  "userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
  "eventThreadId" : "d67cd3f7-86a7-425e-8bb3-462f92ec9f59",
  "eventThreadState" : "STARTED",
  "resourceGroup" : [
    "enterprises/project-id/devices/device-id"
    ]
  }
}

หากต้องการดูตัวอย่างคลิป ให้เรียก GET ไปที่ previewUrl โดยใช้โทเค็นเพื่อการเข้าถึง OAuth ในส่วนหัวการให้สิทธิ์ HTTP

Preview

curl -H 'Authorization: Bearer access-token' \
  https://previewUrl/...

ตัวอย่างคลิปคือไฟล์วิดีโอขนาด 10 เฟรมในรูปแบบ mp4 คุณสามารถเลือกแสดงไฟล์วิดีโอ mp4 หรือแปลงไฟล์เป็นรูปแบบอื่น (เช่น GIF แบบเคลื่อนไหว) เพื่อแสดงลำดับภาพ 10 เฟรมที่สมบูรณ์ คุณควรพิจารณาความสามารถของไคลเอ็นต์อุปกรณ์เมื่อเลือกวิธีการแสดงตัวอย่างคลิป

เข้าถึงสตรีมแบบสด

คุณเข้าถึงสตรีมแบบสดจากกล้องได้ อุปกรณ์นี้รองรับสตรีมรูปแบบต่อไปนี้

  • WebRTC

ดูรายการกล้องทั้งหมดและรูปแบบสตรีมที่รองรับได้ที่ อุปกรณ์ที่รองรับ

หากต้องการเข้าถึงสตรีมแบบสด ให้ใช้สตรีมสร้างFormatที่เหมาะสม คำสั่งของ CameraLiveStream ลักษณะ

WebRTC


สำหรับสตรีม WebRTC ให้ส่ง offerSdp ในคำสั่ง GenerateWebRtcStream ของลักษณะ CameraLiveStream เพื่อรับ answerSdp

ส่งคำขอ

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraLiveStream.GenerateWebRtcStream",
  "params" : {
    "offerSdp" : "offerSdp"
  }
}

คำตอบ

{
  "results" : {
    "answerSdp" : "answerSdp",
    "expiresAt" : "2020-01-04T18:30:00.000Z",
    "mediaSessionId" : "COVk-H7T-5tlL3kU0OvyEbc-hK..."
  }
}

เราขอแนะนำให้ใช้ตัวอย่างเว็บแอปพลิเคชันเพื่อดูวิธีสร้างสตรีมแบบสดที่ประสบความสำเร็จ ตัวอย่างนี้จะสร้าง offerSdp ที่ถูกต้องซึ่งเป็นไปตามข้อจำกัดทั้งหมดของข้อเสนอ SDP สำหรับกล้อง Nest

ข้อเสนอ SDP สำหรับกล้อง Nest ต้องเป็นไปตามข้อจำกัดต่อไปนี้

  • รองรับเฉพาะรูปแบบ Unified เท่านั้น ไม่รองรับแพ็กเกจ B
  • บรรทัดสื่อทั้งหมด (m=) ต้องแสดงในข้อเสนอและต้องเรียงตามลำดับต่อไปนี้
    1. เสียง
    2. วิดีโอ
    3. แอปพลิเคชัน
  • ระบบรองรับ Trickle ICE แต่ไม่บังคับ
  • รองรับเฉพาะตัวแปลงสัญญาณ Opus สำหรับเสียง
  • การตั้งค่าเสียงต้องตั้งค่าเป็น a=recvonly (รับอย่างเดียว)
  • ข้อเสนอต้องลงท้ายด้วยอักขระบรรทัดใหม่อย่างใดอย่างหนึ่งต่อไปนี้ \r\n หรือ \n

คุณต้องใช้ answerSdp เพื่อสร้างสตรีมแบบสดภายใน 30 วินาทีหลังจากได้รับการตอบกลับ มิฉะนั้นสตรีมแบบสดจะหมดอายุ หากหมดอายุ ให้เรียกใช้คำสั่ง GenerateWebRtcStream อีกครั้งเพื่อรับ answerSdp ใหม่

เมื่อเปิดช่อง WebRTC สำหรับสตรีมแบบสด โปรดสร้างช่องข้อมูลและช่องวิดีโอ

ดูตัวอย่างข้อเสนอที่ถูกต้อง

รูปแบบไม่ถูกต้อง

v=0\r\no=- 2214114893783582286 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1 2\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 63 103 104 9 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:6ReD\r\na=ice-pwd:QBmcZYd/t+InpMVkxQEEXnE4\r\na=ice-options:trickle\r\na=fingerprint:sha-256 DD:7E:6F:CD:B8:13:4E:37:D2:92:6D:8E:30:FB:FE:13:29:C9:F8:FD:78:0B:C4:59:42:61:BC:CF:02:91:6B:3C\r\na=setup:actpass\r\na=mid:0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:63 red/48000/2\r\na=fmtp:63 111/111\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:112 telephone-event/32000\r\na=rtpmap:113 telephone-event/16000\r\na=rtpmap:126 telephone-event/8000\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 122 102 121 127 120 125 107 108 109 35 36 124 119 123 118 114 115 116 37\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:6ReD\r\na=ice-pwd:QBmcZYd/t+InpMVkxQEEXnE4\r\na=ice-options:trickle\r\na=fingerprint:sha-256 DD:7E:6F:CD:B8:13:4E:37:D2:92:6D:8E:30:FB:FE:13:29:C9:F8:FD:78:0B:C4:59:42:61:BC:CF:02:91:6B:3C\r\na=setup:actpass\r\na=mid:1\r\na=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:13 urn:3gpp:video-orientation\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=fmtp:98 profile-id=0\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 VP9/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 profile-id=2\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:122 VP9/90000\r\na=rtcp-fb:122 goog-remb\r\na=rtcp-fb:122 transport-cc\r\na=rtcp-fb:122 ccm fir\r\na=rtcp-fb:122 nack\r\na=rtcp-fb:122 nack pli\r\na=fmtp:122 profile-id=1\r\na=rtpmap:102 H264/90000\r\na=rtcp-fb:102 goog-remb\r\na=rtcp-fb:102 transport-cc\r\na=rtcp-fb:102 ccm fir\r\na=rtcp-fb:102 nack\r\na=rtcp-fb:102 nack pli\r\na=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f\r\na=rtpmap:121 rtx/90000\r\na=fmtp:121 apt=102\r\na=rtpmap:127 H264/90000\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 transport-cc\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f\r\na=rtpmap:120 rtx/90000\r\na=fmtp:120 apt=127\r\na=rtpmap:125 H264/90000\r\na=rtcp-fb:125 goog-remb\r\na=rtcp-fb:125 transport-cc\r\na=rtcp-fb:125 ccm fir\r\na=rtcp-fb:125 nack\r\na=rtcp-fb:125 nack pli\r\na=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:107 rtx/90000\r\na=fmtp:107 apt=125\r\na=rtpmap:108 H264/90000\r\na=rtcp-fb:108 goog-remb\r\na=rtcp-fb:108 transport-cc\r\na=rtcp-fb:108 ccm fir\r\na=rtcp-fb:108 nack\r\na=rtcp-fb:108 nack pli\r\na=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f\r\na=rtpmap:109 rtx/90000\r\na=fmtp:109 apt=108\r\na=rtpmap:35 AV1/90000\r\na=rtcp-fb:35 goog-remb\r\na=rtcp-fb:35 transport-cc\r\na=rtcp-fb:35 ccm fir\r\na=rtcp-fb:35 nack\r\na=rtcp-fb:35 nack pli\r\na=rtpmap:36 rtx/90000\r\na=fmtp:36 apt=35\r\na=rtpmap:124 H264/90000\r\na=rtcp-fb:124 goog-remb\r\na=rtcp-fb:124 transport-cc\r\na=rtcp-fb:124 ccm fir\r\na=rtcp-fb:124 nack\r\na=rtcp-fb:124 nack pli\r\na=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032\r\na=rtpmap:119 rtx/90000\r\na=fmtp:119 apt=124\r\na=rtpmap:123 H264/90000\r\na=rtcp-fb:123 goog-remb\r\na=rtcp-fb:123 transport-cc\r\na=rtcp-fb:123 ccm fir\r\na=rtcp-fb:123 nack\r\na=rtcp-fb:123 nack pli\r\na=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032\r\na=rtpmap:118 rtx/90000\r\na=fmtp:118 apt=123\r\na=rtpmap:114 red/90000\r\na=rtpmap:115 rtx/90000\r\na=fmtp:115 apt=114\r\na=rtpmap:116 ulpfec/90000\r\na=rtpmap:37 flexfec-03/90000\r\na=rtcp-fb:37 goog-remb\r\na=rtcp-fb:37 transport-cc\r\na=fmtp:37 repair-window=10000000\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:6ReD\r\na=ice-pwd:QBmcZYd/t+InpMVkxQEEXnE4\r\na=ice-options:trickle\r\na=fingerprint:sha-256 DD:7E:6F:CD:B8:13:4E:37:D2:92:6D:8E:30:FB:FE:13:29:C9:F8:FD:78:0B:C4:59:42:61:BC:CF:02:91:6B:3C\r\na=setup:actpass\r\na=mid:2\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n

จัดรูปแบบแล้ว:

v=0
o=- 2214114893783582286 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=extmap-allow-mixed
a=msid-semantic: WMS
m=audio 9 UDP/TLS/RTP/SAVPF 111 63 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:6ReD
a=ice-pwd:QBmcZYd/t+InpMVkxQEEXnE4
a=ice-options:trickle
a=fingerprint:sha-256 DD:7E:6F:CD:B8:13:4E:37:D2:92:6D:8E:30:FB:FE:13:29:C9:F8:FD:78:0B:C4:59:42:61:BC:CF:02:91:6B:3C
a=setup:actpass
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=recvonly
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:63 red/48000/2
a=fmtp:63 111/111
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 122 102 121 127 120 125 107 108 109 35 36 124 119 123 118 114 115 116 37
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:6ReD
a=ice-pwd:QBmcZYd/t+InpMVkxQEEXnE4
a=ice-options:trickle
a=fingerprint:sha-256 DD:7E:6F:CD:B8:13:4E:37:D2:92:6D:8E:30:FB:FE:13:29:C9:F8:FD:78:0B:C4:59:42:61:BC:CF:02:91:6B:3C
a=setup:actpass
a=mid:1
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:13 urn:3gpp:video-orientation
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP9/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 profile-id=2
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:122 VP9/90000
a=rtcp-fb:122 goog-remb
a=rtcp-fb:122 transport-cc
a=rtcp-fb:122 ccm fir
a=rtcp-fb:122 nack
a=rtcp-fb:122 nack pli
a=fmtp:122 profile-id=1
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=102
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:35 AV1/90000
a=rtcp-fb:35 goog-remb
a=rtcp-fb:35 transport-cc
a=rtcp-fb:35 ccm fir
a=rtcp-fb:35 nack
a=rtcp-fb:35 nack pli
a=rtpmap:36 rtx/90000
a=fmtp:36 apt=35
a=rtpmap:124 H264/90000
a=rtcp-fb:124 goog-remb
a=rtcp-fb:124 transport-cc
a=rtcp-fb:124 ccm fir
a=rtcp-fb:124 nack
a=rtcp-fb:124 nack pli
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
a=rtpmap:119 rtx/90000
a=fmtp:119 apt=124
a=rtpmap:123 H264/90000
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 transport-cc
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
a=rtpmap:118 rtx/90000
a=fmtp:118 apt=123
a=rtpmap:114 red/90000
a=rtpmap:115 rtx/90000
a=fmtp:115 apt=114
a=rtpmap:116 ulpfec/90000
a=rtpmap:37 flexfec-03/90000
a=rtcp-fb:37 goog-remb
a=rtcp-fb:37 transport-cc
a=fmtp:37 repair-window=10000000
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:6ReD
a=ice-pwd:QBmcZYd/t+InpMVkxQEEXnE4
a=ice-options:trickle
a=fingerprint:sha-256 DD:7E:6F:CD:B8:13:4E:37:D2:92:6D:8E:30:FB:FE:13:29:C9:F8:FD:78:0B:C4:59:42:61:BC:CF:02:91:6B:3C
a=setup:actpass
a=mid:2
a=sctp-port:5000
a=max-message-size:262144

ขยายเวลาสตรีมแบบสด

เซสชันสตรีมแบบสดของกล้องจะใช้ได้ 5 นาทีเท่านั้น หากต้องการยืดอายุการใช้งานของสตรีมแบบสด ให้ใช้คำสั่ง "ขยายFormatสตรีม" ที่เหมาะสมของลักษณะ cameraLiveStream สำหรับรูปแบบสตรีมที่สร้างขึ้น

WebRTC


  แบบใช้สาย   

สตรีม WebRTC จะขยายได้เฉพาะในกล้องแบบใช้สายเท่านั้น กล้องที่ใช้แบตเตอรี่จะถือว่าใช้สายไฟขณะเสียบปลั๊กชาร์จ หากกล้องใช้พลังงานจากแบตเตอรี่ ระบบจะไม่สนใจคำขอขยายสตรีม WebRTC ที่มีการใช้งานอยู่

หากต้องการขยายสตรีม WebRTC ให้ระบุรหัสเซสชันสื่อของสตรีมด้วยคำสั่ง ExtendWebRtcStream ของลักษณะ CameraLiveStream

ส่งคำขอ

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraLiveStream.ExtendWebRtcStream",
  "params" : {
    "mediaSessionId" : "COVk-H7T-5tlL3kU0OvyEbc-hK..."
  }
}

คำตอบ

{
  "results" : {
    "expiresAt" : "2018-01-04T18:30:00.000Z",
    "mediaSessionId" : "COVk-H7T-5tlL3kU0OvyEbc-hK..."
  }
}

หยุดสตรีมแบบสด

เมื่อไม่ได้ใช้สตรีมแบบสดของกล้องแล้ว คุณควรหยุดสตรีมนั้นและทำให้สตรีมเป็นโมฆะ โดยให้ใช้คำสั่ง StopFormatStream ที่เหมาะสมของลักษณะ CameraLiveStream สำหรับรูปแบบสตรีมที่สร้างขึ้น

WebRTC


หากต้องการหยุดสตรีม WebRTC ให้ระบุรหัสเซสชันสื่อด้วยพารามิเตอร์ คำสั่ง StopWebRtcStream ของลักษณะ CameraLiveStream

ส่งคำขอ

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraLiveStream.StopWebRtcStream",
  "params" : {
    "mediaSessionId" : "COVk-H7T-5tlL3kU0OvyEbc-hK..."
  }
}

คำตอบ

{}

ข้อผิดพลาด

ระบบอาจแสดงรหัสข้อผิดพลาดต่อไปนี้ที่เกี่ยวข้องกับอุปกรณ์นี้

ข้อความแสดงข้อผิดพลาด RPC การแก้ปัญหา
กล้องไม่พร้อมสตรีม FAILED_PRECONDITION กล้องออฟไลน์หรือไม่พร้อมสตรีมเนื่องจากปัญหาทางเทคนิค
SDP ของข้อเสนอไม่ถูกต้อง INVALID_ARGUMENT ต้องตั้งค่าเสียง SDP เป็น a=recvonly (รับเท่านั้น)
SDP ของข้อเสนอไม่ถูกต้องไม่มี CRLF INVALID_ARGUMENT ไม่มีอักขระบรรทัดใหม่ที่ส่วนท้ายของสตริง offerSdp เมื่อพยายามสร้างสตรีม WebRTC ตรวจสอบว่าสตริง offerSdp ลงท้ายด้วย \r\n หรือ \n แล้วลองสร้างสตรีมอีกครั้ง
บรรทัด SDP ของข้อเสนอไม่ถูกต้อง INVALID_ARGUMENT SDP ของข้อเสนอต้องมี m-line เสียง วิดีโอ และแอปพลิเคชันทั้ง 3 รายการตามลำดับดังกล่าว
ดึงข้อมูล SDP ของคำตอบไม่สำเร็จเนื่องจากหมดเวลา DEADLINE_EXCEEDED ลองสร้างสตรีมแบบสด WebRTC อีกครั้ง

ดูข้อมูลอ้างอิงรหัสข้อผิดพลาด API สำหรับ รายการรหัสข้อผิดพลาด API ทั้งหมด