Skip to main content
AOQ SDK overview

Referência da API Python do SDK Linux do AOQ Client

Este tópico descreve as APIs Python, os callbacks e os tipos de dados do AOQ Client SDK para Linux.

A plataforma Linux fornece APIs por meio do módulo Python aoq_client_sdk. Todos os callbacks são acionados em threads nativas; portanto, garanta a segurança de threads por conta própria.

Índice de APIs

Ciclo de vida do engine

API

Descrição

create_engine

Crie a instância do engine (singleton)

destroy

Destrói a instância do engine

get_version

Obtém a versão do SDK

connect

Conecta ao servidor relay

disconnect

Desconecta do servidor

Gerenciamento de dispositivos de áudio

API

Descrição

start_audio_capture

Inicia a captura de áudio (implementação vazia no Linux; não abre o microfone)

stop_audio_capture

Interrompe a captura de áudio (sem efeito real no Linux)

mute_audio_capture

Silencia ou reativa a captura de áudio (captura de dispositivo indisponível no Linux)

start_audio_player

Inicia a reprodução de áudio (implementação vazia no Linux; não abre o alto-falante)

stop_audio_player

Interrompe a reprodução de áudio (sem efeito real no Linux)

pause_audio_player

Pausa a reprodução de áudio (reprodução de dispositivo indisponível no Linux)

resume_audio_player

Retoma a reprodução de áudio (reprodução de dispositivo indisponível no Linux)

interrupt_audio_player

Interrompe a sessão de áudio atual

Configuração de codificação de áudio

API

Descrição

set_audio_encoder_config

Defina os parâmetros de codificação de áudio

set_audio_decoder_config

Defina os parâmetros de decodificação de áudio

Gerenciamento de dispositivos de vídeo

API

Descrição

start_video_capture

Inicia a captura de vídeo (apenas o modo de captura externa é suportado no Linux)

stop_video_capture

Interrompe a captura de vídeo (aplica-se apenas ao modo de captura externa no Linux)

set_local_view

Defina ou remove a janela de renderização de vídeo local (sem implementação de renderização no Linux)

set_remote_view

Defina ou remove a janela de renderização de vídeo remoto (sem implementação de renderização no Linux)

Codec de vídeo e entrada externa

API

Descrição

set_video_encoder_config

Defina os parâmetros de codificação de vídeo

set_video_decoder_config

Defina os parâmetros de decodificação de vídeo

push_external_video_frame

Envia um frame de vídeo capturado externamente

push_external_video_encoded_frame

Envia um frame de vídeo codificado externamente

Controle de stream de mídia

API

Descrição

enable_send_media_stream

Ative ou desative o envio de uma stream de mídia local

Reprodução de arquivo de áudio

API

Descrição

start_audio_file

Inicia a reprodução de um arquivo de áudio local na stream de publicação

stop_audio_file

Interrompe a reprodução do arquivo de áudio

pause_audio_file

Pausa a reprodução do arquivo de áudio

resume_audio_file

Retoma a reprodução do arquivo de áudio

get_audio_file_duration

Consulta a duração total do arquivo de áudio

get_audio_file_current_position

Consulta a posição atual de reprodução do arquivo de áudio

set_audio_file_position_millis

Defina a posição de reprodução do arquivo de áudio (seek)

set_audio_file_volume

Defina o volume do arquivo de áudio

get_audio_file_volume

Consulta o volume atual do arquivo de áudio

Streams de áudio externas

API

Descrição

add_audio_external_stream

Adiciona uma stream de áudio externa

remove_audio_external_stream

Remove uma stream de áudio externa

push_audio_external_stream_data

Alimenta dados PCM de áudio externo

set_audio_external_stream_volume

Defina o volume de uma stream de áudio externa

get_audio_external_stream_volume

Consulta o volume de uma stream de áudio externa

clear_audio_external_stream_buffer

Limpa o buffer de uma stream de áudio externa

Mensagens em tempo real

API

Descrição

send_data_msg

Envia uma mensagem de dados em tempo real

Callbacks de frame de áudio

API

Descrição

set_audio_frame_observer

Defina o listener de callback de dados de frame de áudio

enable_audio_frame_observer

Ative ou desative o callback de frame de áudio em uma posição especificada

Callbacks de frame de vídeo

API

Descrição

set_video_frame_observer

Defina o listener de callback de dados de frame de vídeo

enable_video_frame_observer

Ative ou desative o callback de frame de vídeo em uma posição especificada

Interfaces de callback

Callback

Descrição

on_error

Callback de erro do engine

on_connection_status_change

Callback de alteração de status de conexão

on_data_msg

Callback para mensagem de dados em tempo real recebida

IAudioFrameObserver

Classe base para listeners de dados de frame de áudio

IVideoFrameObserver

Classe base para listeners de dados de frame de vídeo

Funções utilitárias

API

Descrição

load_library

Especifique e carrega manualmente a biblioteca compartilhada nativa

Detalhes das APIs

Ciclo de vida do engine

create_engine

Crie a instância do engine (método de classe). O SDK mantém o engine como um singleton global; portanto, chamar este método novamente retorna a instância existente. Após chamar destroy, chame create_engine novamente antes de continuar usando o engine.
@classmethod
def create_engine(cls, config: AoqCreateConfig, listener: AoqEngineEventListener) -> "AoqClientEngine"

Parâmetros

Tipo

Descrição

config

AoqCreateConfig

Configuração de criação do engine

listener

AoqEngineEventListener

Listener de callback de eventos do engine

Retorno: A instância do engine AoqClientEngine. Se a criação falhar, uma RuntimeError será lançada.

destroy

Destrói a instância do engine (método de classe) e libera todos os recursos.
@classmethod
def destroy(cls) -> int
Retorno: 0 em caso de sucesso; valor diferente de zero em caso de falha.

get_version

Obtém a versão atual do SDK (método estático).
@staticmethod
def get_version() -> str
Retorno: A string de versão, como "1.0.0".

connect

Conecta ao servidor relay. O servidor de aplicação obtém parâmetros temporários de conexão AOQ com base no protocolo em uso e os envia ao cliente. Para mais informações, consulte Token authentication.
def connect(self, config: AoqConnectConfig) -> int

Parâmetros

Tipo

Descrição

config

AoqConnectConfig

Configuração de conexão, que inclui o token, SID e a lista de pontos de acesso relay

Retorno: 0 indica que a chamada foi despachada e executada de forma assíncrona; valor diferente de zero indica falha na validação de parâmetros.

disconnect

Desconecta do servidor e libera os recursos associados à conexão.
def disconnect(self) -> int
Retorno: 0 indica que a chamada foi despachada e executada de forma assíncrona; valor diferente de zero indica falha.

Gerenciamento de dispositivos de áudio

start_audio_capture

def start_audio_capture(self, config: AoqAudioCaptureConfig) -> int
No Linux, este método possui uma implementação vazia. Ele retorna 0, mas não abre a placa de som ou o microfone. Forneça entrada de áudio por meio de uma stream de áudio externa.

stop_audio_capture

def stop_audio_capture(self) -> int
Este método não tem efeito real porque a compilação para Linux não define o estado do dispositivo de captura de áudio.

mute_audio_capture

def mute_audio_capture(self, mute: bool) -> int
A compilação para Linux não suporta captura por microfone. Este método não consegue controlar um dispositivo real de captura de áudio.

start_audio_player

def start_audio_player(self, config: AoqAudioPlaybackConfig) -> int
No Linux, este método possui uma implementação vazia. Ele retorna 0, mas não abre a placa de som ou o alto-falante. Obtenha a saída de áudio por meio de um callback de frame de áudio e reproduza-a por conta própria.

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
Como a compilação para Linux não suporta reprodução por alto-falante, estes métodos não conseguem controlar um dispositivo real de reprodução de áudio. O parâmetro fade_ms especifica a duração do fade-out ou fade-in em milissegundos. O valor 0 indica execução imediata.

interrupt_audio_player

def interrupt_audio_player(self, track_type: int, fade_ms: int = 0) -> int
Interrompe a sessão de áudio atual.

Configuração de codificação de áudio

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

Gerenciamento de dispositivos de vídeo

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
A compilação para Linux não suporta captura por câmera e não possui backend de renderização de vídeo. Ao chamar start_video_capture, defina is_external como True e forneça frames chamando push_external_video_frame. Os métodos set_local_view, set_remote_view e AoqVideoCanvas.view não têm efeito real no Linux. Para visualizar o vídeo, obtenha frames por meio de um callback de frame de vídeo e renderize-os por conta própria.

Codec de vídeo e entrada externa

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
Observações:
  • Para set_video_decoder_config, apenas os campos track_type/codec_type/width/height/fps/bitrate têm efeito.
  • O método push_external_video_frame só é consumido após start_video_capture(is_external=True). Para formatos empacotados (NV12/NV21/BGRA/RGBA), preencha frame.data; para os três planos I420, preencha frame.data_y/u/v e o stride correspondente. Se o buffer estiver cheio, o método retorna AoqErrorCode.VIDEO_EXTERNAL_BUFFER_FULL(210).
  • O método push_external_video_encoded_frame requer start_video_capture(is_external=True) e set_video_encoder_config(codec_type=VIDEO_JPEG), seguindo o caminho de bypass sem recodificação.

Controle de stream de mídia

def enable_send_media_stream(self, track_type: AoqTrackType, enable: bool) -> int
Após a inicialização, desative o envio separadamente para cada track necessária chamando enable_send_media_stream(AoqTrackType.AUDIO, False) e enable_send_media_stream(AoqTrackType.VIDEO, False) conforme necessário. Depois de receber on_connection_status_change(CONNECTED), ative cada track em uma chamada separada.

Reprodução de arquivo de áudio

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

Streams de áudio externas

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
Nota: Quando o buffer estiver cheio, push_audio_external_stream_data retorna AoqErrorCode.AUDIO_EXTERNAL_BUFFER_FULL(110). Recomendamos aguardar cerca de 20 ms e tentar novamente com o mesmo frame.

Mensagens em tempo real

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

Callbacks de frame de áudio

def set_audio_frame_observer(self, observer: Optional[IAudioFrameObserver]) -> int
def enable_audio_frame_observer(self, enabled: bool, audio_source: AoqAudioSource, config: AoqAudioObserverConfig) -> int
Passe None para set_audio_frame_observer para cancelar o registro do observer.

Callbacks de frame de vídeo

def set_video_frame_observer(self, observer: Optional[IVideoFrameObserver]) -> int
def enable_video_frame_observer(self, enabled: bool, video_source: AoqVideoSource, config: AoqVideoObserverConfig) -> int
Passe None para set_video_frame_observer para cancelar o registro do observer.

Interfaces de callback

AoqEngineEventListener

Classe base para callbacks de eventos do engine. Todos os métodos são substituições opcionais com implementações vazias padrão. Os callbacks são acionados em threads nativas; portanto, garanta a segurança de threads por conta própria.
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
Callback de erro do engine. O parâmetro code corresponde a um valor da enumeração AoqErrorCode.

on_connection_status_change

def on_connection_status_change(self, status: AoqConnectionStatus) -> None
Callback de alteração de status de conexão. Transições de estado: DISCONNECTED -> CONNECTING -> CONNECTED/FAILED -> DISCONNECTED.

on_data_msg

def on_data_msg(self, msg: AoqDataMsg) -> None
Callback para mensagem de dados em tempo real recebida.

IAudioFrameObserver

Classe base para listeners de dados de frame de áudio. Todos os métodos são substituições opcionais com implementações vazias padrão.
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: ...
O callback é acionado na thread de áudio nativa. Não execute operações demoradas nele. O campo AoqAudioFrameData.data já é uma cópia em bytes e pode ser usado com segurança de forma assíncrona.

IVideoFrameObserver

Classe base para listeners de dados de frame de vídeo. Todos os métodos são substituições opcionais e retornam False por padrão.
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: ...
O callback é acionado na thread de vídeo nativa. Não execute operações demoradas nele. Os dados de pixel no frame já são uma cópia em bytes. A camada Python atualmente usa semântica de cópia e não suporta gravação de modificações de volta; portanto, recomendamos sempre retornar False.

Funções utilitárias

load_library

def load_library(path: Optional[str] = None) -> ctypes.CDLL
Carrega a biblioteca compartilhada nativa. Geralmente, não é necessário chamar este método manualmente, pois a biblioteca é carregada automaticamente no primeiro uso do engine. Se path estiver vazio, libAoqClientSdk.so será procurado na seguinte ordem: variável de ambiente AOQ_CLIENT_SDK_LIB, diretório do módulo, diretório lib no mesmo nível e caminhos padrão do sistema. Se o carregamento falhar, uma OSError será lançada. Uma causa comum é a ausência de uma biblioteca dependente no LD_LIBRARY_PATH.

Tipos de dados e enumerações

Todos os tipos de dados são dataclasses do Python. Você pode construí-los diretamente e atribuir valores aos campos.

Tipos gerais

AoqCreateConfig

Campo

Tipo

Valor padrão

Descrição

work_dir

str

""

Diretório de trabalho do SDK

enable_dump_audio

bool

False

Especifique se deve ativar o dump de áudio (para depuração)

extras

str

""

String de parâmetro estendido

AoqConnectConfig

Campo

Tipo

Valor padrão

Descrição

token

str

""

Token de autenticação de conexão

sid

str

""

ID da sessão

certificate

str

""

Fingerprint do certificado do servidor

relay_endpoints

List[AoqRelayEndpoint]

None

Lista de pontos de acesso relay

workspace_id_hash

str

""

Hash do ID do workspace

publish_tracks

List[AoqTrackParam]

None

Lista de tracks publicadas localmente

subscribe_tracks

List[AoqTrackParam]

None

Lista de tracks subscritas localmente

AoqRelayEndpoint

Campo

Tipo

Valor padrão

Descrição

endpoint

str

""

Nome de domínio ou endereço IP do servidor relay

port

int

0

Porta do servidor relay

route_index

int

-1

Índice do caminho, alinhado com routeIndex em SDKs para outras plataformas. Se for menor que 0, o SDK o preenche automaticamente com base no subscrito do array.

AoqTrackParam

Campo

Tipo

Valor padrão

Descrição

track_type

AoqTrackType

AoqTrackType.AUDIO

Tipo de track

AoqDataMsg

Campo

Tipo

Valor padrão

Descrição

data

bytes

b""

Dados da mensagem (uma string de bytes)

Enumerações

AoqErrorCode

Valor da enumeração

Valor

Descrição

OK

0

Sucesso

PARAM_INVALID

1

Parâmetro inválido

STATE_INVALID

2

Estado inválido

AUDIO

100

Erro genérico de áudio

AUDIO_EXTERNAL_BUFFER_FULL

110

Buffer de áudio externo cheio

AUDIO_DEVICE

120

Erro genérico de dispositivo de áudio

AUDIO_DEVICE_RECORDING_AUTH_FAILED

121

Permissão de gravação não concedida

AUDIO_DEVICE_RECORDING_OCCUPIED

122

Dispositivo de gravação em uso

AUDIO_DEVICE_RECORDING_START_FAIL

124

Falha ao iniciar gravação

AUDIO_DEVICE_PLAYOUT_OCCUPIED

125

Dispositivo de reprodução em uso

AUDIO_DEVICE_PLAYOUT_START_FAIL

127

Falha ao iniciar reprodução

VIDEO

200

Erro genérico de vídeo

VIDEO_EXTERNAL_BUFFER_FULL

210

Buffer de vídeo externo cheio

AoqConnectionStatus

Valor da enumeração

Valor

Descrição

DISCONNECTED

0

Desconectado

CONNECTING

1

Conectando

CONNECTED

2

Conectado

FAILED

3

Falha na conexão

AoqTrackType

Valor da enumeração

Valor

Descrição

AUDIO

0

Track de áudio

VIDEO

1

Track de vídeo

DATA

2

Track de mensagem de dados

AoqEncoderType

Valor da enumeração

Valor

Descrição

UNKNOWN

0

Formato desconhecido

AUDIO_PCM

1

Áudio PCM

AUDIO_OPUS

2

Áudio Opus

VIDEO_H264

3

Vídeo H.264

VIDEO_JPEG

4

Vídeo JPEG

DATA_TEXT

5

Texto de mensagem

AoqMirrorMode

Valor da enumeração

Valor

Descrição

DISABLED

0

Espelhamento desativado

ENABLED

1

Espelhamento ativado

AoqOrientationMode

Valor da enumeração

Valor

Descrição

AUTO

0

Ajuste automático

PORTRAIT

1

Retrato

LANDSCAPE

2

Paisagem

AoqRenderMode

Valor da enumeração

Valor

Descrição

AUTO

0

Modo adaptativo

STRETCH

1

Modo esticado

FILL

2

Modo preenchido

CROP

3

Modo cortado

AoqVideoPixelFormat

Valor da enumeração

Valor

Descrição

UNKNOWN

0

Formato desconhecido

I420

1

I420 (formato planar YUV)

NV12

2

NV12 (formato semi-planar YUV)

NV21

3

NV21 (formato semi-planar YUV)

BGRA

4

BGRA (32 bits)

RGBA

5

RGBA (32 bits)

AoqCameraDirection

Valor da enumeração

Valor

Descrição

FRONT

0

Câmera frontal (valor de enumeração genérico de plataforma; captura por câmera não suportada no Linux)

BACK

1

Câmera traseira (valor de enumeração genérico de plataforma; captura por câmera não suportada no Linux)

Tipos de áudio

AoqAudioCaptureConfig

Campo

Tipo

Valor padrão

Descrição

is_external

bool

False

Especifique se deve usar o modo de captura externa

channel

int

1

Número de canais (mono por padrão)

AoqAudioPlaybackConfig

Campo

Tipo

Valor padrão

Descrição

is_external

bool

False

Especifique se deve usar o modo de reprodução externa

channel

int

1

Número de canais (mono por padrão)

AoqAudioCodecConfig

Campo

Tipo

Valor padrão

Descrição

track_type

AoqTrackType

AUDIO

Tipo de track

codec_type

AoqEncoderType

AUDIO_PCM

Formato do codec

sample_rate

int

48000

Taxa de amostragem, em Hz

channel

int

1

Número de canais

bitrate

int

32000

Taxa de bits, em bit/s

AoqAudioFileMixConfig

Campo

Tipo

Valor padrão

Descrição

file_name

str

""

Nome do arquivo (incluindo o caminho). Não pode estar vazio.

cycles

int

-1

Número de loops. -1 indica loop ilimitado.

start_pos_ms

int

0

Posição inicial de reprodução, em milissegundos

publish_volume

int

100

Volume de publicação. Valores válidos: 0 a 100.

playout_volume

int

100

Volume de reprodução. Valores válidos: 0 a 100.

AoqAudioExternalStreamConfig

Campo

Tipo

Valor padrão

Descrição

track_type

AoqTrackType

AUDIO

Tipo de track de áudio

codec_type

AoqEncoderType

AUDIO_PCM

Formato da stream de áudio

channels

int

1

Número de canais

sample_rate

int

48000

Taxa de amostragem, em Hz

playout_volume

int

100

Volume de reprodução. Valores válidos: 0 a 100.

publish_volume

int

100

Volume de publicação. Valores válidos: 0 a 100.

max_buffer_duration

int

1000

Duração máxima do buffer, em milissegundos

enable_3a

bool

False

Especifique se deve aplicar processamento 3A ao PCM de entrada

AoqAudioFrameData

Dados de áudio brutos, usados para entrada externa ou callbacks de observer.

Campo

Tipo

Valor padrão

Descrição

data

bytes

b""

Dados PCM de áudio brutos (uma cópia em bytes nos callbacks)

num_of_samples

int

0

Número de amostras (por canal)

bytes_per_sample

int

0

Bytes por amostra

num_of_channels

int

0

Número de canais

samples_per_sec

int

0

Número de amostras por segundo (taxa de amostragem)

push_sequence

int

0

Rodada de entrada PCM

time_stamp

int

0

Timestamp

auto_gen_mute

bool

False

True indica dados silenciosos gerados pelo SDK

AoqAudioObserverConfig

Campo

Tipo

Valor padrão

Descrição

sample_rate

int

48000

Taxa de amostragem do áudio do callback, em Hz

channels

int

1

Número de canais de áudio no callback

mode

AoqAudioObserverMode

READ_ONLY

Modo de leitura e escrita

AoqAudioStreamDirection

Valor da enumeração

Valor

Descrição

PUBLISH

0

Stream de publicação

PLAYOUT

1

Stream de reprodução (stream de subscrição)

AoqAudioExternalStreamToggle

Valor da enumeração

Valor

Descrição

NORMAL

0

Estado normal

PAUSE

1

Estado pausado

AoqAudioSource

Valor da enumeração

Valor

Descrição

CAPTURED

0

Dados de áudio capturados

PROCESS_CAPTURED

1

Dados de áudio após processamento 3A

PUBLISH

2

Dados de áudio a serem publicados

PLAYBACK

3

Dados de áudio a serem reproduzidos

AoqAudioObserverMode

Valor da enumeração

Valor

Descrição

READ_ONLY

0

Modo somente leitura

READ_WRITE

1

Modo leitura e escrita

Tipos de vídeo

AoqVideoCaptureConfig

Campo

Tipo

Valor padrão

Descrição

width

int

1280

Largura da captura, em pixels. Este parâmetro é ineficaz quando is_external=True.

height

int

720

Altura da captura, em pixels. Este parâmetro é ineficaz quando is_external=True.

fps

int

15

Taxa de frames da captura. Este parâmetro é ineficaz quando is_external=True.

is_external

bool

False

Especifique se deve usar captura externa. O Linux suporta apenas True. Após chamar start_video_capture, forneça frames chamando push_external_video_frame.

camera_direction

AoqCameraDirection

FRONT

Direção da câmera para plataformas móveis. O Linux não possui capacidade correspondente. Mantenha o valor FRONT.

AoqVideoCodecConfig

Parâmetros de codec de vídeo, compartilhados por codificação e decodificação. Para decodificação, apenas track_type/codec_type/width/height/fps/bitrate têm efeito; os demais campos são usados apenas para codificação.

Campo

Tipo

Valor padrão

Descrição

track_type

AoqTrackType

VIDEO

Tipo de track

codec_type

AoqEncoderType

VIDEO_H264

Formato do codec

width

int

540

Largura de codificação, em pixels

height

int

960

Altura de codificação, em pixels

fps

int

5

Taxa de frames de codificação

bitrate

int

500000

Taxa de bits alvo, em bit/s

min_bitrate

int

128000

Taxa de bits mínima, em bit/s

keyframe_interval

int

2

Intervalo de keyframes, em segundos

mirror_mode

AoqMirrorMode

DISABLED

Modo de espelhamento

orientation_mode

AoqOrientationMode

AUTO

Modo de orientação de vídeo

AoqVideoCanvas

Campo

Tipo

Valor padrão

Descrição

view

int

0

Handle da janela de renderização. O Linux não possui backend de renderização, portanto, este campo não tem efeito real. Mantenha o valor 0.

render_mode

AoqRenderMode

AUTO

Modo de renderização. O Linux não possui backend de renderização, portanto, este campo não tem efeito real.

AoqVideoFrame

Frame de vídeo externo ou dados de callback de frame de vídeo. Ao usar um formato empacotado (NV12/NV21/BGRA/RGBA), preencha data. Ao usar os três planos I420, preencha data_y/u/v e o stride correspondente. Os dois métodos são mutuamente exclusivos.

Campo

Tipo

Valor padrão

Descrição

format

AoqVideoPixelFormat

UNKNOWN

Formato de pixel

width

int

0

Largura do vídeo, em pixels

height

int

0

Altura do vídeo, em pixels

data

bytes

b""

Dados de formato empacotado (NV12/NV21/BGRA/RGBA)

data_y

bytes

b""

Dados do plano Y I420

data_u

bytes

b""

Dados do plano U I420

data_v

bytes

b""

Dados do plano V I420

stride_y

int

0

Stride do plano Y

stride_u

int

0

Stride do plano U

stride_v

int

0

Stride do plano V

time_stamp

int

0

Timestamp, em milissegundos. Se for 0, o SDK o preenche com o relógio local.

AoqVideoEncodedFrame

Um frame de vídeo codificado externamente, como um frame JPEG.

Campo

Tipo

Valor padrão

Descrição

codec

AoqEncoderType

VIDEO_JPEG

Formato do codec

data

bytes

b""

Dados codificados

width

int

0

Largura, em pixels

height

int

0

Altura, em pixels

time_stamp

int

0

Timestamp, em milissegundos. Se for 0, o SDK o preenche com o relógio local.

AoqVideoObserverConfig

Campo

Tipo

Valor padrão

Descrição

format

AoqVideoPixelFormat

I420

Formato de pixel esperado dos dados do callback

alignment

AoqVideoObserverAlignment

DEFAULT

Política de alinhamento de largura

mode

AoqVideoObserverMode

READ_ONLY

Modo de leitura e escrita

mirror_applied

bool

False

Especifique se deve espelhar os dados do callback

AoqVideoSource

Valor da enumeração

Valor

Descrição

CAPTURED

0

Dados de vídeo capturados antes do pré-processamento

PRE_ENCODE

1

Dados de vídeo antes da codificação, após o pré-processamento

REMOTE

2

Dados de vídeo remoto após decodificação e antes da renderização

AoqVideoObserverMode

Valor da enumeração

Valor

Descrição

READ_ONLY

0

Modo somente leitura

READ_WRITE

1

Modo leitura e escrita

AoqVideoObserverAlignment

Valor da enumeração

Valor

Descrição

DEFAULT

0

Alinhamento padrão

EVEN

1

Alinhamento par

ALIGN_4

2

Alinhamento de 4 bytes

ALIGN_8

3

Alinhamento de 8 bytes

ALIGN_16

4

Alinhamento de 16 bytes

Referência da API de Geração de Texto
Geração de Imagens
  • FAQ
Geração de Vídeo
Áudio
Incorporação de Texto
Produção de Modelos