Skip to main content

AOQ クライアント SDK Linux Python API リファレンス

このトピックでは、AOQ クライアント SDK for Linux の Python API、コールバック、データ型について説明します。

AOQ SDK は汎用の動画 API を提供します。Qwen-Audio-Realtime は動画の入出力をサポートしていません。その他のモデルのメディア機能は、それぞれのアクセスドキュメントをご覧ください。
Linux プラットフォームは、aoq_client_sdk Python モジュールを介して API を提供します。すべてのコールバックはネイティブスレッドでトリガーされるため、お客様自身でスレッドセーフを確保する必要があります。

API インデックス

エンジンライフサイクル

API

説明

create_engine

エンジンインスタンス (シングルトン) の作成

destroy

エンジンインスタンスの削除

get_version

SDK バージョンの取得

connect

リレーサーバーへの接続

disconnect

サーバーからの切断

オーディオデバイス管理

API

説明

start_audio_capture

音声キャプチャの開始 (Linux では空の実装。マイクは開きません)

stop_audio_capture

音声キャプチャの停止 (Linux では実際には効果がありません)

mute_audio_capture

音声キャプチャのミュートまたはミュート解除 (Linux ではデバイスキャプチャは利用できません)

start_audio_player

音声再生の開始 (Linux では空の実装。スピーカーは開きません)

stop_audio_player

音声再生の停止 (Linux では実際には効果がありません)

pause_audio_player

音声再生の一時停止 (Linux ではデバイス再生は利用できません)

resume_audio_player

音声再生の再開 (Linux ではデバイス再生は利用できません)

interrupt_audio_player

現在のオーディオセッションの中断

音声エンコーディング設定

API

説明

set_audio_encoder_config

音声エンコーディングパラメーターの設定

set_audio_decoder_config

音声デコーディングパラメーターの設定

ビデオデバイス管理

API

説明

start_video_capture

ビデオキャプチャの開始 (Linux では外部キャプチャモードのみサポート)

stop_video_capture

ビデオキャプチャの停止 (Linux では外部キャプチャモードにのみ適用)

set_local_view

ローカルビデオレンダリングウィンドウの設定または削除 (Linux ではレンダリング実装なし)

set_remote_view

リモートビデオレンダリングウィンドウの設定または削除 (Linux ではレンダリング実装なし)

ビデオコーデックと外部入力

API

説明

set_video_encoder_config

ビデオエンコーディングパラメーターの設定

set_video_decoder_config

ビデオデコーディングパラメーターの設定

push_external_video_frame

外部でキャプチャされたビデオフレームのプッシュ

push_external_video_encoded_frame

外部でエンコードされたビデオフレームのプッシュ

メディアストリーム制御

API

説明

enable_send_media_stream

ローカルメディアストリームの送信の有効化または無効化

音声ファイルの再生

API

説明

start_audio_file

ローカル音声ファイルのパブリッシングストリームへの再生開始

stop_audio_file

音声ファイル再生の停止

pause_audio_file

音声ファイル再生の一時停止

resume_audio_file

音声ファイル再生の再開

get_audio_file_duration

音声ファイルの総持続時間のクエリ

get_audio_file_current_position

音声ファイルの現在の再生位置のクエリ

set_audio_file_position_millis

音声ファイルの再生位置の設定 (シーク)

set_audio_file_volume

音声ファイルのボリュームの設定

get_audio_file_volume

音声ファイルの現在のボリュームのクエリ

外部音声ストリーム

API

説明

add_audio_external_stream

外部音声ストリームの追加

remove_audio_external_stream

外部音声ストリームの削除

push_audio_external_stream_data

外部音声 PCM データの供給

set_audio_external_stream_volume

外部音声ストリームのボリュームの設定

get_audio_external_stream_volume

外部音声ストリームのボリュームのクエリ

clear_audio_external_stream_buffer

外部音声ストリームのバッファーのクリア

リアルタイムメッセージング

API

説明

send_data_msg

リアルタイムデータメッセージの送信

音声フレームコールバック

API

説明

set_audio_frame_observer

音声フレームデータコールバックリスナーの設定

enable_audio_frame_observer

指定された位置での音声フレームコールバックの有効化または無効化

ビデオフレームコールバック

API

説明

set_video_frame_observer

