大家好~ 我是偉和,最近MediaTek Cloud SandBox 加入了兩種新的資料通道:Video Stream 與 Image,本文要來介紹如何在 MCS 上即時觀看 7688 上的 webcam 影像,這樣不論您人在何方,只要連到 MCS 就可以看到影像,遠端影像監控功能就完成啦!
請注意,MCS 說明每個裝置的每月流量為 3GB,但如果每個裝置是指測試裝置的話… 那只要重新建立測試裝置就好啦,ㄎㄎ
在使用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
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
請問攝影機型號是?
Logitech C170, 但我想一般的 USB webcam 都可以