WebRTC এর সাথে CameraStream প্রয়োগ করুন

১. শুরু করার আগে

CameraStream বৈশিষ্ট্যটি সেই ডিভাইসগুলির জন্য প্রযোজ্য যেখানে স্মার্ট ডিসপ্লে, Chromecast ডিভাইস এবং স্মার্টফোনে ভিডিও ফিড স্ট্রিম করার ক্ষমতা রয়েছে। WebRTC প্রোটোকল এখন CameraStream বৈশিষ্ট্যের মধ্যে সমর্থিত, যার অর্থ হল আপনি একটি ক্যামেরা ডিভাইস থেকে একটি Google Nest ডিসপ্লে ডিভাইসে স্টার্টআপ এবং স্ট্রিমিং লেটেন্সি অনেকাংশে কমাতে পারেন।

ক্যামেরা ডিভাইসগুলি Google Nest ডিসপ্লে ডিভাইসে স্ট্রিমিং করছে

পূর্বশর্ত

তুমি কি শিখবে

  • কিভাবে একটি স্মার্ট হোম ক্লাউড পরিষেবা স্থাপন করবেন।
  • গুগল অ্যাসিস্ট্যান্টের সাথে আপনার পরিষেবা কীভাবে সংযুক্ত করবেন।
  • WebRTC প্রোটোকল ব্যবহার করে কীভাবে Google Nest ডিসপ্লে ডিভাইসে স্ট্রিম করবেন।

তোমার যা লাগবে

  • একটি ওয়েব ব্রাউজার, যেমন গুগল ক্রোম
  • গুগল হোম অ্যাপ সহ একটি iOS বা Android ডিভাইস।
  • Node.js সংস্করণ ১০.১৬ বা তার বেশি।
  • Firebase এর জন্য Blaze (যাওয়ার মতো করে টাকা দেওয়া) পরিকল্পনা।
  • একটি অন্তর্নির্মিত বা বহিরাগত ওয়েবক্যাম ডিভাইস যা ফুল এইচডি রেজোলিউশন সমর্থন করতে পারে।
  • একটি Google Nest ডিসপ্লে ডিভাইস।

2. শুরু করুন

ফায়ারবেস সিএলআই ইনস্টল করুন

ফায়ারবেস সিএলআই আপনাকে স্থানীয়ভাবে আপনার ওয়েব অ্যাপগুলি পরিবেশন করতে এবং ফায়ারবেস হোস্টিংয়ে স্থাপন করতে দেয়।

Firebase CLI ইনস্টল করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার টার্মিনালে, Firebase CLI ডাউনলোড এবং ইনস্টল করুন:
$ npm install -g firebase-tools
  1. CLI সঠিকভাবে ইনস্টল করা আছে কিনা তা যাচাই করুন:
$ firebase --version
  1. আপনার গুগল অ্যাকাউন্টের মাধ্যমে ফায়ারবেস সিএলআই অনুমোদন করুন:
$ firebase login

একটি প্রকল্প তৈরি করুন

  1. গুগল হোম ডেভেলপার কনসোলে যান।
  2. প্রকল্প তৈরি করুন ক্লিক করুন, প্রকল্পের জন্য একটি নাম লিখুন এবং প্রকল্প তৈরি করুন ক্লিক করুন।

প্রকল্পের নাম

ক্যামেরাস্ট্রিম ক্লায়েন্ট অ্যাপটি চালান

এই কোডল্যাবের সোর্স কোডে একটি WebRTC ক্লায়েন্ট অন্তর্ভুক্ত রয়েছে যা ওয়েবক্যাম এবং গুগল স্মার্ট হোম ডিসপ্লে ডিভাইসের মধ্যে WebRTC সেশন স্থাপন, আলোচনা এবং পরিচালনা করে।

