API Meet Media: guia de início rápido do cliente de referência do C++

Nesta página, explicamos como configurar e executar uma amostra usando a implementação do cliente de referência em C++. Para conhecer o cliente TypeScript, consulte o início rápido do cliente de referência TypeScript.

Pré-requisitos

Para executar este guia de início rápido, você precisa dos seguintes pré-requisitos:

Ativar a API REST do Meet

Antes de usar as APIs do Google, é necessário ativá-las em um projeto do Google Cloud. É possível ativar uma ou mais APIs em um único projeto do Google Cloud.

Console do Google Cloud

  1. No console do Google Cloud, ative a API REST do Meet.

    Ativar as APIs

  2. Confirme se você está ativando a API REST do Meet no projeto do Cloud correto e clique em Próxima.

  3. Confirme que você está ativando a API REST do Meet e clique em Ativar.

CLI da gcloud

  1. Se necessário, defina o projeto atual do Cloud como aquele que você criou:

    gcloud config set project PROJECT_ID

    Substitua PROJECT_ID pelo ID do projeto do projeto do Cloud que você criou.

  2. Ative a API REST do Meet:

    gcloud services enable meet.googleapis.com

Criar o cliente C++

A implementação em C++ é criada com o Generate Ninja (GN). Para mais informações, consulte a documentação do WebRTC.

  1. Gere uma senha em Git no Google e configure o git.

  2. Na interface de linha de comando (CLI), mude <samples_location> para o diretório que contém as amostras e execute o seguinte comando, que:

    • Muda o diretório de trabalho para o diretório inicial.
    • Cria um diretório no seu diretório inicial chamado src.
    • Muda o diretório de trabalho para src.
    • Clona https://chromium.googlesource.com/chromium/tools/depot_tools.git no diretório src/ do git.
    • Adiciona temporariamente o diretório ~/src/depot_tools à lista de locais em que o shell procura comandos executáveis.
    • Muda o diretório de trabalho para o diretório cpp no local das amostras.
    • Executa o script shell ./build.sh.
    cd ~
    mkdir src
    cd src
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    export PATH=~/src/depot_tools:$PATH
    cd <samples_location>/cpp
    sh ./build.sh

Gerar tokens OAuth

Para se conectar à API Meet Media, seu app precisa usar o OAuth para gerar tokens de acesso. Para saber mais sobre como acessar as APIs do Google com o OAuth, consulte Como usar o OAuth 2.0 para acessar as APIs do Google.

Você pode usar o OAuth 2.0 Playground para gerar tokens. Ao usar o playground, faça o seguinte:

  • Use o ID do cliente e as credenciais secretas do seu projeto na nuvem.
  • Solicite os escopos corretos.
  • Faça login em uma Conta do Google e aceite o acesso.

Depois disso, clique no botão Exchange authorization code for tokens e copie o token de acesso gerado.

Iniciar uma reunião

Inicie uma reunião usando a mesma conta de usuário que você usou para gerar o token OAuth. Copie o código da reunião. Agora você já pode executar os exemplos.

Apps de exemplo

O repositório do GitHub oferece exemplos para receber mídia e metadados de participantes de uma reunião.

Essas amostras coletam dados por um período especificado (o padrão é 3 segundos) e gravam os dados coletados em arquivos.

Os arquivos de áudio estão no formato PCM16. Os arquivos de vídeo estão no formato YUV420p. Esses arquivos podem ser reproduzidos usando uma biblioteca como o FFmpeg.

Como as resoluções de vídeo podem mudar durante uma reunião, as amostras incluem a resolução nos nomes dos arquivos de vídeo.

Os arquivos de metadados do participante serão arquivos de texto legíveis.

Exemplo de mídia de usuário único

O exemplo de mídia de usuário único é um app básico que se concentra na coleta de áudio e vídeo. A amostra não determina qual participante criou os dados de áudio e vídeo. Portanto, usar essa amostra em uma reunião com mais de um participante pode resultar em uma saída corrompida.

Para executar a amostra de mídia de usuário único, execute:

Linux

$ sh ./run_multi.sh -- \
    --meeting_space_id MEETING_SPACE_ID \
    --oauth_token OAUTH_TOKEN

Por padrão, um único arquivo de áudio é salvo em /tmp/test_output_audio.pcm.

Como os fluxos de vídeo podem mudar de resolução durante uma reunião, vários arquivos de vídeo podem ser criados. Os nomes dos arquivos de vídeo incluem um contador crescente e a resolução do arquivo. Por exemplo, se a resolução do stream de vídeo mudar de 320 x 180 para 240 x 135 e depois voltar para 320 x 180, os seguintes arquivos de vídeo serão criados:

  • /tmp/test_output_video_0_320x180.pcm
  • /tmp/test_output_video_1_240x135.pcm
  • /tmp/test_output_video_2_320x180.pcm

(Opcional) Use o FFmpeg para reproduzir arquivos de saída no Linux e no Mac

O FFmpeg pode ser usado para reproduzir arquivos de áudio e vídeo criados. Exemplos de comandos:

Linux e Mac

# Audio
$ ffplay -f s16le -ar 48k -af aformat=channel_layouts=mono \
    /tmp/test_output_audio.pcm

# Video
#
# `video_size` must match the resolution in the video filename (320x180 in
# this example).
$ ffplay -f rawvideo -pixel_format yuv420p -video_size 320x180 \
    /tmp/test_output_video_0_320x180.yuv

Opções

É possível especificar estas opções ao executar as amostras:

Opção Descrição
--output_file_prefix PREFIX Especifique o prefixo dos arquivos de saída. O valor padrão é /tmp_test_output_.
--collection_duration DURATION Especifique por quanto tempo coletar mídia. O valor padrão é 30s.
--join_timeout TIMEOUT Especifique quanto tempo esperar para que o app participe da conferência. O valor padrão é 2m.
--meet_api_url URL Especifique o URL da API Meet Media. O valor padrão é https://meet.googleapis.com/v2alpha/.