مخطّط سمة بثّ الكاميرا الذكية للمنزل
action.devices.traits.CameraStream
: تغطي هذه السمة كيفية التحكّم في بث الكاميرا على الجهاز.
تعود هذه السمة إلى الأجهزة التي لديها إمكانية بث خلاصات الفيديو إلى الشاشات الذكية أو الأجهزة المزوّدة بتكنولوجيا Chromecast أو الهواتف الذكية. بشكلٍ عام، هذه هي كاميرات المراقبة أو كاميرات الأطفال. تنطبق هذه السمة أيضًا على الأجهزة الأكثر تعقيدًا التي تحتوي على كاميرا (على سبيل المثال، أجهزة مكالمات الفيديو أو الروبوتات الكهربائية التي تحتوي على كاميرا).
سمات الجهاز
قد تُبلغ الأجهزة التي تتضمّن هذه السمة عن السمات التالية
كجزء من عملية SYNC
. للاطّلاع على مزيد من المعلومات عن معالجة أهداف SYNC
، يمكنك الاطّلاع على تلبية الأهداف.
السمات | النوع | الوصف |
---|---|---|
cameraStreamSupportedProtocols |
صفيف |
يجب ملء هذا الحقل. أنواع الوسائط المتوافقة لبث الكاميرا، مرتبة حسب الإعداد المفضّل يتم عادةً طلب أول بروتوكول في هذه المصفوفة المتوافق مع المساحة المستهدَفة. |
[item, ...] |
String |
نوع الوسائط القيم المسموح بها:
|
cameraStreamNeedAuthToken |
صحيح/خطأ |
يجب ملء هذا الحقل. ما إذا كان سيتم توفير رمز مميَّز للمصادقة عبر |
أمثلة
كاميرا متوافقة مع بروتوكولات متعددة، ولا تتطلّب رمز مصادقة
{ "cameraStreamSupportedProtocols": [ "webrtc", "hls", "dash", "smooth_stream", "progressive_mp4" ], "cameraStreamNeedAuthToken": false }
كاميرا تتيح بروتوكولًا واحدًا وتتطلّب رمز مصادقة
{ "cameraStreamSupportedProtocols": [ "hls" ], "cameraStreamNeedAuthToken": true }
بروتوكولات البث المتوافقة
تتيح هذه السمة بروتوكولات البث التالية:
webrtc
: WebRTC-
hls
: البث المباشر عبر بروتوكول HTTP dash
: البث التكيُّفي الديناميكي عبر HTTPsmooth_stream
: البث السلسprogressive_mp4
: MP4 تدريجي (يُستخدم في الغالب للمقاطع)
عند بث البروتوكولات hls
وdash
وsmooth_stream
وprogressive_mp4
على أجهزة البث (أجهزة Chromecast والشاشات الذكية
وأجهزة التلفزيون الذكية المزوّدة بتكنولوجيا Chromecast)، يتم تشغيل جهاز استقبال الويب الذي يعمل بتكنولوجيا Google Cast لمعالجة البث وعرضه
على الجهاز. وننصح المطوّر بإنشاء جهاز استقبال ويب مخصّص لإتاحة الوصول إلى أدوات تصحيح الأخطاء وتخصيص سلوك المشغّل وتخصيص العلامة التجارية لواجهة المستخدم وتضمين الإحصاءات. لتفعيل استخدام جهاز الاستقبال المخصّص وإيقاف استخدام جهاز الاستقبال التلقائي،
اضبط رقم تعريف تطبيق جهاز الاستقبال الذي تم إنشاؤه عند
تسجيل تطبيق البث
في الحقل cameraStreamReceiverAppId
في الاستجابة EXECUTE
.
للاطّلاع على مزيد من المعلومات عن تطبيقات Custom Web Receiver، يُرجى الانتقال إلى دليل الموقع الإلكتروني للمطوّر.
حالات الجهاز
بلا عُري
أوامر الجهاز
قد تستجيب الأجهزة التي تتضمّن هذه السمة للأوامر التالية
كجزء من عملية EXECUTE
. لمزيد من المعلومات حول كيفية التعامل مع نية EXECUTE
، يمكنك الاطّلاع على التنفيذ حسب نية العميل.
action.devices.commands.GetCameraStream
المعلمات
المعلمات | النوع | الوصف |
---|---|---|
StreamToChromecast |
صحيح/خطأ |
مطلوبة ما إذا كان سيتم تشغيل البث على جهاز Chromecast |
SupportedStreamProtocols |
صفيف |
مطلوبة أنواع/تنسيقات الوسائط المتوافقة مع الوجهة المطلوبة |
[item, ...] |
String |
نوع الوسائط القيم المسموح بها:
|
النتائج
النتائج | النوع | الوصف |
---|---|---|
cameraStreamAuthToken |
String |
رمز مصادقة للمستلِم المحدّد لتفويض الوصول إلى البث إذا كانت |
cameraStreamProtocol |
String |
مطلوبة تمثّل هذه السمة تنسيق الوسائط الذي يشير إليه عنوان URL للبث. يجب أن يكون أحد البروتوكولات المدرَجة في مَعلمة الأمر القيم المسموح بها:
|
النتائج غير المستندة إلى WebRTC
النتائج | النوع | الوصف |
---|---|---|
cameraStreamAccessUrl |
String |
يجب ملء هذا الحقل. نقطة نهاية عنوان URL لاسترداد البث المباشر بالتنسيق المحدّد في |
cameraStreamReceiverAppId |
String |
رقم تعريف جهاز استقبال البث لمعالجة بث الكاميرا عندما تكون مَعلمة |
نتائج WebRTC
النتائج | النوع | الوصف |
---|---|---|
cameraStreamSignalingUrl |
String |
مطلوبة نقطة نهاية عنوان URL لاسترداد بروتوكولات وصف الجلسة (SDP) للكاميرا والعميل وتبادلها. يجب أن يعرض العميل عنوان URL لإشارة الربط الذي يستخدم |
cameraStreamOffer |
String |
بروتوكول وصف جلسة العرض (SDP). |
cameraStreamIceServers |
String |
يمثّل خوادم Interactive Connectivity Establishment (ICE) باستخدام سلسلة JSON مُشفَّرة مع وصف RTCIceServer. إذا لم تحدِّد خوادم STUN (Session Traversal Utilities for NAT)، ستستخدم المنصة تلقائيًا خوادم STUN العامة من Google. لا تكون خوادم TURN (التنقّل باستخدام الوسائط حول آلية NAT) مطلوبة إلا إذا لم تتمكّن من ضمان إمكانية وصول الجميع إلى عناوين IP أو مرشّحات ICE المقدَّمة (على سبيل المثال، من خلال خادم وسائط أو مرشّح ICE للمضيف العام أو مرشّح ICE للوسيط وما إلى ذلك). |
أمثلة
عرض كاميرا الباب الأمامي (جهاز استقبال البث التلقائي)
{ "cameraStreamAccessUrl": "https://fluffysheep.com/baaaaa.mp4", "cameraStreamProtocol": "progressive_mp4" }
عرض كاميرا الباب الأمامي (جهاز استقبال بث مخصّص)
{ "cameraStreamAccessUrl": "https://fluffysheep.com/baaaaa.mp4", "cameraStreamReceiverAppId": "1g2f89213hg", "cameraStreamAuthToken": "12657342190192783", "cameraStreamProtocol": "progressive_mp4" }
عرض البث الخاص بكاميرا الباب الأمامي (بث WebRTC)
{ "cameraStreamIceServers": "[{\"urls\": \"stun:stun.l.partner.com:19302\"},{\"urls\":\"turn:192.158.29.39:3478?transport=udp\",\"credential\": \"JZEOEt2V3Qb0y27GRntt2u2PAYA=\",\"username\": \"28224511:1379330808\"},{\"urls\": \"turn:192.158.29.39:3478?transport=tcp\",\"credential\": \"JZEOEt2V3Qb0y27GRntt2u2PAYA=\",\"username\": \"28224511:1379330808\"}]", "cameraStreamSignalingUrl": "https://example.com/signaling/answer", "cameraStreamOffer": "o=- 4611731400430051336 2 IN IP4 127.0.0.1...", "cameraStreamProtocol": "webrtc" }
أخطاء الجهاز
يمكنك الاطّلاع على القائمة الكاملة للأخطاء والاستثناءات.مواصفات بروتوكول WebRTC
تتمثل مزايا استخدام WebRTC في وقت الاستجابة البطيء والتحدّث الأحادي. يستخدم WebRTC طريقة POST
مع POST
للجسم والاستجابة بتنسيق JSON.
تتوفّر تقنية WebRTC حاليًا على أجهزة Google Nest Smart Display و"Chromecast مع Google TV" .
يصف هذا القسم المتطلبات عند استخدام بروتوكول بث WebRTC.
نوع البيانات | المَعلمات/التعريفات |
---|---|
عنوان طلب الإشارة |
يجب أن يستوفي العنوان المتطلبات التالية:
|
مَعلمات طلب الإشارات | يمكن أن يتضمن الطلب المعلمات التالية:
|
مَعلمات الاستجابة للإشارات | يمكن أن يتضمّن الردّ المَعلمات التالية:
|
متطلبات WebRTC واقتراحات بشأنها
- تتيح Google حاليًا الاتصال أحادي الاتجاه (نصف الاتصال مزدوج الاتجاه).
- يجب إتاحة التجميع وrtcp-mux.
- يجب استخدام بروتوكول (D)TLS 1.2 أو إصدار أحدث.
- ميزة Trickle ICE غير متاحة. يجب جمع كل المرشحين لـ ICE أولاً قبل إرسال SDP.
- ننصحك بشدة بتضمين مرشحي ICE باستخدام بروتوكول UDP/IPv4 وTCP/IPv4 وUDP/IPv6 وTCP/IPv6 لزيادة احتمالية إجراء اتصال ناجح.
درجات دقة الفيديو المتوافقة:
- الحد الأدنى: 480p
- الحد الأقصى: 1080p
برامج ترميز الفيديو المتوافقة:
- VP8
- H.264
برامج ترميز الصوت المتوافقة:
- Opus (برنامج الترميز المفضل)
- G.711/PCMU
- G.722
مشاركة الموارد المشتركة النطاق
مشاركة الموارد المشتركة المنشأ (CORS) هي آلية تستخدِم عناوين HTTP إضافية لإخبار browsers (المتصفّحات) بالسماح لتطبيق ويب يتم تشغيله من مصدر واحد بالوصول إلى موارد محدّدة من مصدر مختلف. يجب أن يستجيب الخادم الذي يستضيف cameraStreamSignalingUrl
بالعنوان التالي:
Access-Control-Allow-Origin: https://www.gstatic.com
نموذج طلب الإشارة والاستجابة
يعرض المثال التالي طلبًا ترسله Google إلى خدمة الإشارات والردّ المقابل على Google.
Header: Authentication: Bearer <cameraStreamAuthToken> Content-Type: application/json POST body: // When camera offer SDP is provided in the execution response, Google provides an answer SDP. { "action": "answer", "deviceId": "123", "sdp": "o=- 4611731400430051336 2 IN IP4 127.0.0.1..." } // When camera offer SDP is not provided in execution response, Google generates and provides an offer SDP. { "action": "offer", "deviceId": "123", "sdp": "o=- 4611731400430051336 2 IN IP4 127.0.0.1..." } // Close the current stream session. { "action": "end" "deviceId": "123" }
// Response to accept the answer SDP in the request. Response Code : 200 {} // Response to provide the answer SDP from the service provider. Response Code : 200 { // When the camera offer SDP is not provided in the execution response, // Google provides the answer SDP via the signaling response. "action": "answer" "sdp": "o=- 4611731400430051336 2 IN IP4 127.0.0.1..." } // Response to close current session. Response Code : 200 {}