Meet Media API: краткое руководство по справочному клиенту C++

На этой странице объясняется, как настроить и запустить пример, используя эталонную реализацию клиента на C++ . Чтобы узнать больше о клиенте на TypeScript, см. краткое руководство по эталонному клиенту на TypeScript .

Предварительные требования

Для запуска этого краткого руководства необходимы следующие предварительные условия:

Включите REST API Meet.

Перед использованием API Google необходимо включить их в проекте Google Cloud. В одном проекте Google Cloud можно включить один или несколько API.

Консоль Google Cloud

  1. В консоли Google Cloud включите REST API Meet.

    Включите API

  2. Убедитесь, что вы включаете REST API Meet в правильном проекте Cloud, затем нажмите «Далее» .

  3. Убедитесь, что вы включили REST API Meet, затем нажмите « Включить» .

gcloud CLI

  1. При необходимости установите в качестве текущего облачного проекта тот, который вы создали:

    gcloud config set project PROJECT_ID

    Замените PROJECT_ID на идентификатор проекта Cloud, который вы создали.

  2. Включите REST API Meet:

    gcloud services enable meet.googleapis.com

Соберите клиент на C++

Реализация на C++ создана с помощью Generate Ninja (GN) . Для получения дополнительной информации см. документацию WebRTC .

  1. Сгенерируйте пароль для Git в Google и настройте Git.

  2. В командной строке (CLI) перейдите в каталог, содержащий образцы <samples_location> ), и выполните следующую команду:

    • Изменяет вашу рабочую директорию на вашу домашнюю директорию.
    • Создает в вашей домашней директории каталог с именем src .
    • Изменяет вашу рабочую директорию на src .
    • Клонирует репозиторий https://chromium.googlesource.com/chromium/tools/depot_tools.git в каталог src/ из репозитория git.
    • Временно добавляет каталог ~/src/depot_tools в список мест, где оболочка ищет исполняемые команды.
    • Эта команда меняет вашу рабочую директорию на директорию cpp, расположенную в папке с примерами кода.
    • Запускает скрипт оболочки ./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

Сгенерировать токены OAuth

Для подключения к API Meet Media ваше приложение должно использовать OAuth для генерации токенов доступа. Подробнее о доступе к API Google с помощью OAuth см. в разделе «Использование OAuth 2.0 для доступа к API Google» .

Для генерации токенов можно использовать OAuth 2.0 Playground . При использовании Playground необходимо выполнить следующие действия:

  • Используйте свой идентификатор клиента и секретные учетные данные из вашего облачного проекта.
  • Запросите необходимые параметры .
  • Войдите в свою учетную запись Google и предоставьте разрешение на доступ.

После завершения нажмите кнопку « Exchange authorization code for tokens и скопируйте сгенерированный токен доступа.

Начать встречу

Начните собрание, используя ту же учетную запись пользователя, которую вы использовали для генерации токена OAuth. Скопируйте код собрания. Теперь вы готовы запустить примеры.

Примеры приложений

В репозитории GitHub представлены примеры для получения медиафайлов и метаданных участников совещания.

Эти образцы собирают данные в течение заданного промежутка времени (по умолчанию 3 секунды) и записывают собранные данные в файлы.

Аудиофайлы представлены в формате PCM16. Видеофайлы представлены в формате YUV420p. Эти файлы можно воспроизводить с помощью таких библиотек, как FFmpeg.

Поскольку разрешение видео может меняться во время совещания, в примерах разрешение указывается в названиях видеофайлов.

Файлы метаданных участников будут представлять собой текстовые файлы, удобочитаемые для человека.

Образец медиафайла для одного пользователя

Пример приложения для одного пользователя — это базовая программа, предназначенная для сбора аудио- и видеоданных. Пример не определяет, кто именно создал эти данные. Поэтому использование этого примера на встрече с участием нескольких человек может привести к искажению результатов.

Для запуска примера воспроизведения мультимедиа для одного пользователя выполните следующую команду:

Linux

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

По умолчанию один аудиофайл сохраняется в /tmp/test_output_audio.pcm .

Поскольку разрешение видеопотока может меняться во время совещания, может быть создано несколько видеофайлов. Имена видеофайлов будут содержать увеличивающийся счетчик и разрешение этого файла. Например, если разрешение видеопотока изменилось с 320x180 на 240x135, а затем обратно на 320x180, будут созданы следующие видеофайлы:

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

(Необязательно) Используйте FFmpeg для воспроизведения выходных файлов в Linux и Mac.

FFmpeg можно использовать для воспроизведения созданных аудио- и видеофайлов. Примеры команд:

Linux и 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

Параметры

При запуске примеров вы можете указать следующие параметры:

Вариант Описание
--output_file_prefix PREFIX Укажите префикс для выходных файлов. По умолчанию используется /tmp_test_output_ .
--collection_duration DURATION Укажите продолжительность сбора медиафайлов. По умолчанию — 30s .
--join_timeout TIMEOUT Укажите, сколько времени нужно подождать, пока приложение подключится к конференции. По умолчанию — 2m .
--meet_api_url URL Укажите URL-адрес для API Meet Media. По умолчанию используется https://meet.googleapis.com/v2alpha/ .