CameraStream WebRTC ক্লায়েন্ট অ্যাপটি চালানোর জন্য, নিম্নলিখিতগুলির মধ্যে একটি করুন:

  • আপনার ডেভেলপমেন্ট মেশিনে সোর্স কোড ডাউনলোড করতে নিম্নলিখিত বোতামে ক্লিক করুন:

  • এই GitHub সংগ্রহস্থলটি ক্লোন করুন:
    $ git clone https://github.com/google-home/smarthome-camerastream-webrtc.git
    

কোডটিতে নিম্নলিখিত ডিরেক্টরিগুলি রয়েছে:

  • camerastream-start ডিরেক্টরি, যেখানে আপনি যে স্টার্টার কোডটি তৈরি করেন তা থাকে।
  • camerastream-done ডিরেক্টরি, যাতে সমাপ্ত কোডল্যাবের সমাধান কোড থাকে।

camerastream-start ডিরেক্টরিতে নিম্নলিখিত সাবডিরেক্টরিগুলি রয়েছে:

  • public সাবডিরেক্টরি, যাতে একটি ফ্রন্টএন্ড UI থাকে যা সহজেই আপনার ক্যামেরা ডিভাইসের অবস্থা নিয়ন্ত্রণ এবং নিরীক্ষণ করে।
  • functions সাবডিরেক্টরি, যার মধ্যে একটি সম্পূর্ণরূপে বাস্তবায়িত ক্লাউড পরিষেবা রয়েছে যা ফায়ারবেস এবং রিয়েলটাইম ডেটাবেসের জন্য ক্লাউড ফাংশন সহ ক্যামেরা পরিচালনা করে।

স্টার্টার কোডটিতে TODO মন্তব্য রয়েছে যা নির্দেশ করে যে আপনাকে কোথায় কোড যোগ করতে বা পরিবর্তন করতে হবে, যেমন নিম্নলিখিত উদাহরণ:

// TODO: Implement full SYNC response.

আপনার গুগল হোম ডেভেলপার কনসোল প্রকল্পে ফায়ারবেস যোগ করুন

পদ্ধতি ১: ফায়ারবেস কনসোলের মাধ্যমে

  1. ফায়ারবেসে যান।
  2. একটি ফায়ারবেস প্রকল্প তৈরি করুন ক্লিক করুন।
    ফায়ারবেস প্রকল্প তৈরি করুন
  3. "একটি প্রকল্প তৈরি করুন " স্ক্রিনে, "গুগল ক্লাউড প্রকল্পে ফায়ারবেস যোগ করুন" এ ক্লিক করুন।
    গুগল ক্লাউড প্রজেক্টে ফায়ারবেস যোগ করুন
  4. শুরু করুন স্ক্রিনে, গুগল হোম ডেভেলপার কনসোলে আপনার তৈরি করা গুগল ক্লাউড প্রকল্পটি নির্বাচন করুন এবং তারপরে চালিয়ে যান ক্লিক করুন।
    গুগল ক্লাউড প্রোজেক্ট নির্বাচন করুন

পদ্ধতি ২: ফায়ারবেস সিএলআই এর মাধ্যমে

firebase projects:addfirebase

Firebase যোগ করার জন্য আপনার তৈরি করা Google Home Developer Console প্রকল্পটি নির্বাচন করুন।

যখন আপনার Google Home Developer Console প্রকল্পে Firebase যোগ করা হবে, তখন এটি Firebase কনসোলে প্রদর্শিত হবে। Firebase প্রকল্পের প্রকল্প আইডি আপনার Google Home Developer Console প্রকল্প আইডির সাথে সারিবদ্ধ হবে।

ক্লাউড প্রকল্প যোগ করা হয়েছে

Firebase-এর সাথে সংযোগ করুন

  1. camerastream-start ডিরেক্টরিতে নেভিগেট করুন এবং তারপর আপনার Actions প্রকল্পের সাথে Firebase CLI সেট আপ করুন:
$ cd camerastream-start
$ firebase use <project-id>
  1. camerastream-start ডিরেক্টরিতে, functions ফোল্ডারে যান এবং তারপরে সমস্ত প্রয়োজনীয় নির্ভরতা ইনস্টল করুন:
