مخطّط سمة بث الكاميرا الذكية للمنزل
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
action.devices.traits.CameraStream
: تتناول هذه السمة كيفية التحكّم في بث كاميرا أحد الأجهزة.
تنطبق هذه السمة على الأجهزة التي يمكنها بث خلاصات الفيديو إلى الشاشات الذكية أو الأجهزة المزوّدة بتكنولوجيا Chromecast أو الهواتف الذكية. وغالبًا ما تكون هذه الكاميرات كاميرات مراقبة أو كاميرات مراقبة الأطفال. تنطبق هذه السمة أيضًا على الأجهزة الأكثر تعقيدًا التي تحتوي على كاميرا (مثل أجهزة مكالمات الفيديو أو الروبوتات المزوّدة بمكنسة كهربائية وكاميرا).
سمات الجهاز
قد تُبلغ الأجهزة التي تتضمّن هذه السمة عن السمات التالية
كجزء من عملية SYNC
. للاطّلاع على مزيد من المعلومات عن معالجة SYNC
intents، اطّلِع على تلبية النية.
السمات | النوع | الوصف |
---|---|---|
cameraStreamSupportedProtocols |
صفيف |
مطلوبة أنواع الوسائط المتوافقة مع بث الكاميرا، مرتبة حسب الإعداد المفضّل يتم عادةً طلب أول بروتوكول في هذه المصفوفة المتوافق مع المساحة المستهدَفة. |
[item, ...] |
String |
نوع الوسائط القيم المسموح بها:
|
cameraStreamNeedAuthToken |
صحيح/خطأ |
مطلوبة يشير ذلك إلى ما إذا كان رمز التفويض مطلوبًا لبث خلاصة الكاميرا. |
أمثلة
كاميرا متوافقة مع بروتوكولات متعددة، ولا تتطلّب رمز مصادقة
{ "cameraStreamSupportedProtocols": [ "webrtc", "hls", "dash", "smooth_stream", "progressive_mp4" ], "cameraStreamNeedAuthToken": false }
كاميرا تتيح بروتوكولًا واحدًا وتتطلّب رمز مصادقة
{ "cameraStreamSupportedProtocols": [ "hls" ], "cameraStreamNeedAuthToken": true }
بروتوكولات البث المتوافقة
تتيح هذه السمة بروتوكولات البث التالية:
webrtc
: WebRTC-
hls
: البث المباشر عبر بروتوكول HTTP -
dash
: البث الديناميكي التكيُّفي عبر HTTP smooth_stream
: البث السلسprogressive_mp4
: MP4 التقدّمي (يُستخدَم في الغالب مع المقاطع)
عند بث بروتوكولات hls
وdash
وsmooth_stream
و
progressive_mp4
إلى أجهزة البث (أجهزة Chromecast والشاشات الذكية
وأجهزة التلفزيون الذكية المزوّدة بتقنية Chromecast)، يتم تشغيل برنامج Cast Web Receiver لمعالجة البث وعرضه
على الجهاز. ننصح المطوّر بإنشاء
Web Receiver مخصّص ل
تفعيل الوصول إلى أدوات تصحيح الأخطاء وتخصيص سلوك المشغّل وتخصيص العلامة التجارية لواجهة المستخدم وتضمين
الإحصاءات. لتفعيل استخدام جهاز الاستقبال المخصّص وإيقاف استخدام جهاز الاستقبال التلقائي،
اضبط رقم تعريف تطبيق جهاز الاستقبال الذي تم إنشاؤه عند
تسجيل تطبيق البث
في الحقل cameraStreamReceiverAppId
في الاستجابة EXECUTE
.
للاطّلاع على مزيد من المعلومات عن تطبيقات Custom Web Receiver، يُرجى الانتقال إلى دليل الموقع الإلكتروني للمطوّر.
حالات الجهاز
بلا عُري
أوامر الجهاز
قد تستجيب الأجهزة التي تتضمّن هذه السمة للأوامر التالية
كجزء من عملية EXECUTE
. للاطّلاع على مزيد من المعلومات عن معالجة EXECUTE
intents، اطّلِع على تلبية النية.
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 {}