مخطط سمة CameraStream في المنزل المزوّد بأجهزة ذكية
action.devices.traits.CameraStream
: تتناول هذه السمة كيفية التحكّم في بث الكاميرا على جهاز.
تنتمي هذه السمة إلى الأجهزة التي يمكنها بث خلاصات الفيديو إلى الشاشات الذكية أو الأجهزة المزوّدة بتقنية Chromecast أو الهواتف الذكية. وهي كاميرات المراقبة أو كاميرات الأطفال بشكل عام. ولكن هذه الميزة تنطبق أيضًا على الأجهزة الأكثر تعقيدًا التي تحتوي على كاميرا (على سبيل المثال، أجهزة مؤتمرات الفيديو أو روبوت مكنسة كهربائية مع كاميرا).
صفات الجهاز
قد تبلّغ الأجهزة التي تتضمّن هذه السمة عن السمات التالية كجزء من عملية SYNC
. لمزيد من المعلومات حول التعامل مع أغراض SYNC
، يمكنك الاطّلاع على تنفيذ النية.
السمات | Type | الوصف |
---|---|---|
cameraStreamSupportedProtocols |
صفيف |
يجب ملء هذا الحقل. أنواع الوسائط المتوافقة مع بث الكاميرا، مرتبة حسب الخيار المفضّل. عادةً ما يتم طلب البروتوكول الأول المتوافق مع مساحة العرض المستهدفة في هذه المصفوفة. |
[item, ...] |
String |
نوع الوسائط القيم المسموح بها:
|
cameraStreamNeedAuthToken |
منطقي |
يجب ملء هذا الحقل. ما إذا كان سيتم تقديم رمز مصادقة مميز من خلال |
أمثلة
تتوافق الكاميرا مع بروتوكولات متعددة، ولا تتطلب رمزًا مميزًا للمصادقة.
{ "cameraStreamSupportedProtocols": [ "webrtc", "hls", "dash", "smooth_stream", "progressive_mp4" ], "cameraStreamNeedAuthToken": false }
كاميرا تدعم بروتوكولاً واحدًا، وتتطلّب رمزًا مميزًا للمصادقة.
{ "cameraStreamSupportedProtocols": [ "hls" ], "cameraStreamNeedAuthToken": true }
بروتوكولات البث المتوافقة
تتوافق هذه السمة مع بروتوكولات البث التالية:
webrtc
: WebRTChls
: بث مباشر عبر HTTPdash
: البث التكيُّفي الديناميكي عبر HTTPsmooth_stream
: البث السلسprogressive_mp4
: تنسيق MP4 تقدّمي (يتم استخدامه في أغلب الأحيان للمقاطع)
عند بث بروتوكولات hls
وdash
وsmooth_stream
وprogressive_mp4
إلى أجهزة البث (أجهزة Chromecast والشاشات الذكية
وأجهزة التلفزيون الذكية المتوافقة مع Chromecast)، يتم تشغيل جهاز استقبال الويب Cast لمعالجة البث
وعرضه على الجهاز. ننصح بأن ينشئ المطوّر جهاز استقبال ويب مخصّص لإتاحة الوصول إلى أدوات تصحيح الأخطاء وتخصيص سلوك المشغّل وتخصيص العلامة التجارية لواجهة المستخدم وتضمين الإحصاءات. لتفعيل استخدام جهاز الاستقبال المخصّص وإيقاف استخدام جهاز الاستقبال التلقائي،
اضبط معرّف تطبيق المُستلِم الذي يتم إنشاؤه عندما
تسجِّل تطبيق Cast
في الحقل cameraStreamReceiverAppId
لاستجابة EXECUTE
.
للاطّلاع على مزيد من المعلومات حول تطبيقات "أجهزة استقبال الويب المخصّصة"، يُرجى الانتقال إلى دليل الموقع الإلكتروني للمطوّر.
STATES للجهاز
بلا عُري
تعليمات الجهاز
قد تستجيب الأجهزة التي تحمل هذه السمة للأوامر التالية كجزء من عملية EXECUTE
. لمزيد من المعلومات حول التعامل مع أغراض EXECUTE
، يمكنك الاطّلاع على تنفيذ النية.
action.devices.commands.GetCameraStream
المَعلمات
المَعلمات | Type | الوصف |
---|---|---|
StreamToChromecast |
منطقي |
يجب ملء هذا الحقل. يمكنك اختيار ما إذا كان سيتم تشغيل البث على جهاز Chromecast. |
SupportedStreamProtocols |
صفيف |
يجب ملء هذا الحقل. أنواع الوسائط أو تنسيقاتها المتوافقة مع الوجهة المطلوبة |
[item, ...] |
String |
نوع الوسائط القيم المسموح بها:
|
النتائج
النتائج | Type | الوصف |
---|---|---|
cameraStreamAuthToken |
String |
رمز مصادقة مميز للمستلم المحدد من أجل منح الإذن بالوصول إلى البث. إذا كانت قيمة |
cameraStreamProtocol |
String |
يجب ملء هذا الحقل. تمثّل هذه السمة تنسيق الوسائط الذي يشير إليه عنوان URL الخاص بمجموعة البث. يجب أن يكون أحد البروتوكولات المدرَجة في معلَمة الأمر القيم المسموح بها:
|
نتائج لا تتوافق مع WebRTC
النتائج | Type | الوصف |
---|---|---|
cameraStreamAccessUrl |
String |
يجب ملء هذا الحقل. نقطة نهاية عنوان URL لاسترداد البث في الوقت الفعلي بالتنسيق المحدّد في |
cameraStreamReceiverAppId |
String |
رقم تعريف جهاز استقبال البث لمعالجة بث الكاميرا عندما تكون المَعلمة |
نتائج WebRTC
النتائج | Type | الوصف |
---|---|---|
cameraStreamSignalingUrl |
String |
يجب ملء هذا الحقل. نقطة نهاية عنوان URL لاسترداد وتبادل بروتوكولات وصف الجلسة (SDP) للكاميرا والعميل. على العميل عرض عنوان URL للإشارة الذي يستخدم |
cameraStreamOffer |
String |
بروتوكول وصف جلسة العرض (SDP). |
cameraStreamIceServers |
String |
يُمثِّل ذلك خوادم منشأة الاتصال التفاعلي (ICE) باستخدام سلسلة JSON مرمَّزة مع وصف RTCIceServer. إذا لم تحدد خوادم STUN (أدوات اجتياز جلسات NAT) لخوادم STUN، فالإعداد الافتراضي هو خوادم 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.
- يجب استخدام الإصدار 1.2 من بروتوكول أمان طبقة النقل (TLS) أو إصدار أحدث.
- لا يمكن استخدام Trickle ICE. يجب أولاً جمع كل المرشحين من شركة ICE قبل إرسال بروتوكول وصف الجلسة (SDP).
- يُنصَح بشدة بتضمين عناصر بروتوكول UDP/IPv4 وTCP/IPv4 وUDP/IPv6 وTCP/IPv6 لزيادة احتمالية نجاح الاتصال.
درجات دقة الفيديو المتوافقة:
- الحدّ الأدنى: 480p
- الحد الأقصى: 1080p
برامج ترميز الفيديو المتوافقة:
- VP8
- H.264
برامج ترميز الصوت المتوافقة:
- Opus (برنامج الترميز المفضل)
- G.711/PCMU
- G.722
مشاركة الموارد المتعدّدة المصادر
مشاركة الموارد المتعدّدة المصادر (CORS) هي آلية تستخدم عناوين HTTP إضافية للطلب من المتصفحات السماح لتطبيق ويب يعمل على مصدر واحد بالوصول إلى موارد محدّدة من
مصدر مختلف. يجب أن يستجيب الخادم الذي يستضيف 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 {}