$ cd functions
$ npm install
  1. যদি আপনি নিম্নলিখিত বার্তাটি দেখেন, তাহলে এটি উপেক্ষা করুন। এই সতর্কতাটি পুরানো নির্ভরতার কারণে। আরও তথ্যের জন্য, এই GitHub সমস্যাটি দেখুন।
found 5 high severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
  1. একটি ফায়ারবেস প্রকল্প শুরু করুন:
$ firebase init
  1. ফাংশন এবং হোস্টিং নির্বাচন করুন। এটি আপনার প্রকল্পের জন্য প্রয়োজনীয় API এবং বৈশিষ্ট্যগুলি শুরু করে।
? Which Firebase features do you want to set up for this directory? Press Space to select features, then Enter
 to confirm your choices. (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to
 proceed)
>( ) Data Connect: Set up a Firebase Data Connect service
 ( ) Firestore: Configure security rules and indexes files for Firestore
 ( ) Genkit: Setup a new Genkit project with Firebase
 (*) Functions: Configure a Cloud Functions directory and its files
 ( ) App Hosting: Configure an apphosting.yaml file for App Hosting
 (*) Hosting: Configure files for Firebase Hosting and (optionally) set up GitHub Action deploys
 ( ) Storage: Configure a security rules file for Cloud Storage
 ( ) Emulators: Set up local emulators for Firebase products
 ( ) Remote Config: Configure a template file for Remote Config
 ( ) Extensions: Set up an empty Extensions manifest
 (*) Realtime Database: Configure a security rules file for Realtime Database and (optionally) provision
default instance
 ( ) Data Connect: Set up a Firebase Data Connect service
 ( ) Firestore: Configure security rules and indexes files for Firestore
  1. ডিফল্ট ফাইলগুলির সাথে ক্লাউড ফাংশন কনফিগার করুন এবং নিশ্চিত করুন যে আপনি প্রকল্পের নমুনায় বিদ্যমান index.js এবং package.json ফাইলগুলি ওভাররাইট করবেন না:
? Would you like to initialize a new codebase, or overwrite an existing one?
Overwrite

? What language would you like to use to write Cloud Functions?
JavaScript

? File functions/package.json already exists. Overwrite?
No

? File functions/index.js already exists. Overwrite?
No

? Do you want to install dependencies with npm now?
Yes
  1. প্রজেক্ট কোডে public ডিরেক্টরি ব্যবহার করে হোস্টিং কনফিগার করুন এবং বিদ্যমান index.html ফাইলটি ব্যবহার করুন:
? What do you want to use as your public directory?
public

? Configure as a single-page app (rewrite all urls to /index.html)?
Yes

? Set up automatic builds and deploys with GitHub?
No

? File public/index.html already exists. Overwrite?
 No

৩. এক্সচেঞ্জ সেশন ডেসক্রিপশন প্রোটোকল (SDP) বার্তা

WebRTC স্ট্রিম প্রতিষ্ঠার ক্ষেত্রে SDP বার্তা বিনিময় একটি গুরুত্বপূর্ণ পদক্ষেপ। SDP হল একটি টেক্সট-ভিত্তিক প্রোটোকল যা মাল্টিমিডিয়া সেশনের বৈশিষ্ট্য বর্ণনা করে। এটি WebRTC-তে পিয়ার-টু-পিয়ার সংযোগের পরামিতিগুলি, যেমন ব্যবহৃত কোডেক, অংশগ্রহণকারীদের IP ঠিকানা এবং মিডিয়া পরিবহনের জন্য ব্যবহৃত পোর্টগুলি নিয়ে আলোচনা করতে ব্যবহৃত হয়।

আপনার ওয়েবক্যাম এবং স্মার্ট হোম ক্যামেরাস্ট্রিম ক্লায়েন্ট অ্যাপের মধ্যে SDP বার্তা বিনিময়ের জন্য হোস্ট হিসেবে রিয়েলটাইম ডেটাবেস ব্যবহার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Firebase কনসোলে , Build > Realtime Database > Create database এ ক্লিক করুন।

