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

Nesta página, explicamos como configurar e executar um exemplo usando a implementação do cliente de referência do C++ client implementation. Para saber mais sobre o cliente do TypeScript, consulte o guia de início rápido do cliente de referência do 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 na nuvem do Google. É 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 na nuvem correto e clique em Próxima.

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

CLI gcloud

  1. Se necessário, defina o projeto na nuvem atual como o que você criou:

    gcloud config set project PROJECT_ID

    Substitua PROJECT_ID pelo ID do projeto do projeto na nuvem que você criou.

  2. Ative a API REST do Meet:

    gcloud services enable meet.googleapis.com

Criar o cliente do C++

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

  1. Gere uma senha do 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 os exemplos e execute o comando a seguir, que:

    • Altera o diretório de trabalho para o diretório inicial.
    • Cria um diretório no diretório inicial chamado src.
    • Altera 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 que o shell pesquisa para comandos executáveis.
    • Altera o diretório de trabalho para o diretório cpp no local dos exemplos.
    • Executa o script de 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.

Quando terminar, 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 metadados de mídia e participantes de uma reunião.

Esses exemplos coletam dados por um período especificado (o padrão é de 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, os exemplos incluem a resolução nos nomes dos arquivos de vídeo.

Os arquivos de metadados dos participantes 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. O exemplo não determina qual participante criou os dados de áudio e vídeo. Portanto, o uso desse exemplo em uma reunião com mais de um participante pode resultar em saída corrompida.

Para executar o exemplo de mídia de usuário único, use:

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 streams 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 vão incluir um contador crescente e a resolução desse arquivo. Por exemplo, se a resolução do stream de vídeo mudou de 320 x 180 para 240 x 135 e depois voltou 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) Usar o FFmpeg para reproduzir arquivos de saída no Linux e Mac

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 essas opções ao executar os exemplos:

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