Google Nest Doorbell (kablolu) Smart Device Management (SDM) API'de desteklenir. Bu cihaz, cihaz türü DOORBELL:
sdm.devices.types.DOORBELL
Google Nest Doorbell (kablolu) ile aynı şekilde çalışan bir kamera bulunur. başka bir cihaz türü var.
Özellikler
Referans
Aşağıdaki özellikler, komutlar veya etkinlikler bu cihazla ilgilidir:
Özellik | Açıklama | Komutlar | Etkinlikler |
---|---|---|---|
CameraClipPreview | Bu özellik, klip önizlemesinin indirilmesini destekleyen tüm cihazlara aittir. | ClipPreview | |
CameraLiveStream | Bu özellik, canlı yayını destekleyen tüm cihazlara aittir. | GenerateWebRtcStream ExtendWebRtcStream StopWebRtcStream | |
CameraMotion | Bu özellik, hareket algılama etkinliklerini destekleyen tüm cihazlara aittir. | Hareket | |
CameraPerson | Bu özellik, kişi algılama etkinliklerini destekleyen tüm cihazlara aittir. | Kişi | |
DoorbellChime | Bu özellik, kapı zili zilini ve ilgili basın etkinliklerini destekleyen tüm cihazlara aittir. | Zil | |
Bilgi | Bu özellik, cihazla ilgili bilgiler için herhangi bir cihaza aittir. |
JSON
GET yanıtında bir özelliğin olmaması, o özelliğin veya özelliği şu anda bu cihazda kullanılamıyor. Görüntüleyin Daha fazla bilgi için cihaz türleri ekleyebilirsiniz.
{ "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" } } }
Kapı zili ve kamera etkinliklerini yönetin
Aşağıdaki etkinlikler bir DOORBELL cihaz türünden tetiklenebilir : Örneğin burada kapı zili düğmesine basılmıştır:Yük
{ "eventId" : "3a18bdc1-8fb1-46a2-8fa8-0ab5e3e5ffe2",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "Mca5xeYucOqx7TAXN0Xm7xwLpA..." } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
Bir video klip önizleme için kullanılabilir ve şu özellikte bir etkinlik içerir:
previewUrl
Klip önizlemesi, etkinlikle aynı anda yayınlanabilir.
Bu etkinliği ve ilgili öğeyi ilişkilendirmek için eventSessionId
aracını kullanın
Bir veya daha fazla desteklenen etkinlikle previewUrl
.
Yük
{ "eventId" : "30fdbbe3-3ffd-4ee9-9cc8-0e00f824aa19", "timestamp" : "2019-01-01T00:00:45Z", "resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "Mca5xeYucOqx7TAXN0Xm7xwLpA..." }, "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" ] } }
Klibi önizlemek için HTTP Yetkilendirme üst bilgisinde OAuth erişim jetonunu kullanarak previewUrl
öğesine bir GET çağrısı yapın:
Önizleme
curl -H 'Authorization: Bearer access-token' \
https://previewUrl/...
Klip önizlemesi, mp4 biçimindeki 10 karelik bir video dosyasıdır. 10 karelik bir dizinin tamamını göstermek için mp4 video dosyasını göstermeyi veya başka bir biçime (örneğin, animasyonlu GIF) dönüştürmeyi seçebilirsiniz. Klip önizleme yöntemi seçilirken cihaz istemcisi özellikleri dikkate alınmalıdır.
Canlı yayına erişme
Canlı yayına kameradan erişilebilir. Aşağıdaki akış biçimleri şunlardır: bu cihazda destekleniyor:
- WebRTC
Kameraların tam listesi ve desteklenen yayın biçimleri için bkz. Desteklenen Cihazlar.
Bir canlı yayına erişmek için uygun "YayınFormatOluştur" düğmesini kullanın. komutu CameraLiveStream çok önemlidir.
WebRTC
WebRTC akışı için offerSdp
gönderin.
CameraLiveStream özelliğinin GenerateWebRtcStream komutu
answerSdp
kazanmak için:
İstek
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.GenerateWebRtcStream
",
"params" : {
"offerSdp" : "offerSdp"
}
}
Yanıt
{ "results" : { "answerSdp" : "answerSdp", "expiresAt" : "2020-01-04T18:30:00.000Z", "mediaSessionId" : "eqqCb_m2QKMkC6YMRcX7skASXe..." } }
Başarılı bir canlı yayının nasıl oluşturulacağını öğrenmek için Web Uygulaması Örneği'ni kullanmanızı öneririz. Bu örnek
Nest kameralar için tüm SDP teklif kısıtlamalarını karşılayan geçerli bir offerSdp
oluşturur.
Nest kameralar için SDP teklifinin aşağıdaki kısıtlamalara uyması gerekir:
- Yalnızca Birleştirilmiş biçim desteklenir. B planı desteklenmez.
- Tüm medya satırları (
m=
) teklifte mevcut olmalı ve şu sırada olmalıdır:- Ses
- video
- uygulama
- Trickle ICE desteklenir ancak zorunlu değildir.
- Ses için yalnızca Opus codec'i desteklenir.
- Ses ayarı
a=recvonly
(yalnızca alma) olarak ayarlanmalıdır. - Teklif,
\r\n
veya\n
yeni satır karakteriyle sona ermelidir.
Yanıt alındıktan sonraki 30 saniye içinde canlı yayını oluşturmak için answerSdp
kullanılmalıdır. Aksi takdirde süresi dolar. Süresi dolarsa yeni bir answerSdp
almak için GenerateWebRtcStream komutunu tekrar yürütün.
Canlı yayın için WebRTC kanalları açarken video kanalının yanı sıra veri kanalı oluşturduğunuzdan emin olun.
Geçerli bir teklif örneğini inceleyin
Biçimlendirilmemiş:
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
Biçimlendirilmiş:
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
Canlı yayının süresini uzatma
Kamera canlı yayın oturumları yalnızca 5 dakika boyunca geçerlidir. Canlı yayının ömrünü uzatmanız gerekiyorsa oluşturduğunuz yayın biçimi için KameraLiveStream özelliğinin uygun ExtendFormatStream komutunu kullanın.
WebRTC
. Kablolu
WebRTC akışı yalnızca kablolu kameralarda uzatılabilir. Pille çalışan bir kamera, şarj için fişe takılıyken kablolu olarak kabul edilir. Kamera pil gücüyle çalışıyorsa etkin WebRTC akışını uzatma istekleri yoksayılır.
WebRTC akışının süresini uzatmak için akışın medya oturumu kimliğini belirtin şununla: CameraLiveStream özelliğinin ExtendWebRtcStream komutu:
İstek
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.ExtendWebRtcStream
",
"params" : {
"mediaSessionId" : "eqqCb_m2QKMkC6YMRcX7skASXe..."
}
}
Yanıt
{ "results" : { "expiresAt" : "2018-01-04T18:30:00.000Z", "mediaSessionId" : "eqqCb_m2QKMkC6YMRcX7skASXe..." } }
Canlı yayını durdurma
Kamera canlı yayınını kullanmayı durdurduğunuzda, canlı yayını durdurun ve akışı geçersiz kılar. Bunu yapmak için uygun AkışFormatDurdurma düğmesini kullanın komutu CameraLiveStream özelliğini kullanın.
WebRTC
WebRTC akışını durdurmak için medya oturumu kimliğini CameraLiveStream özelliğinin StopWebRtcStream komutu:
İstek
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopWebRtcStream
",
"params" : {
"mediaSessionId" : "eqqCb_m2QKMkC6YMRcX7skASXe..."
}
}
Yanıt
{}
Hatalar
Bu cihazla ilgili olarak aşağıdaki hata kodları döndürülebilir:
Hata Mesajı | TBG | Sorun giderme |
---|---|---|
Kamera akış için kullanılamıyor. | FAILED_PRECONDITION |
Teknik bir sorun nedeniyle kamera çevrimdışı veya akış için kullanılamıyor. |
Teklif SDP'si geçersiz. | INVALID_ARGUMENT |
Teklif SDP sesi a=recvonly (yalnızca alma) olarak ayarlanmalıdır. |
Geçersiz Teklif SDP'sinde CRLF eksik. | INVALID_ARGUMENT |
WebRTC akışı oluşturulmaya çalışılırken offerSdp dizesinin sonunda yeni satır karakteri eksik. offerSdp dizesinin \r\n veya \n ile bittiğinden emin olun ve akışı tekrar oluşturmayı deneyin. |
Geçersiz Teklif SDP m satırları. | INVALID_ARGUMENT |
Teklif SDP'si; ses, video ve uygulama m satırlarının üçünü de ilgili sırayla içermelidir. |
Zaman aşımı nedeniyle yanıt SDP'si alınamadı. | DEADLINE_EXCEEDED |
WebRTC canlı yayınını tekrar oluşturmayı deneyin. |
Aşağıdakiler için API Hata Kodu Referansı'na bakın: API hata kodlarının tam listesini inceleyin.