ফায়ারবেস কনসোলে রিয়েলটাইম ডাটাবেস পৃষ্ঠা

  1. রিয়েলটাইম ডাটাবেস অবস্থান ড্রপ-ডাউন মেনুতে, আপনার ডাটাবেস হোস্ট করার জন্য একটি উপযুক্ত অবস্থান নির্বাচন করুন।

সেট আপ ডাটাবেস ডায়ালগে রিয়েলটাইম ডাটাবেস অবস্থান ড্রপ-ডাউন মেনু

  1. পরীক্ষা মোডে শুরু করুন নির্বাচন করুন এবং তারপর সক্ষম করুন এ ক্লিক করুন। রিয়েলটাইম ডেটাবেস সক্ষম থাকলে, আপনার ক্যামেরাস্ট্রিম ক্লায়েন্ট অ্যাপ থেকে এটি উল্লেখ করার ক্ষমতা থাকা প্রয়োজন।
  1. Firebase কনসোলে, নির্বাচন করুন 513f2be95dcd7896.png সম্পর্কে প্রকল্প সেটিংস > প্রকল্প সেটিংস > e584a9026e2b407f.png সেটআপ ওয়ার্কফ্লো চালু করতে আপনার ওয়েব অ্যাপে Firebase যোগ করুন
  2. যদি আপনি ইতিমধ্যেই আপনার Firebase প্রকল্পে একটি অ্যাপ যোগ করে থাকেন, তাহলে প্ল্যাটফর্ম বিকল্পগুলি প্রদর্শন করতে অ্যাপ যোগ করুন -এ ক্লিক করুন।
  3. অ্যাপটির জন্য একটি ডাকনাম লিখুন, যেমন My web app , এবং তারপর Register app এ ক্লিক করুন।
  4. Add Firebase SDK বিভাগে, Use <script> ট্যাগ নির্বাচন করুন।
  5. firebasebaseConfig অবজেক্ট থেকে মানগুলি কপি করুন এবং তারপর camaerastream-start/public/webrtc_generator.js ফাইলে পেস্ট করুন।
const firebaseConfig = {
  apiKey: "XXXXX",
  authDomain: "XXXXX",
  projectId: "XXXXX",
  storageBucket: "XXXXX",
  messagingSenderId: "XXXXX",
  appId: "XXXXX",
  measurementId: "XXXXX"
};
  1. প্রক্রিয়াটি সম্পূর্ণ করতে কনসোলে Continue এ ক্লিক করুন। আপনি Project সেটিংস পৃষ্ঠায় নতুন তৈরি ওয়েব অ্যাপটি দেখতে পাবেন।

৪. একটি WebRTC ক্যামেরা তৈরি করুন

এখন আপনি আপনার অ্যাকশন কনফিগার করেছেন, আপনার ক্লাউড পরিষেবাকে নিম্নলিখিত উদ্দেশ্যগুলি পরিচালনা করতে হবে:

  • যখন Assistant জানতে চায় যে ব্যবহারকারী কোন ডিভাইসগুলি সংযুক্ত করেছেন, তখন একটি SYNC ইনটেন্ট তৈরি হয়। ব্যবহারকারী যখন কোনও অ্যাকাউন্ট লিঙ্ক করেন, তখন এটি আপনার পরিষেবাতে পাঠানো হয়। ব্যবহারকারীর ডিভাইস এবং তাদের ক্ষমতার একটি JSON পেলোড দিয়ে আপনার প্রতিক্রিয়া জানানো উচিত।
  • যখন Assistant ব্যবহারকারীর পক্ষ থেকে কোনও ডিভাইস নিয়ন্ত্রণ করতে চায়, তখন একটি EXECUTE/QUERY ইনটেন্ট তৈরি হয়। প্রতিটি অনুরোধ করা ডিভাইসের এক্সিকিউশন স্ট্যাটাস সহ আপনাকে JSON পেলোড দিয়ে প্রতিক্রিয়া জানাতে হবে।