ビデオフレームデータコールバックリスナーの設定

enable_video_frame_observer

指定された位置でのビデオフレームコールバックの有効化または無効化

コールバックインターフェイス

コールバック

説明

on_error

エンジンエラーコールバック

on_connection_status_change

接続ステータス変更コールバック

on_data_msg

受信したリアルタイムデータメッセージのコールバック

IAudioFrameObserver

音声フレームデータリスナーのベースクラス

IVideoFrameObserver

ビデオフレームデータリスナーのベースクラス

ユーティリティ関数

API

説明

load_library

ネイティブ共有ライブラリの手動指定とロード

API の詳細

エンジンライフサイクル

create_engine

エンジンインスタンスを作成します (クラスメソッド)。SDK はエンジンをグローバルシングルトンとして保持するため、このメソッドを再度呼び出すと既存のインスタンスが返されます。destroy の後、エンジンを引き続き使用するには、再度 create_engine を呼び出す必要があります。
@classmethod
def create_engine(cls, config: AoqCreateConfig, listener: AoqEngineEventListener) -> "AoqClientEngine"

パラメーター

型

説明

config

AoqCreateConfig

エンジン作成設定

listener

AoqEngineEventListener

エンジンイベントコールバックリスナー

戻り値:AoqClientEngine エンジンインスタンス。作成に失敗した場合、RuntimeError がスローされます。

destroy

エンジンインスタンスを削除し (クラスメソッド)、すべてのリソースを解放します。
@classmethod
def destroy(cls) -> int
戻り値:成功した場合は 0、失敗した場合は 0 以外。

get_version

現在の SDK バージョンを取得します (静的メソッド)。
@staticmethod
def get_version() -> str
戻り値:バージョン文字列 (例: "1.0.0")。

connect

リレーサーバーに接続します。アプリケーションサーバーは、使用中のプロトコルに基づいて一時的な AOQ 接続パラメーターを取得し、クライアントに送信します。詳細については、「トークン認証」をご参照ください。
def connect(self, config: AoqConnectConfig) -> int

パラメーター

型

説明

config

AoqConnectConfig

接続設定。トークン、SID、リレーアクセスポイントのリストが含まれます。

戻り値:0 は呼び出しがディスパッチされ、非同期で実行されることを示します。0 以外はパラメーター検証が失敗したことを示します。

disconnect

サーバーから切断し、接続に関連するリソースを解放します。
def disconnect(self) -> int
戻り値:0 は呼び出しがディスパッチされ、非同期で実行されることを示します。0 以外は失敗を示します。

オーディオデバイス管理

start_audio_capture

def start_audio_capture(self, config: AoqAudioCaptureConfig) -> int
Linux では、このメソッドは空の実装です。0 を返しますが、サウンドカードやマイクは開きません。外部音声ストリームを介して音声入力を提供してください。

stop_audio_capture

def stop_audio_capture(self) -> int
Linux ビルドでは音声キャプチャデバイスの状態が設定されないため、このメソッドには実際には効果がありません。

mute_audio_capture

def mute_audio_capture(self, mute: bool) -> int
Linux ビルドはマイクキャプチャをサポートしていません。このメソッドは実際の音声キャプチャデバイスを制御できません。

start_audio_player

def start_audio_player(self, config: AoqAudioPlaybackConfig) -> int
Linux では、このメソッドは空の実装です。0 を返しますが、サウンドカードやスピーカーは開きません。音声フレームコールバックを介して音声出力を取得し、自分で再生してください。

stop_audio_player / pause_audio_player / resume_audio_player

def stop_audio_player(self) -> int
def pause_audio_player(self, fade_ms: int = 0) -> int
def resume_audio_player(self, fade_ms: int = 0) -> int
Linux ビルドはスピーカー再生をサポートしていないため、これらのメソッドは実際の音声再生デバイスを制御できません。fade_ms はフェードアウトまたはフェードインの持続時間をミリ秒単位で指定します。0 は即時実行を示します。

interrupt_audio_player

def interrupt_audio_player(self, track_type: int, fade_ms: int = 0) -> int
現在のオーディオセッションを中断します。

音声エンコーディング設定

def set_audio_encoder_config(self, config: AoqAudioCodecConfig) -> int
def set_audio_decoder_config(self, config: AoqAudioCodecConfig) -> int

