日韩美女乱婬AAA高清视频_国产色爱AV资源综合区_国产女同性黄网在线观看_欧美日韩一卡2卡3卡4卡新区乱码_俺来也俺也啪www色_精品久久久久久综合日本_99国内偷揿国产精品人妻_国产蜜芽剧果冻传媒_日本特级aaaaaaaa片_国产偷人妻精品一区二区在线

簡體中文

雙目攝像頭拉流方法

Ceres多通道拉流實現(xiàn)指南 | TUTK SDK 開發(fā)手冊

一、概述

本文檔聚焦Ceres多通道(通道0/1)拉流的核心實現(xiàn)方案,明確服務(wù)器、音箱端(Alexa/Google Hub)和設(shè)備端的關(guān)鍵操作步驟,適配雙路流并行傳輸場景。
核心原則:
  • 通道0既支持指令傳輸也支持流傳輸,通道1僅支持流傳輸;
  • 服務(wù)器采用串行方式建立多通道,設(shè)備端需延長通道創(chuàng)建超時時間;
  • 音箱端需發(fā)起兩次獨立拉流請求,分別對應(yīng)通道0和通道1;
  • 基于account標識和IOTC_Channel_ID區(qū)分通道類型,實現(xiàn)精準流傳輸控制。

二、API參考

多通道拉流僅使用拉流初始化接口,無需額外新增接口,支持以下3種認證類型的初始化接口:

(一)支持的拉流初始化接口

  • init_streaming:P2P場景下基于 account/password 認證
  • init_streaming_v3:P2P場景下基于 avtoken/identity 認證
  • init_streaming_v4:基于設(shè)備 credential 認證
  • 接口請求地址:https://domain:port/ceres(POST方法,Content-Type: application/json),接口請參考:Ceres拉流接口

(二)核心參數(shù)配置

通道必填參數(shù)參數(shù)值說明
通道0channel0明確指定通道編號
account(init_streaming)/ identity(init_streaming_v3)ceres-channel-0通道標識,可自定義但需與通道1區(qū)分
通道1channel1明確指定通道編號
account(init_streaming)/ identity(init_streaming_v3)ceres-channel-1必須與通道0的標識嚴格區(qū)分

三、Ceres服務(wù)器實現(xiàn)

服務(wù)器接收拉流請求后,按通道編號執(zhí)行不同的連接邏輯,核心流程如下:

1. 通道0請求處理(channel=0)

  • 直接與目標設(shè)備建立連接;
  • 創(chuàng)建通道0的 AV Channel;
  • 在通道0上發(fā)送流控制指令(IOTYPE_USER_IPCAM_START、IOTYPE_USER_IPCAM_AUDIOSTART);
  • 拉取通道0的流數(shù)據(jù)。

2. 通道1請求處理(channel=1)

  • 與目標設(shè)備建立連接;
  • 先創(chuàng)建通道0的 AV Channel,通過通道0發(fā)送流控制指令;
  • 再創(chuàng)建通道1的 AV Channel;
  • 拉取通道1的流數(shù)據(jù)。

注意事項

服務(wù)器采用串行方式創(chuàng)建多通道(先通道0后通道1),設(shè)備端需將通道創(chuàng)建超時時間延長至合理值(建議≥30秒),避免連接失敗。

四、音箱端(Alexa/Google Hub)實現(xiàn)

音箱端需通過兩次獨立拉流請求獲取雙路流地址,核心步驟如下:

1. 發(fā)起拉流請求

  • 調(diào)用拉流初始化接口(支持上述3種接口),分別發(fā)起通道0和通道1的拉流請求;
  • 兩次請求的設(shè)備標識(device/UDID)必須一致,確保指向同一設(shè)備;
  • 按參數(shù)配置要求填寫 channel 和 account/identity 字段(通道0填0和ceres-channel-0,通道1填1和ceres-channel-1)。

2. 流拉取與播放

  • 接收服務(wù)器返回的兩個拉流URL(分別對應(yīng)通道0和通道1);
  • 并行拉取兩路流數(shù)據(jù),分別解碼播放;
  • 無需額外處理指令交互,僅需關(guān)注流數(shù)據(jù)的拉取與播放穩(wěn)定性。

3. 示例請求(通道0 curl)

通道0拉流請求(curl命令)
curl -XPOST -d 'query { init_streaming(   authToken:"dm verify token",   authType:"Bearer",   device:"device UID",   account:"ceres-channel-0",   password:"secret",   protocol:"rtsp",   realm:"rd",   state:"state",   channel:0 ){   code,   url,   msg } }' https://domain:port/ceres

4. 示例請求(通道1 curl)

通道1拉流請求(curl命令)
curl -XPOST -d 'query { init_streaming(   authToken:"dm verify token",   authType:"Bearer",   device:"device UID",   account:"ceres-channel-1",   password:"secret",   protocol:"rtsp",   realm:"rd",   state:"state",   channel:1 ){   code,   url,   msg } }' https://domain:port/ceres

五、設(shè)備端實現(xiàn)

設(shè)備端需監(jiān)聽服務(wù)器連接請求,創(chuàng)建雙AV通道并按規(guī)則處理流傳輸,核心步驟如下:

1. 通道創(chuàng)建

  • 監(jiān)聽Ceres服務(wù)器的連接請求;
  • 通過 IOTC_Channel_ID(0)IOTC_Channel_ID(1) 創(chuàng)建兩個獨立的 AV Channel;
  • 延長通道創(chuàng)建超時時間(建議≥30秒),適配服務(wù)器串行創(chuàng)建邏輯。

2. 身份判斷與流傳輸控制

基于 avServStartEx 接口的 outConfig.account 值判斷通道類型,按以下規(guī)則處理流傳輸:
設(shè)備端核心邏輯偽代碼
// 設(shè)備端核心邏輯偽代碼 if (outConfig.account == "ceres-channel-0") { // 通道0:收到控制指令后開始傳流 if (receivedCmd == IOTYPE_USER_IPCAM_START || receivedCmd == IOTYPE_USER_IPCAM_AUDIOSTART) {   startStream(IOTC_Channel_ID = 0); // 傳輸通道0的流 } } else if (outConfig.account == "ceres-channel-1") { if (IOTC_Channel_ID == 1) {   // 通道1:直接傳流,無需等待控制指令   startStream(IOTC_Channel_ID = 1); // 傳輸通道1的流 } else if (IOTC_Channel_ID == 0 && (receivedCmd == IOTYPE_USER_IPCAM_START || receivedCmd == IOTYPE_USER_IPCAM_AUDIOSTART)) {   // 通道0收到通道1的指令:僅用于指令傳輸,忽略并不傳流   ignoreCmd(); } }

3. 關(guān)鍵規(guī)則說明

  • 通道0(account=ceres-channel-0):必須收到控制指令后才傳流,支持指令+流雙重傳輸;
  • 通道1(account=ceres-channel-1):
    • 若IOTC_Channel_ID=1:直接傳流,服務(wù)器不會在該通道發(fā)送控制指令;
    • 若IOTC_Channel_ID=0:僅作為指令傳輸通道,收到控制指令后忽略,不觸發(fā)流傳輸。

即刻開啟您的物聯(lián)網(wǎng)之旅

聯(lián)系解決方案專家
Kalay App
資訊安全白皮書
全球?qū)@季?/a>
解決方案
新聞動態(tài)
公司動態(tài)
行業(yè)資訊
媒體報道
永續(xù)發(fā)展
經(jīng)營者的話
社會參與
環(huán)境永續(xù)
公司治理

+86 755 27702549

7×24小時服務(wù)熱線

法律聲明 隱私權(quán)條款

關(guān)注“TUTK”

TUTK服務(wù)盡在掌握

? 2022 物聯(lián)智慧科技(深圳)有限公司版權(quán)所有粵ICP備14023641號
在線咨詢
掃一掃

TUTK服務(wù)盡在掌握

全國免費服務(wù)熱線
+86 755 27702549

返回頂部