এই বিভাগে, আপনি এই উদ্দেশ্যগুলি পরিচালনা করার জন্য পূর্বে যে ফাংশনগুলি স্থাপন করেছিলেন তা আপডেট করবেন।

SYNC প্রতিক্রিয়া আপডেট করুন

  1. functions/index.js ফাইলে যান। এতে Assistant এর অনুরোধের উত্তর দেওয়ার কোড রয়েছে।
  2. ডিভাইসের মেটাডেটা এবং ক্ষমতা ফেরত দেওয়ার জন্য SYNC ইন্টেন্ট সম্পাদনা করুন:

ইনডেক্স.জেএস

app.onSync((body) => {
return {
  requestId: body.requestId,
  payload: {
    agentUserId: USER_ID,
    devices: [{
      id: 'camera',
      type: 'action.devices.types.CAMERA',
      traits: [
        'action.devices.traits.OnOff',
        'action.devices.traits.CameraStream',
      ],
      name: {
        defaultNames: ['My WebRTC Camera'],
        name: 'Camera',
        nicknames: ['Camera'],
      },
      deviceInfo: {
        manufacturer: 'Acme Co',
        model: 'acme-camera',
        hwVersion: '1.0',
        swVersion: '1.0.1',
      },
      willReportState: false,
      attributes: {
        cameraStreamSupportedProtocols:['webrtc'],
        cameraStreamNeedAuthToken: true, 
        cameraStreamSupportsPreview: true
      },
    }],
  },
};
});
  1. কোডটিতে USER_ID সংজ্ঞায়িত করা হয়নি। const _ = require('underscore'); এর অধীনে নিম্নলিখিতটি যোগ করুন:
// Hardcoded user ID
const USER_ID = '123';

EXECUTE ইন্টেন্ট পরিচালনা করুন

EXECUTE ইন্টেন্ট ডিভাইসের অবস্থা আপডেট করার জন্য কমান্ড পরিচালনা করে। প্রতিক্রিয়া প্রতিটি কমান্ডের অবস্থা ফেরত দেয়—যেমন, SUCCESS , ERROR , অথবা PENDING এবং নতুন ডিভাইসের অবস্থা।

একটি EXECUTE ইন্টেন্ট পরিচালনা করতে, functions/index.js ফাইলে Firebase প্রকল্পের signaling এন্ডপয়েন্ট ফেরত দেওয়ার জন্য EXECUTE ইন্টেন্ট সম্পাদনা করুন:

ইনডেক্স.জেএস

app.onExecute(async (body,headers) => {
  var array = headers.authorization.split(' ');
  var snapshot = await firebaseRef.ref('/userId/'+array[1]).once('value');
  var offerGenLocation = snapshot.val().type;
  const {requestId} = body;

  var result = {
    status: 'SUCCESS',
    states: {
      cameraStreamProtocol: 'webrtc',
      cameraStreamSignalingUrl:'https://us-central1-<project-id>.cloudfunctions.net/signaling?token='+array[1], // TODO: Add Firebase hosting URL
      cameraStreamIceServers: '',
      cameraStreamOffer:'',
      cameraStreamAuthToken:'',
    },
    ids: [ 
      'camera'
    ],
  };
  
  return {
    requestId: requestId,
    payload: {
      commands: [result],
    },
  };
});

ক্রস-অরিজিন রিসোর্স শেয়ারিং (CORS) পরিচালনা করুন

SDP পাঠানোর জন্য POST পদ্ধতি ব্যবহারের কারণে CORS পরিচালনা করতে, functions/index.js ফাইলের allowlist অ্যারেতে Firebase Hosting URL যোগ করুন:

ইনডেক্স.জেএস

'use strict';
.....

var allowList = ['https://www.gstatic.com','https://<project-id>.web.app']; //TODO Add Firebase hosting URL.