ビデオデバイス管理

def start_video_capture(self, config: AoqVideoCaptureConfig) -> int
def stop_video_capture(self) -> int
def set_local_view(self, track_type: int, canvas: Optional[AoqVideoCanvas]) -> int
def set_remote_view(self, track_type: int, canvas: Optional[AoqVideoCanvas]) -> int
Linux ビルドはカメラキャプチャをサポートしておらず、ビデオレンダリングバックエンドもありません。start_video_capture を呼び出すときは、is_external を True に設定し、push_external_video_frame を呼び出してフレームを提供します。set_local_view、set_remote_view、および AoqVideoCanvas.view は Linux では実際には効果がありません。ビデオをプレビューするには、ビデオフレームコールバックを介してフレームを取得し、自分でレンダリングしてください。

ビデオコーデックと外部入力

def set_video_encoder_config(self, config: AoqVideoCodecConfig) -> int
def set_video_decoder_config(self, config: AoqVideoCodecConfig) -> int
def push_external_video_frame(self, frame: AoqVideoFrame, track_type: AoqTrackType = AoqTrackType.VIDEO) -> int
def push_external_video_encoded_frame(self, track_type: AoqTrackType, frame: AoqVideoEncodedFrame) -> int
注意事項:
  • set_video_decoder_config の場合、track_type/codec_type/width/height/fps/bitrate フィールドのみが有効です。
  • push_external_video_frame は start_video_capture(is_external=True) の後にのみ消費されます。パック形式 (NV12/NV21/BGRA/RGBA) の場合は frame.data を入力し、3 つの I420 プレーンの場合は frame.data_y/u/v と対応するストライドを入力します。バッファーがいっぱいの場合、AoqErrorCode.VIDEO_EXTERNAL_BUFFER_FULL(210) を返します。
  • push_external_video_encoded_frame には start_video_capture(is_external=True) と set_video_encoder_config(codec_type=VIDEO_JPEG) が必要で、再エンコードなしでバイパスパスを通ります。

メディアストリーム制御

def enable_send_media_stream(self, track_type: AoqTrackType, enable: bool) -> int
初期化後、必要に応じて enable_send_media_stream(AoqTrackType.AUDIO, False) と enable_send_media_stream(AoqTrackType.VIDEO, False) を呼び出して、必要な各トラックの送信を個別に無効にします。on_connection_status_change(CONNECTED) を受信した後、別の呼び出しで各トラックを有効にします。

音声ファイルの再生

def start_audio_file(self, file_id: str, config: AoqAudioFileMixConfig) -> int
def stop_audio_file(self, file_id: str) -> int
def pause_audio_file(self, file_id: str) -> int
def resume_audio_file(self, file_id: str) -> int
def get_audio_file_duration(self, file_id: str) -> int
def get_audio_file_current_position(self, file_id: str) -> int
def set_audio_file_position_millis(self, file_id: str, position_ms: int) -> int
def set_audio_file_volume(self, file_id: str, type_: AoqAudioStreamDirection, volume: int) -> int
def get_audio_file_volume(self, file_id: str, type_: AoqAudioStreamDirection) -> int

外部音声ストリーム

def add_audio_external_stream(self, stream_id: str, config: AoqAudioExternalStreamConfig) -> int
def remove_audio_external_stream(self, stream_id: str) -> int
def push_audio_external_stream_data(self, stream_id: str, data: AoqAudioFrameData) -> int
def set_audio_external_stream_volume(self, stream_id: str, type_: AoqAudioStreamDirection, volume: int) -> int
def get_audio_external_stream_volume(self, stream_id: str, type_: AoqAudioStreamDirection) -> int
def clear_audio_external_stream_buffer(self, stream_id: str, fadeout_ms: int = -1) -> None
注意:バッファーがいっぱいの場合、push_audio_external_stream_data は AoqErrorCode.AUDIO_EXTERNAL_BUFFER_FULL(110) を返します。約 20 ms 待機してから同じフレームをリトライすることを推奨します。

リアルタイムメッセージング

def send_data_msg(self, msg: AoqDataMsg) -> int

音声フレームコールバック

