[LinkIt Smart 7688] MCS新功能:即時影像串流頻道

 

大家好~ 我是偉和,最近MediaTek Cloud SandBox 加入了兩種新的資料通道:Video StreamImage,本文要來介紹如何在 MCS 上即時觀看 7688 上的 webcam 影像,這樣不論您人在何方,只要連到 MCS 就可以看到影像,遠端影像監控功能就完成啦!

請注意,MCS 說明每個裝置的每月流量為 3GB,但如果每個裝置是指測試裝置的話…   那只要重新建立測試裝置就好啦,ㄎㄎ

0001

160224 物聯網IoT體驗夜

原文網址

在使用Video Stream功能前我們要先建立產品原型

  • 產品原型名稱:7688_video
  • 產品原型版本:1.0
  • 硬體平台:Linkit Smart 7688(MT7688)
  • 產業:教育
  • 應用程式:其他

除了硬體平台之外其他都可更改

輸入完畢後按下詳情進入原型設計

在產品詳情頁面中,按下”新增”按鈕新增新的資料通道

由於我們要將7688的影像串流到MCS上面,所以要新增的資料通道類型請選擇”影像串流”

請先選擇”顯示器“,接著完成以下設定:

  • 資料通道名稱:video
  • 資料通道ID:video
  • 資料型態:影像串流

(注意!資料通道ID須為英文)

在原型中建立好資料通道後,我們要新增測試裝置

測試裝置名稱自行命名,在此為 test
這樣MCS端就準備完成!
其中有幾個要特別留意DeviceID、DeviceKey、資料通道Id這三個是讓我們7688與MCS溝通的重要資訊
以我的為例子
DeviceID:Db4pn6WV
DeviceKey:mxiEyDmigaJgBy1O
資料通道id:video
確認完畢後接著到LinkIt Smart7688端。在撰寫程式前要先確認7688是否為station mode,也就是連上外部網路。
若不是station mode則會無法將影像資料串流到MCS上
透過ssh遠端連進7688後,首先要先安裝FFmpeg
opkg update
opkg install ffmpeg

安裝完畢後,安裝7688的mcs環境

mkdir app && cd app npm init
npm install mcsjs

完成後將現在的位置移動到 /app/node_modules下

cd /app/node_modules

新增Javascript程式:app.js

vim app.js

輸入i後,將下面的程式碼複製貼上至編輯器裡,記得要將deviceId、deviceKey及dataChnId裡的變數(藍色的部分)更改成您的

var mcs = require('mcsjs');
var exec = require('child_process').exec;
var deviceId = 'Input your deviceId';
var deviceKey = 'Input your deviceKey';
var dataChnId = 'Input your `video stream` data channel Id';
var width = 176;
var height = 144;
var myApp = mcs.register({
  deviceId: deviceId,
  deviceKey: deviceKey,
});
exec('ffmpeg -s ' + width + 'x' + height + ' -f video4linux2 -r 30 -i /dev/video0 -f mpeg1video -r 30 -b 800k http://stream-mcs.mediatek.com/' + deviceId + '/' +deviceKey + '/' + dataChnId + '/' + width + '/' + height, function(error, stdout, stderr) {
  console.log('stdout: ' + stdout);
  console.log('stderr: ' + stderr);
  if (error !== null) {
    console.log('exec error: ' + error);
  }
});
完畢後按下ESC 並輸入”:wq”退出vi編輯器,接著輸入以下指令來執行程式
node app

就可以看到影像串流至MCS上,按下暫停鈕即可停止播放。

0001

 

2 thoughts on “[LinkIt Smart 7688] MCS新功能:即時影像串流頻道

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *