SDK de Transmissão do IVS: fontes de imagens personalizadas (streaming em tempo real) - Amazon IVS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

SDK de Transmissão do IVS: fontes de imagens personalizadas (streaming em tempo real)

As fontes de entrada de imagem personalizadas permitem que uma aplicação forneça a própria entrada de imagem para o SDK de transmissão, em vez de se limitar às câmeras definidas previamente. Uma fonte de imagem personalizada pode ser algo tão simples quanto uma marca d’água semitransparente ou uma cena estática de “volto logo”, ou pode permitir que a aplicação realize um processamento personalizado adicional, como a adição de filtros de beleza à câmera.

Quando você usa uma fonte de entrada de imagem personalizada para o controle personalizado da câmera (p. ex., o uso de bibliotecas de filtro de beleza que exigem acesso à câmera), o SDK de transmissão deixa de ser o responsável pelo gerenciamento da câmera. Em vez disso, a aplicação fica responsável por processar corretamente o ciclo de vida da câmera. Consulte a documentação oficial da plataforma sobre como sua aplicação deve gerenciar a câmera.

Android

Após criar uma sessão DeviceDiscovery, crie uma fonte de entrada de imagem:

CustomImageSource imageSource = deviceDiscovery.createImageInputSource(new BroadcastConfiguration.Vec2(1280, 720));

Esse método retorna uma CustomImageSource, que é uma fonte de imagem corroborada por uma classe padrão Surface do Android. A subclasse SurfaceSource pode ser redimensionada e girada. Você também pode criar uma ImagePreviewView para exibir uma prévia de seu conteúdo.

Para recuperar a Surface subjacente:

Surface surface = surfaceSource.getInputSurface();

Essa Surface pode ser usada como o buffer de saída para produtores de imagens como Camera2, OpenGL ES e outras bibliotecas. O caso de uso mais simples é desenhar diretamente um bitmap estático ou uma cor na tela da Surface. No entanto, muitas bibliotecas (como bibliotecas de filtro de beleza) fornecem um método que permite que uma aplicação especifique uma Surface externa para renderização. Você pode usar tal método a fim de passar essa Surface para a biblioteca de filtros, permitindo que a biblioteca produza quadros processados para a sessão de transmissão transmitir.

Esta CustomImageSource pode ser agrupada em uma LocalStageStream e retornada pela StageStrategy para publicar em um Stage.

iOS

Após criar uma sessão DeviceDiscovery, crie uma fonte de entrada de imagem:

let customSource = broadcastSession.createImageSource(withName: "customSourceName")

Esse método retorna uma IVSCustomImageSource, que é uma fonte de imagem que permite que a aplicação envie CMSampleBuffersmanualmente. Para obter os formatos de pixel compatíveis, consulte a Referência do iOS Broadcast SDK; um link para a versão mais atual está disponível nas Notas de lançamento do Amazon IVS para a versão mais recente do Broadcast SDK.

As amostras enviadas para a fonte personalizada serão transmitidas para o Palco:

customSource.onSampleBuffer(sampleBuffer)

Para transmissão de vídeo, use esse método em um retorno de chamada. Por exemplo, se estiver usando a câmera, sempre que um novo buffer de amostra for recebido de uma AVCaptureSession, a aplicação pode encaminhar o buffer de amostra para a fonte de imagem personalizada. Se desejar, a aplicação pode aplicar processamento adicional (como um filtro de beleza) antes de enviar a amostra para a fonte de imagem personalizada.

A IVSCustomImageSource pode ser agrupada em uma IVSLocalStageStream e retornada pela IVSStageStrategy para publicar em um Stage.