def set_audio_frame_observer(self, observer: Optional[IAudioFrameObserver]) -> int
def enable_audio_frame_observer(self, enabled: bool, audio_source: AoqAudioSource, config: AoqAudioObserverConfig) -> int
オブザーバーの登録を解除するには、set_audio_frame_observer に None を渡します。

ビデオフレームコールバック

def set_video_frame_observer(self, observer: Optional[IVideoFrameObserver]) -> int
def enable_video_frame_observer(self, enabled: bool, video_source: AoqVideoSource, config: AoqVideoObserverConfig) -> int
オブザーバーの登録を解除するには、set_video_frame_observer に None を渡します。

コールバックインターフェイス

AoqEngineEventListener

エンジンイベントコールバックのベースクラス。すべてのメソッドはオプションのオーバーライドで、デフォルトは空の実装です。コールバックはネイティブスレッドでトリガーされるため、お客様自身でスレッドセーフを確保する必要があります。
class AoqEngineEventListener:
    def on_error(self, code: int, message: str) -> None: ...
    def on_connection_status_change(self, status: AoqConnectionStatus) -> None: ...
    def on_data_msg(self, msg: AoqDataMsg) -> None: ...

on_error

def on_error(self, code: int, message: str) -> None
エンジンエラーコールバック。code は AoqErrorCode 列挙値に対応します。

on_connection_status_change

def on_connection_status_change(self, status: AoqConnectionStatus) -> None
接続ステータス変更コールバック。状態遷移:DISCONNECTED -> CONNECTING -> CONNECTED/FAILED -> DISCONNECTED。

on_data_msg

def on_data_msg(self, msg: AoqDataMsg) -> None
受信したリアルタイムデータメッセージのコールバック。

IAudioFrameObserver

音声フレームデータリスナーのベースクラス。すべてのメソッドはオプションのオーバーライドで、デフォルトは空の実装です。
class IAudioFrameObserver:
    def on_captured_audio_frame(self, data: AoqAudioFrameData) -> None: ...
    def on_process_captured_audio_frame(self, data: AoqAudioFrameData) -> None: ...
    def on_publish_audio_frame(self, track_type: AoqTrackType, data: AoqAudioFrameData) -> None: ...
    def on_playback_audio_frame(self, data: AoqAudioFrameData) -> None: ...
コールバックはネイティブのオーディオスレッドでトリガーされます。時間のかかる操作は実行しないでください。AoqAudioFrameData.data はすでにバイトコピーであり、非同期で安全に使用できます。

IVideoFrameObserver

ビデオフレームデータリスナーのベースクラス。すべてのメソッドはオプションのオーバーライドで、デフォルトでは False を返します。
class IVideoFrameObserver:
    def on_captured_video_frame(self, frame: AoqVideoFrame) -> bool: ...
    def on_pre_encode_video_frame(self, track_type: AoqTrackType, frame: AoqVideoFrame) -> bool: ...
    def on_remote_video_frame(self, track_type: AoqTrackType, frame: AoqVideoFrame) -> bool: ...
コールバックはネイティブのビデオスレッドでトリガーされます。時間のかかる操作は実行しないでください。フレーム内のピクセルデータはすでにバイトコピーです。現在、Python レイヤーはコピーセマンティクスを使用しており、変更の書き戻しをサポートしていないため、常に False を返すことを推奨します。

ユーティリティ関数

load_library

def load_library(path: Optional[str] = None) -> ctypes.CDLL
ネイティブ共有ライブラリをロードします。通常、このメソッドを手動で呼び出す必要はありません。ライブラリはエンジンを初めて使用するときに自動的にロードされるためです。path が空の場合、libAoqClientSdk.so は次の順序で検索されます:AOQ_CLIENT_SDK_LIB 環境変数、モジュールのディレクトリ、同じレベルの lib ディレクトリ、およびデフォルトのシステムパス。ロードに失敗した場合、OSError がスローされます。典型的な原因は、依存ライブラリが LD_LIBRARY_PATH にないことです。

データ型と列挙型

すべてのデータ型は Python のデータクラスです。直接構築してフィールドに値を割り当てることができます。

一般的な型

AoqCreateConfig

フィールド

型

デフォルト値

説明

work_dir

str

""

SDK の作業ディレクトリ

enable_dump_audio

bool

False

オーディオダンプを有効にするかどうかを指定します (デバッグ用)

extras

str

""

拡張パラメーター文字列

AoqConnectConfig

フィールド

型

デフォルト値

説明

token

str

""

接続認証トークン

sid

str

""

セッション ID

certificate

str

""

サーバー証明書の指紋

relay_endpoints

List[AoqRelayEndpoint]

None

リレーアクセスポイントのリスト

workspace_id_hash

str

""

ワークスペース ID ハッシュ

publish_tracks

List[AoqTrackParam]

None

ローカルで公開されたトラックのリスト

subscribe_tracks

List[AoqTrackParam]

None

ローカルでサブスクライブされたトラックのリスト

AoqRelayEndpoint

フィールド

型

デフォルト値

説明

endpoint

str

""

リレーサーバーのドメイン名または IP アドレス

port

int

0

リレーサーバーのポート

route_index

int

-1

パスインデックス。他のプラットフォームの SDK の routeIndex と整合しています。0 未満の場合、SDK は配列の添え字に基づいて自動的に入力します。

AoqTrackParam

フィールド

型

デフォルト値

説明

track_type

AoqTrackType

AoqTrackType.AUDIO

トラックタイプ

AoqDataMsg

フィールド

型

デフォルト値

説明

data

bytes

b""

メッセージデータ (バイト文字列)

列挙型

AoqErrorCode

列挙値

値

説明

OK

0

成功

PARAM_INVALID

1

無効なパラメーター

STATE_INVALID

2

無効な状態

AUDIO

100

一般的な音声エラー

AUDIO_EXTERNAL_BUFFER_FULL

110

外部音声バッファーがいっぱいです

AUDIO_DEVICE

120

一般的なオーディオデバイスエラー

AUDIO_DEVICE_RECORDING_AUTH_FAILED

121

録音権限が付与されていません

AUDIO_DEVICE_RECORDING_OCCUPIED

122

録音デバイスが使用中です

AUDIO_DEVICE_RECORDING_START_FAIL

124

録音の開始に失敗しました

AUDIO_DEVICE_PLAYOUT_OCCUPIED

125

再生デバイスが使用中です

AUDIO_DEVICE_PLAYOUT_START_FAIL

127

再生の開始に失敗しました

VIDEO

200

一般的なビデオエラー

VIDEO_EXTERNAL_BUFFER_FULL

210

外部ビデオバッファーがいっぱいです

AoqConnectionStatus

列挙値

値

説明

DISCONNECTED

0

切断済み

CONNECTING

1

接続中

CONNECTED

2

接続済み

FAILED

3

接続に失敗しました

AoqTrackType

列挙値

値

説明

AUDIO

0

音声トラック

VIDEO

1

ビデオトラック

DATA

2

データメッセージトラック

AoqEncoderType

列挙値

値

説明

UNKNOWN

0

不明なフォーマット

AUDIO_PCM

1

音声 PCM

AUDIO_OPUS

2

音声 Opus

VIDEO_H264

3

ビデオ H.264

VIDEO_JPEG

4

ビデオ JPEG

DATA_TEXT

5

メッセージテキスト

AoqMirrorMode

列挙値

値

説明

DISABLED

0

ミラーリングを無効にする

ENABLED

1

ミラーリングを有効にする

AoqOrientationMode

列挙値

値

説明

AUTO

0

自動調整

PORTRAIT

1

ポートレート

LANDSCAPE

2

ランドスケープ

AoqRenderMode

列挙値

値

説明

AUTO

0

適応モード

STRETCH

1

ストレッチモード

FILL

2

フィルモード

CROP

3

クロップモード

AoqVideoPixelFormat

列挙値

値

説明

UNKNOWN

0

不明なフォーマット

I420

1

I420 (YUV 平面フォーマット)

NV12

2

NV12 (YUV セミプレーナーフォーマット)

NV21

3

NV21 (YUV セミプレーナーフォーマット)

BGRA

4

BGRA (32 ビット)

RGBA

5

RGBA (32 ビット)

AoqCameraDirection

列挙値

値

説明

FRONT

0

フロントカメラ (プラットフォーム共通の列挙値。Linux ではカメラキャプチャはサポートされていません)

BACK

1

リアカメラ (プラットフォーム共通の列挙値。Linux ではカメラキャプチャはサポートされていません)