CORS সম্পর্কে আরও তথ্যের জন্য, ক্রস-অরিজিন রিসোর্স শেয়ারিং (CORS) দেখুন।

স্ট্রিম টার্মিনেশন হ্যান্ডেল করুন

WebRTC স্ট্রিম টার্মিনেশন পরিচালনা করতে, public/webrtc_generator.js ফাইলে Firebase 'signaling' ফাংশন URL যোগ করুন:

webrtc_generator.js সম্পর্কে

terminateButton.onclick = function(){
  console.log('Terminating Stream!!')
  var signalingURL = 'https://us-central1-<project-id>.cloudfunctions.net/signaling'; //TODO Add Firebase hosting URL
   var http = new XMLHttpRequest();

ফায়ারবেসে স্থাপন করুন

Firebase-এ স্থাপন করতে, Firebase CLI-এর সাথে আপডেট করা ক্লাউড পরিপূর্ণতা স্থাপন করুন:

$ firebase deploy

এই কমান্ডটি Firebase-এর জন্য একটি ওয়েব অ্যাপ এবং বেশ কয়েকটি ক্লাউড ফাংশন স্থাপন করে:

...

✔ Deploy complete!

Project Console: https://console.firebase.google.com/project/<project-id>/overview
Hosting URL: https://<project-id>.web.app

আপনার ডেভেলপার কনসোল প্রকল্পটি কনফিগার করুন

  1. ডেভেলপার কনসোলে যান।
  2. প্রকল্প তৈরি করুন ক্লিক করুন, প্রকল্পের জন্য একটি নাম লিখুন এবং প্রকল্প তৈরি করুন ক্লিক করুন।

প্রকল্পের নাম

ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশন নির্বাচন করুন

ডেভেলপার কনসোলের প্রজেক্ট হোমে , ক্লাউড-টু- ক্লাউড এর অধীনে ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশন যোগ করুন নির্বাচন করুন।

ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশন যোগ করুন

  1. একটি ইন্টিগ্রেশন নাম লিখুন, এবং ডিভাইসের ধরণ এর অধীনে ক্যামেরা নির্বাচন করুন। এই নামটি পরে Google Home অ্যাপে প্রদর্শিত হবে যখন সেট আপ করার জন্য একটি ডিভাইস থাকবে। এই কোডল্যাবের জন্য, আমরা প্রদর্শন নাম হিসাবে WebRTC Codelab লিখেছি, তবে আপনি একটি ভিন্ন নাম ব্যবহার করতে পারেন।

একটি প্রদর্শন নাম যোগ করুন

  1. অ্যাপ ব্র্যান্ডিং এর অধীনে, অ্যাপ আইকনের জন্য একটি png ফাইল আপলোড করুন, যার আকার 144 x 144px এবং নামকরণ করা হবে। .png .

একটি অ্যাপ আইকন যোগ করুন

অ্যাকাউন্ট লিঙ্কিং সক্ষম করুন

আপনার প্রকল্পটি স্থাপনের পরে অ্যাকাউন্ট লিঙ্কিং সক্ষম করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ডেভেলপার কনসোলে যান এবং প্রকল্পটি খুলুন।
  2. ক্লাউড-টু-ক্লাউড বিভাগের অধীনে, ইন্টিগ্রেশনের পাশে ডেভেলপ > এডিট ক্লিক করুন।
  3. সেটআপ এবং কনফিগারেশন পৃষ্ঠায়, অ্যাকাউন্ট লিঙ্কিং বিভাগটি খুঁজুন এবং সংশ্লিষ্ট টেক্সট বাক্সগুলিতে নিম্নলিখিত তথ্য লিখুন:

ক্লায়েন্ট আইডি

ABC123

ক্লায়েন্ট গোপনীয়তা

DEF456

অনুমোদনের URL

https://us-central1-
.cloudfunctions.net/fakeauth

টোকেন ইউআরএল

https://us-central1-
.cloudfunctions.net/faketoken

অ্যাকাউন্ট লিঙ্কিং URL গুলি আপডেট করুন

  1. সংরক্ষণ করুন > পরীক্ষা করুন ক্লিক করুন।

৫. ভার্চুয়াল WebRTC ক্যামেরা পরীক্ষা করুন

  1. আপনার Firebase প্রকল্প স্থাপনের সময় আপনি যে হোস্টিং URL টি দেখেছিলেন তাতে নেভিগেট করুন। আপনি নিম্নলিখিত ইন্টারফেসটি দেখতে পাবেন, যা হল CameraStream ক্লায়েন্ট অ্যাপ:

ক্যামেরাস্ট্রিম ক্লায়েন্ট অ্যাপ ইন্টারফেস

  1. লোকাল ভিডিও রেজোলিউশন প্যানেলে, পছন্দসই ভিডিওটি নির্বাচন করুন।
  2. আপনার ওয়েবক্যাম এবং মাইক্রোফোন অ্যাক্সেস করার জন্য ক্যামেরাস্ট্রিম ক্লায়েন্ট অ্যাপটিকে অনুমতি দিন। আপনার ওয়েবক্যাম থেকে একটি ভিডিও ফিড ক্লায়েন্টে প্রদর্শিত হবে।
  1. Google Home অ্যাপে, Add > Works with Google এ ট্যাপ করুন।

গুগল হোম অ্যাপে একটি ডিভাইস সেট আপ করুন পৃষ্ঠা

  1. আপনার তৈরি করা অ্যাকশনটি অনুসন্ধান করুন এবং তারপর এটি নির্বাচন করুন।

গুগল হোম অ্যাপে স্মার্ট হোম অ্যাকশন

  1. অনন্য, পাঁচ-অক্ষরের, বর্ণানুক্রমিক কোডটি নোট করুন কারণ এটি আপনার পরে প্রয়োজন হবে।

অনন্য, পাঁচ-অঙ্কের, বর্ণানুক্রমিক কোড

  1. "আমাকে ফিরিয়ে আনুন" এ ট্যাপ করুন। Google Home অ্যাপে আপনার কাঠামোতে WebRTC ক্যামেরা যোগ করা হয়েছে।

একটি WebRTC স্ট্রিম শুরু করুন

  1. CameraStream ক্লায়েন্ট অ্যাপের ওয়েব পৃষ্ঠায়, অ্যাকাউন্ট লিঙ্কিং টোকেন মান টেক্সট বক্সের শেষ অংশ থেকে আলফানিউমেরিক কোডটি লিখুন এবং তারপর Submit এ ক্লিক করুন।

অ্যাকাউন্ট লিঙ্কিং টোকেন মান টেক্সট বক্স

  1. আপনার Google স্মার্ট ডিসপ্লে ডিভাইস থেকে একটি WebRTC সেশন শুরু করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
  • "হ্যালো গুগল, WebRTC ক্যামেরা স্ট্রিম করো" বলুন।
  • আপনার Google স্মার্ট ডিসপ্লে ডিভাইসে, হোম কন্ট্রোল > ক্যামেরা > WebRTC ক্যামেরা ট্যাপ করুন।

গুগল স্মার্ট হোম ক্যামেরাস্ট্রিম ক্লায়েন্ট অ্যাপ থেকে, আপনি দেখতে পাবেন যে অফার এসপিডি এবং উত্তর এসডিপি সফলভাবে তৈরি এবং বিনিময় করা হয়েছে। আপনার ওয়েবক্যাম থেকে ছবিটি ওয়েবআরটিসি ব্যবহার করে আপনার গুগল স্মার্ট ডিসপ্লে ডিভাইসে স্ট্রিম করা হয়েছে।

৬. অভিনন্দন

অভিনন্দন! আপনি WebRTC প্রোটোকল ব্যবহার করে আপনার ওয়েবক্যাম থেকে Google Nest ডিসপ্লে ডিভাইসে স্ট্রিমিং শিখেছেন।

আরও জানুন