本文列出 Google Meet 會議系統支援的 USB 視訊類別擴充單元 (XU) API,這些 API 可啟用智慧攝影機功能。建立這項規格的目的,是為了影響做法,以啟用這些功能,並讓合作夥伴能進行更完善的非同步擴充性和測試。
如要瞭解這份文件的最新異動,請參閱「版本資訊」。
測試設施
為協助合作夥伴驗證是否符合這項規格,我們在設為開發人員模式的 Chromebox for Meetings 裝置中提供測試設施。啟用寫入檔案系統。在 /etc/chrome_dev.conf
中新增下列程式碼:
--enable-logging
--log-level=0
重新啟動裝置,連接攝影機和 USB 鍵盤,按下 Ctrl-Alt-X
,系統會執行並記錄有效攝影機的規格相容性至 /var/log/chrome/chrome
(如果使用已簽署的映像檔,則為 /home/chronos/user/log/chrome
)。
小端序慣例
USB 是 little-endian 標準,本文件內容:
- 多位元組數字會以大端序顯示 (並以小端序傳輸)。
- 位元組陣列採用小端記憶體配置。
舉例來說,0x12345678
等於 [0x78, 0x56, 0x34, 0x12]
。
擴充單元 GUID
支援這項 Meet XU 控制項規格的擴充單元必須使用這個 GUID。
擴充單元 | GUID |
---|---|
周邊裝置控制 XU | {74D7E924-49C9-4A45-98A3-8A9F60061E83} |
周邊控制 XU 選取器
這些是定義的周邊控制 XU 選取器。
控制項選取器 | 值 |
---|---|
GOOGXU_FRAME_STRATEGY |
0x01 |
GOOGXU_REFRAME |
0x02 |
GOOGXU_OCCUPANCY_COUNTING_TOGGLE |
0x03 |
GOOGXU_OCCUPANCY_COUNTING_READ |
0x04 |
GOOGXU_STATUS_INFO |
0x05 |
GOOGXU_STATUS_RESET |
0x06 |
GOOGXU_PRESETS |
0x07 |
GOOGXU_PAN_TILT_ABSOLUTE |
0x08 |
GOOGXU_PAN_TILT_RELATIVE |
0x09 |
GOOGXU_SATELLITE_INFO |
0x0A |
控制要求類型
控制要求類型定義於《UVC 1.5 類別規格》第 4 章:類別專屬要求。
作業 | UVC 控制項 |
---|---|
GET |
GET_CUR ,GET_MIN ,GET_MAX ,GET_RES ,GET_LEN ,GET_INFO ,GET_DEF |
SET |
SET_CUR |
相機模式
攝影機模式可用於在會議室中拍攝個人,並提供以下功能:tuple
- 策略 (攝影機畫面)
- 偏誤 (講者或會議室)
- 動態饋給 (單一或多個串流)
每個維度可採用下列各節所述的值。
自動取景策略
除了「無」以外,在所有自動取景模式中,手動平移、傾斜和縮放功能都會停用。
自動取景偏誤
功能 | 說明 |
---|---|
高風險簡報者 (講者追蹤) | 攝影機會盡量將正在說話的人置於畫面中央。 在這種情況下,攝影機應以簡報者為中心。例如:執行長在會議室中進行簡報。 |
協作 (會議室追蹤) |
攝影機會盡量將會議室中的所有參與者納入畫面。在這種情況下,攝影機應公平對待每位與會者。 |
自動取景動態消息
功能 | 說明 |
---|---|
單一串流 | 攝影機會將單一視訊串流傳送至主機。 |
多重串流 (開發中) |
攝影機會分割串流,並建立多個視訊串流傳送給主辦人。 注意:這項功能的完整規格和預期行為仍在審查中,目前不支援,直到本文件後續修訂為止。 |
自動取景模式點陣圖值
除了以空白位元組陣列表示的 None
預設狀態外,位元組陣列中的每個位元都代表不同的攝影機模式,也就是自動取景策略、自動取景偏好設定和自動取景動態饋給的特定組合。
自動取景動態消息 | CAZ | 分割畫面 | 動態 | 供應商偏好 | 自動取景偏誤 |
---|---|---|---|---|---|
單一串流 | D1 D2 |
- D3 |
D5 D7 |
D9 (講者或會議室) | 喇叭 Room |
多重串流 | - - |
- D4 |
D6 D8 |
- | 喇叭 Room |
影格模式 | 影格模式值 (最低有效位元組) |
---|---|
None |
0x0000 |
CAZ, Speaker, Single-Stream |
0x0001 |
CAZ, Room, Single-Stream |
0x0002 |
Split-Frame, Room, Single-Stream |
0x0004 |
Split-Frame, Room, Multi-Stream |
0x0008 |
Dynamic, Speaker, Single-Stream |
0x0010 |
Dynamic, Speaker, Multi-Stream |
0x0020 |
Dynamic, Room, Single-Stream |
0x0040 |
Dynamic, Room, Multi-Stream |
0x0080 |
Vendor-preferred, Single-Stream |
0x0100 |
控制項:GOOGXU_FRAME_STRATEGY
這個控制項可用於取得或設定相機的取景模式,如「自動取景模式點陣圖值」一文所列。每個模式都會以各自點陣圖中的位元表示。指令 GET_RES
會傳回 8 位元組的位元遮罩,值為零 (0) 或一 (1),分別表示裝置不支援或支援該功能。舉例來說,如果攝影機支援 CAZ, Speaker, Single-Stream
、Split-Frame, Room, Single-Stream
和 Dynamic, Room, Multi-Stream
,但不支援其他模式,則 GET_RES
應傳回 0x000000000000000085 (即 0b10000101
後接七個零位元組)。
SET_CUR
指令用於傳送點陣圖,告知攝影機要啟用哪種SINGLE攝影機模式。
控制項選取器 | 1 | |||
---|---|---|---|---|
作業 | GET / SET |
|||
wLength |
8 | |||
偏移 | 欄位 | 大小 | 值 | 說明 |
0 | bActiveMode |
8 | 點陣圖 | 設定或返回「Active Camera Mode」(作用中攝影機模式) |
注意:
|
支援的要求類型行為如下:
偏移 | 0 | 說明 |
---|---|---|
GET_CUR |
取得 Active Framing 攝影機模式 | |
GET_MIN |
視攝影機而定 | |
GET_MAX |
視攝影機而定 | |
GET_RES |
傳回支援的攝影機模式的 8 位元組長位元遮罩 | |
GET_LEN |
0x0008 | 長度 |
GET_INFO |
0x0B | AutoUpdate / Write / Read |
GET_DEF |
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
預設值 |
SET_CUR |
設定「自動取景」攝影機模式 |
控制項:GOOGXU_REFRAME
這項控制項用於觸發單次取景,又稱為 OTAZ。OTAZ 觸發後,攝影機畫面會自動切換至會議室的最佳畫面。之後,用戶端就能重新控制 PTZ 值。如果攝影機不支援單次取景,就不應定義這項控制項。
控制項選取器 | 2 | |||
---|---|---|---|---|
作業 | SET |
|||
wLength |
1 | |||
偏移 | 欄位 | 大小 | 值 | 說明 |
0 | bReframe |
1 | 數字 | 0x01 執行重新構圖要求 |
支援的要求類型行為如下:
偏移 | 0 | 說明 |
---|---|---|
GET_MIN |
0x00 | |
GET_MAX |
0x01 | |
GET_RES |
0x01 | |
GET_LEN |
0x0001 | |
GET_INFO |
0x02 | 唯寫 |
GET_DEF |
0x00 | |
SET_CUR |
設定單格取景要求 |
人數計算
入座人數計算 (OC) 功能可估算會議室中的參與者人數,即使攝影機畫面經過裁剪也沒問題。
下表說明 OC 控制項的預期行為,以及這些控制項與攝影機影片串流和攝影機 LED 指示燈的互動情形。
當人數計算功能 | & 攝影機影片串流為: | 攝影機 LED 指示燈應為 | GOOGXU_OCCUPANCY_COUNTING_TOGGLE GET_CUR 應為 |
GOOGXU_OCCUPANCY_COUNTING_READ GET_CUR 應為 |
---|---|---|---|---|
已啟用 | 未串流且未設為靜音 | 開啟 | 0x01 |
攝影機完整視野範圍內的人數。 |
已啟用 | 串流 | 開啟 | 0x01 |
攝影機完整視野範圍內的人數。 |
已啟用 | 已略過 | 關閉 | 0x01 |
已關閉 |
已關閉 | 未串流且未設為靜音 | 關閉 | 0x00 |
已關閉 |
已關閉 | 串流 | 開啟 | 0x00 |
已關閉 |
已關閉 | 已略過 | 關閉 | 0x00 |
已關閉 |
控制項:GOOGXU_OCCUPANCY_COUNTING_TOGGLE
這項控制選項可用來啟用或停用計算房間人數的功能。將值設為零 (0) 會停用這項功能,設為一 (1) 則會啟用。如果攝影機不支援這項功能,就不應定義這項控制項。
控制項選取器 | 3 | |||
---|---|---|---|---|
作業 | GET / SET |
|||
wLength |
1 | |||
偏移 | 欄位 | 大小 | 值 | 說明 |
0 | bOccupancy |
1 | 布林值 | 設定入座率計算功能 0x00 關閉功能 0x01 開啟功能 |
支援的要求類型行為如下:
偏移 | 0 | 說明 |
---|---|---|
GET_CUR |
傳回入座率計算功能是否已開啟 | |
GET_MIN |
0x00 | |
GET_MAX |
0x01 | |
GET_RES |
0x01 | |
GET_LEN |
0x0001 | |
GET_INFO |
0x0B | AutoUpdate / Write / Read |
GET_DEF |
0x00 | |
SET_CUR |
啟用或停用入座率計算功能 |
控制項:GOOGXU_OCCUPANCY_COUNTING_READ
啟用入座率計算功能後,這項控制項會讀取攝影機回報的會議室參與者人數。如果停用人數計算功能,攝影機應停用這項控制項。如果攝影機不支援人數計算功能,就不應定義這項控制項。
控制項選取器 | 4 | |||
---|---|---|---|---|
作業 | GET |
|||
wLength |
2 | |||
偏移 | 欄位 | 大小 | 值 | 說明 |
0 | bNumPeople |
2 | 數字 | 畫面中偵測到的居住者人數。(唯讀) |
支援的要求類型行為如下:
偏移 | 0 | 說明 |
---|---|---|
GET_CUR |
傳回偵測到的居住者人數 | |
GET_MIN |
0x0000 | |
GET_MAX |
0x00FF | |
GET_RES |
0x0001 | |
GET_LEN |
0x0002 | |
GET_INFO |
0x09 | AutoUpdate / Read |
GET_DEF |
0x0000 |
裝置遙測與診斷
這些控制項旨在鼓勵使用者採用更完善的 Meet 設備偵錯做法,通常不會向使用者顯示。
控制項:GOOGXU_STATUS_INFO
這個控制項用於查詢主機攝影機的資訊,並與合作夥伴分享以進行偵錯。
控制項選取器 | 5 | |||
---|---|---|---|---|
作業 | GET |
|||
wLength |
8 | |||
偏移 | 欄位 | 大小 | 值 | 說明 |
0 | bNumCameras |
1 | 數字 | 附加至主攝影機的額外衛星數量,可能會影響傳回主機的攝影機串流。 |
1 | bIsMoving |
1 | 點陣圖 | 攝影機閒置時為 0,PTZ 值變更時為非零值。供應商可自由將不同軸或馬達對應至不同位元。 |
2 | Undef |
6 | Undef | 日後將擴大服務範圍。 |
支援的要求類型行為如下:
偏移 | 0 | 1 | 2 | 說明 |
---|---|---|---|---|
GET_MIN |
0x00 | 0x00 | 0x00 0x00 0x00 0x00 0x00 0x00 |
|
GET_MAX |
0xFF | 0xFF | 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF |
|
GET_RES |
0x01 | 0x01 | 0x01 0x00 0x00 0x00 0x00 0x00 |
|
GET_LEN |
0x08 | 0x00 | 0x0008 | |
GET_INFO |
0x09 | AutoUpdate / Read | ||
GET_DEF |
0x00 | 0x00 | 0x00 0x00 0x00 0x00 0x00 0x00 |
控制項:GOOGXU_SATELLITE_INFO
這個控制項用於查詢連線至攝影機系統的衛星裝置。
控制項選取器 | 0x0A | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
作業 | GET |
|||||||||||
wLength |
20 | |||||||||||
偏移 | 欄位 | 大小 | 值 | 說明 | ||||||||
0 | bSatelliteList |
20 | 點陣圖 | 系統所連線的衛星類型清單。包括四個獨立的 5 位元組時段。每個時段的說明如下:
|
支援的要求類型行為如下:
偏移 | 0 | 說明 |
---|---|---|
GET_MIN |
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
|
GET_MAX |
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF |
|
GET_RES |
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
|
GET_LEN |
0x14 | 20 個位元組 |
GET_INFO |
0x09 | AutoUpdate / Read |
GET_DEF |
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
控制項:GOOGXU_STATUS_RESET
這個控制項用於向攝影機發出重設要求。設定值為一 (1) 時,攝影機會要求重設。如果自上次重設後,攝影機未收到重新啟動要求,則會傳回零 (0);如果正在重設,則會傳回一 (1)。重設作業必須觸發攝影機重新啟動。(如果裝置自行供電,強制中斷 USB 連線來模擬熱插拔就沒有意義,因此需要這個功能)。
控制項選取器 | 6 | |||
---|---|---|---|---|
作業 | GET / SET |
|||
wLength |
1 | |||
偏移 | 欄位 | 大小 | 值 | 說明 |
0 | bResetRequest |
1 | 布林值 | 向主機和連線攝影機發出重設要求。 如果自上次重設後發出重設要求,則傳回 0x01,否則傳回 0x00。 |
支援的要求類型行為如下:
偏移 | 0 | 說明 |
---|---|---|
GET_MIN |
0x00 | |
GET_MAX |
0x01 | |
GET_RES |
0x01 | |
GET_LEN |
0x0001 | |
GET_INFO |
0x03 | 寫入 / 讀取 |
GET_DEF |
0x00 |
PTZ 預設
用於將攝影機的視野範圍設定及還原至預設位置。
控制項:GOOGXU_PRESETS
這個控制項用於將攝影機的平移、傾斜和變焦 (PTZ) 值設為預設設定。
Preset Action
用於說明指令的預期動作。設定值為一 (1) 時,會將目前的平移、傾斜和縮放值對應至提供的預設索引。如果將值設為 2,相機的平移、傾斜和變焦應會轉換為先前為所提供索引對應的值,或預設出廠座標 (如果先前未對應)。將值設為三 (3) 會將索引重設為原廠預設座標。
Preset Index
用於指定對應至索引的 PTZ 座標。零 (0) 的 Preset index
會對應至初始座標,且當 GOOGXU_FRAME_STRATEGY
設為 NONE
時,應為攝影機在喚醒時的預設位置。
控制項選取器 | 7 | |||
---|---|---|---|---|
作業 | SET |
|||
wLength |
2 | |||
偏移 | 欄位 | 大小 | 值 | 說明 |
0 | bPresetAction |
1 | 數字 | 0x01:儲存預設集 0x02:還原預設集 0x03:將預設集重設為預設值。(預設值應為有效的預設座標)。 |
1 | bPresetIndex |
1 | 數字 | 有效預設索引。0 到 N-1 其中 0 是預設的攝影機起始位置,N-1 則是廠商定義的預設常數數量。 |
支援的要求類型行為如下:
偏移 | 0 | 1 | 說明 |
---|---|---|---|
GET_MIN |
0x00 | 0x00 | |
GET_MAX |
0x03 | N-1 | 支援 N 個預設集 |
GET_RES |
0x01 | 0x01 | |
GET_LEN |
0x02 | 0x00 | 0x0002 |
GET_INFO |
0x02 | 唯寫 | |
GET_DEF |
0x00 | 0x00 |
平移和傾斜輔助對應地圖
部分攝影機有特殊元件,例如機械式攝影機的馬達,或是數位 PTZ 功能。如要控制這些功能,請使用平移、傾斜和縮放的標準 V4L2 控制項。
控制項:GOOGXU_PAN_TILT_ABSOLUTE
(已淘汰)
平移和傾斜輔助對應控制項定義於第 4 章:類別專屬要求第 4.2.2.1.14 節的 UVC 1.5 類別規格。
控制項:GOOGXU_PAN_TILT_RELATIVE
(已淘汰)
平移和傾斜輔助對應控制項定義於第 4 章:類別專屬要求第 4.2.2.1.15 節「UVC 1.5 類別規格」的「PanTilt (Relative) Control」。
相關主題
- Linux USB 視訊類別 (UVC) 驅動程式
- 影片課程 v1.5 文件集
- USB 2.0 規格
- Google Meet 設備說明中心
- Google Workspace 管理員說明中心中的 Google Meet Hardware 專區
版本資訊
以下版本資訊列載本文件各修訂版本的新功能和改善項目。
2025 年 8 月 13 日
- 修正測試機構詳細資料。
2025 年 1 月 27 日
- 在
GOOGXU_FRAME_STRATEGY
中新增Vendor-preferred
取景策略。 - 新增控制項:
GOOGXU_SATELLITE_INFO
。
2024 年 5 月 21 日
- 移除測試指令碼,改用新的 CfM 測試設備,
該設備會執行
SET
,並支援驗證 Series One 攝影機。 - 清楚闡釋
GOOGXU_STATUS_INFO
中的欄位。 - 清楚說明
GOOGXU_STATUS_RESET
的行為。 - 已淘汰
GOOGXU_PAN_TILT_ABSOLUTE
和GOOGXU_PAN_TILT_RELATIVE
。
2023 年 11 月 15 日
更新測試指令碼,以檢查及解讀有效的取景模式。清楚闡釋位元組表示法。
2023 年 7 月 21 日
新增測試指令碼,供合作夥伴驗證導入項目是否符合這項規格。
2023 年 5 月 25 日
已修正預設集數量相關的GOOGXU_PRESETS
附註。應為 N,而非 N-1。
2023 年 4 月 17 日
第 1 版。