音声の型

AoqAudioCaptureConfig

フィールド

型

デフォルト値

説明

is_external

bool

False

外部キャプチャモードを使用するかどうかを指定します

channel

int

1

チャンネル数 (デフォルトはモノラル)

AoqAudioPlaybackConfig

フィールド

型

デフォルト値

説明

is_external

bool

False

外部再生モードを使用するかどうかを指定します

channel

int

1

チャンネル数 (デフォルトはモノラル)

AoqAudioCodecConfig

フィールド

型

デフォルト値

説明

track_type

AoqTrackType

AUDIO

トラックタイプ

codec_type

AoqEncoderType

AUDIO_PCM

コーデックフォーマット

sample_rate

int

48000

サンプルレート (Hz)

channel

int

1

チャンネル数

bitrate

int

32000

ビットレート (bit/s)

AoqAudioFileMixConfig

フィールド

型

デフォルト値

説明

file_name

str

""

ファイル名 (パスを含む)。空にすることはできません。

cycles

int

-1

ループ回数。-1 は無制限ループを示します。

start_pos_ms

int

0

再生開始位置 (ミリ秒)

publish_volume

int

100

パブリッシングボリューム。有効な値:0~100。

playout_volume

int

100

再生ボリューム。有効な値:0~100。

AoqAudioExternalStreamConfig

フィールド

型

デフォルト値

説明

track_type

AoqTrackType

AUDIO

音声トラックタイプ

codec_type

AoqEncoderType

AUDIO_PCM

音声ストリームフォーマット

channels

int

1

チャンネル数

sample_rate

int

48000

サンプルレート (Hz)

playout_volume

int

100

再生ボリューム。有効な値:0~100。

publish_volume

int

100

パブリッシングボリューム。有効な値:0~100。

max_buffer_duration

int

1000

最大バッファー期間 (ミリ秒)

enable_3a

bool

False

入力 PCM に 3A 処理を適用するかどうかを指定します

AoqAudioFrameData

RAW オーディオデータ。外部入力またはオブザーバーコールバックに使用されます。

フィールド

型

デフォルト値

説明

data

bytes

b""

RAW オーディオ PCM データ (コールバックではバイトコピー)

num_of_samples

int

0

サンプル数 (チャンネルごと)

bytes_per_sample

int

0

サンプルあたりのバイト数

num_of_channels

int

0

チャンネル数

samples_per_sec

int

0

1 秒あたりのサンプル数 (サンプルレート)

push_sequence

int

0

PCM 入力ラウンド

time_stamp

int

0

タイムスタンプ

auto_gen_mute

bool

False

True は SDK によって生成された無音データを示します

AoqAudioObserverConfig

フィールド

型

デフォルト値

説明

sample_rate

int

48000

コールバック音声のサンプルレート (Hz)

channels

int

1

コールバックの音声チャンネル数

mode

AoqAudioObserverMode

READ_ONLY

読み書きモード

AoqAudioStreamDirection

列挙値

値

説明

PUBLISH

0

パブリッシングストリーム

PLAYOUT

1

再生ストリーム (サブスクライブストリーム)

AoqAudioExternalStreamToggle

列挙値

値

説明

NORMAL

0

通常状態

PAUSE

1

一時停止状態

AoqAudioSource

列挙値

値

説明

CAPTURED

0

キャプチャされた音声データ

PROCESS_CAPTURED

1

3A 処理後の音声データ

PUBLISH

2

公開する音声データ

PLAYBACK

3

再生する音声データ

AoqAudioObserverMode

列挙値

値

説明

READ_ONLY

0

読み取り専用モード

READ_WRITE

1

読み書きモード

ビデオの型

AoqVideoCaptureConfig

フィールド

型

デフォルト値

説明

width

int

1280

キャプチャ幅 (ピクセル)。is_external=True の場合、このパラメーターは無効です。

height

int

720

キャプチャ高さ (ピクセル)。is_external=True の場合、このパラメーターは無効です。

fps

int

15

キャプチャフレームレート。is_external=True の場合、このパラメーターは無効です。

is_external

bool

False

外部キャプチャを使用するかどうかを指定します。Linux は True のみをサポートします。start_video_capture を呼び出した後、push_external_video_frame を呼び出してフレームを提供します。

