Meet 미디어 API: C++ 참조 클라이언트 빠른 시작

이 페이지에서는 C++ 참조 클라이언트 구현을 사용하여 샘플을 설정하고 실행하는 방법을 설명합니다. TypeScript 클라이언트에 대해 알아보려면 TypeScript 참조 클라이언트 빠른 시작을 참고하세요.

기본 요건

이 빠른 시작을 실행하려면 다음 기본 요건이 필요합니다.

Meet REST API 사용 설정

Google API를 사용하려면 먼저 Google Cloud 프로젝트에서 사용 설정해야 합니다. 단일 Google Cloud 프로젝트에서 하나 이상의 API를 사용 설정할 수 있습니다.

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 Meet REST API를 사용 설정합니다.

    API 사용 설정

  2. 올바른 Cloud 프로젝트에서 Meet REST API를 사용 설정하고 있는지 확인한 후 다음을 클릭합니다.

  3. Meet REST API를 사용 설정했는지 확인한 후 사용 설정을 클릭합니다.

gcloud CLI

  1. 필요한 경우 현재 Cloud 프로젝트를 생성한 프로젝트로 설정합니다.

    gcloud config set project PROJECT_ID

    PROJECT_ID를 생성한 Cloud 프로젝트의 프로젝트 ID로 바꿉니다.

  2. Meet REST API를 사용 설정합니다.

    gcloud services enable meet.googleapis.com

C++ 클라이언트 빌드

C++ 구현은 Generate Ninja (GN)로 빌드됩니다. 자세한 내용은 WebRTC 문서를 참고하세요.

  1. Google의 Git에서 비밀번호를 생성하고 Git을 구성합니다.

  2. 명령줄 인터페이스 (CLI)에서 <samples_location>를 샘플이 있는 디렉터리로 변경하고 다음 명령어를 실행합니다.

    • 작업 디렉터리를 홈 디렉터리로 변경합니다.
    • 홈 디렉터리에 src라는 디렉터리를 만듭니다.
    • 작업 디렉터리를 src로 변경합니다.
    • git에서 src/ 디렉터리로 https://chromium.googlesource.com/chromium/tools/ depot_tools.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 토큰 생성

Meet Media API에 연결하려면 앱에서 OAuth를 사용하여 액세스 토큰을 생성해야 합니다. OAuth를 사용하여 Google API에 액세스하는 방법을 자세히 알아보려면 OAuth 2.0을 사용하여 Google API에 액세스를 참고하세요.

OAuth 2.0 Playground를 사용하여 토큰을 생성할 수 있습니다. 플레이그라운드를 사용할 때는 다음 사항을 확인하세요.

  • 클라우드 프로젝트의 클라이언트 ID 및 보안 비밀 사용자 인증 정보를 사용합니다.
  • 올바른 범위를 요청합니다.
  • 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 Meet Media API API의 URL을 지정합니다. 기본값은 https://meet.googleapis.com/v2alpha/입니다.