camera_direction

AoqCameraDirection

FRONT

モバイルプラットフォームのカメラの向き。Linux には対応する機能はありません。値は FRONT のままにしてください。

AoqVideoCodecConfig

ビデオコーデックパラメーター。エンコーディングとデコーディングで共有されます。デコーディングの場合、track_type/codec_type/width/height/fps/bitrate のみが有効で、他のフィールドはエンコーディングにのみ使用されます。

フィールド

型

デフォルト値

説明

track_type

AoqTrackType

VIDEO

トラックタイプ

codec_type

AoqEncoderType

VIDEO_H264

コーデックフォーマット

width

int

540

エンコード幅 (ピクセル)

height

int

960

エンコード高さ (ピクセル)

fps

int

5

エンコードフレームレート

bitrate

int

500000

ターゲットビットレート (bit/s)

min_bitrate

int

128000

最小ビットレート (bit/s)

keyframe_interval

int

2

キーフレーム間隔 (秒)

mirror_mode

AoqMirrorMode

DISABLED

ミラーモード

orientation_mode

AoqOrientationMode

AUTO

ビデオの向きモード

AoqVideoCanvas

フィールド

型

デフォルト値

説明

view

int

0

レンダリングウィンドウハンドル。Linux にはレンダリングバックエンドがないため、このフィールドは実際には効果がありません。値は 0 のままにしてください。

render_mode

AoqRenderMode

AUTO

レンダリングモード。Linux にはレンダリングバックエンドがないため、このフィールドは実際には効果がありません。

AoqVideoFrame

外部ビデオフレームまたはビデオフレームコールバックデータ。パック形式 (NV12/NV21/BGRA/RGBA) を使用する場合は、data に入力します。3 つの I420 プレーンを使用する場合は、data_y/u/v と対応するストライドに入力します。この 2 つの方法は相互に排他的です。

フィールド

型

デフォルト値

説明

format

AoqVideoPixelFormat

UNKNOWN

ピクセルフォーマット

width

int

0

ビデオ幅 (ピクセル)

height

int

0

ビデオ高さ (ピクセル)

data

bytes

b""

パック形式データ (NV12/NV21/BGRA/RGBA)

data_y

bytes

b""

I420 Y プレーンデータ

data_u

bytes

b""

I420 U プレーンデータ

data_v

bytes

b""

I420 V プレーンデータ

stride_y

int

0

Y プレーンのストライド

stride_u

int

0

U プレーンのストライド

stride_v

int

0

V プレーンのストライド

time_stamp

int

0

タイムスタンプ (ミリ秒)。0 の場合、SDK はローカルクロックで入力します。

AoqVideoEncodedFrame

外部でエンコードされたビデオフレーム (JPEG フレームなど)。

フィールド

型

デフォルト値

説明

codec

AoqEncoderType

VIDEO_JPEG

コーデックフォーマット

data

bytes

b""

エンコードされたデータ

width

int

0

幅 (ピクセル)

height

int

0

高さ (ピクセル)

time_stamp

int

0

タイムスタンプ (ミリ秒)。0 の場合、SDK はローカルクロックで入力します。

AoqVideoObserverConfig

フィールド

型

デフォルト値

説明

format

AoqVideoPixelFormat

I420

コールバックデータの期待されるピクセルフォーマット

alignment

AoqVideoObserverAlignment

DEFAULT

幅の配置ポリシー

mode

AoqVideoObserverMode

READ_ONLY

読み書きモード

mirror_applied

bool

False

コールバックデータをミラーリングするかどうかを指定します

AoqVideoSource

列挙値

値

説明

CAPTURED

0

前処理前のキャプチャされたビデオデータ

PRE_ENCODE

1

前処理後、エンコード前のビデオデータ

REMOTE

2

デコード後、レンダリング前のリモートビデオデータ

AoqVideoObserverMode

列挙値

値

説明

READ_ONLY

0

読み取り専用モード

READ_WRITE

1

読み書きモード

AoqVideoObserverAlignment

列挙値

値

説明

DEFAULT

0

デフォルトの配置

EVEN

1

偶数配置

ALIGN_4

2

4 バイト配置

ALIGN_8

3

8 バイト配置

ALIGN_16

4

16 バイト配置