Meet Media API: C++ referans istemcisi hızlı başlangıç kılavuzu

Bu sayfada, C++ referans istemci uygulaması kullanılarak bir örneğin nasıl ayarlanacağı ve çalıştırılacağı açıklanmaktadır. Bunun yerine TypeScript istemcisi hakkında bilgi edinmek için TypeScript referans istemcisi hızlı başlangıç kılavuzuna bakın.

Ön koşullar

Bu hızlı başlangıcı çalıştırmak için aşağıdaki ön koşulları karşılamanız gerekir:

Meet REST API'yi etkinleştirme

Google API'lerini kullanmadan önce bir Google Cloud projesinde etkinleştirmeniz gerekir. Tek bir Google Cloud projesinde bir veya daha fazla API'yi etkinleştirebilirsiniz.

Google Cloud konsolu

  1. Google Cloud Console'da Meet REST API'yi etkinleştirin.

    API'leri etkinleştirme

  2. Meet REST API'yi doğru Cloud projesinde etkinleştirdiğinizi onaylayıp Sonraki'yi tıklayın.

  3. Meet REST API'yi etkinleştirdiğinizi onaylayın ve Etkinleştir'i tıklayın.

gcloud CLI

  1. Gerekirse mevcut Cloud projesini oluşturduğunuz projeyle değiştirin:

    gcloud config set project PROJECT_ID

    PROJECT_ID kısmını, oluşturduğunuz Cloud projesinin proje kimliği ile değiştirin.

  2. Meet REST API'yi etkinleştirin:

    gcloud services enable meet.googleapis.com

C++ istemcisini oluşturma

C++ uygulaması Generate Ninja (GN) ile oluşturulur. Daha fazla bilgi için WebRTC belgelerine bakın.

  1. Git at Google'dan şifre oluşturun ve Git'i yapılandırın.

  2. Komut satırı arayüzünüzde (CLI) <samples_location> yerine örnekleri içeren dizini girin ve aşağıdaki komutu çalıştırın. Bu komut:

    • Çalışma dizininizi ana dizininizle değiştirir.
    • Ana dizininizde src adlı bir dizin oluşturur.
    • Çalışma dizininizi src olarak değiştirir.
    • https://chromium.googlesource.com/chromium/tools/depot_tools.git adresini git'ten src/ dizinine kopyalar.
    • ~/src/depot_tools dizinini, kabuğun yürütülebilir komutlar için arama yaptığı konumlar listesine geçici olarak ekler.
    • Çalışma dizininizi, örneklerinizin bulunduğu konumdaki cpp dizini olarak değiştirir.
    • ./build.sh kabuk komut dosyasını çalıştırır.
    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 jetonları oluşturma

Meet Media API'ye bağlanmak için uygulamanızın erişim jetonları oluşturmak üzere OAuth kullanması gerekir. Google API'lerine OAuth ile erişme hakkında daha fazla bilgi edinmek için Google API'lerine Erişmek İçin OAuth 2.0'ı Kullanma başlıklı makaleyi inceleyin.

Jeton oluşturmak için OAuth 2.0 Playground'u kullanabilirsiniz. Playground'u kullanırken şunlara dikkat edin:

  • Cloud projenizdeki istemci kimliğinizi ve gizli kimlik bilgilerinizi kullanın.
  • Doğru kapsamları isteyin.
  • Google Hesabı'nda oturum açın ve erişimi kabul edin.

İşlem tamamlandıktan sonra Exchange authorization code for tokens düğmesini tıklayın ve oluşturulan erişim jetonunu kopyalayın.

Toplantı başlatma

OAuth jetonunu oluşturmak için kullandığınız kullanıcı hesabıyla toplantı başlatın. Toplantı kodunu kopyalayın. Artık örnekleri çalıştırmaya hazırsınız.

Örnek uygulamalar

GitHub deposunda, toplantıdan medya ve katılımcı meta verilerini alma örnekleri yer alır.

Bu örnekler, belirli bir süre boyunca (varsayılan olarak 3 saniye) veri toplar ve toplanan verileri dosyalara yazar.

Ses dosyaları PCM16 biçimindedir. Video dosyaları YUV420p biçiminde olmalıdır. Bu dosyalar, FFmpeg gibi bir kitaplık kullanılarak oynatılabilir.

Toplantı sırasında video çözünürlükleri değişebileceğinden örneklerde video dosyası adlarındaki çözünürlük yer alır.

Katılımcı meta veri dosyaları, okunabilir metin dosyalarıdır.

Tek Kullanıcılı Medya Örneği

Tek kullanıcılı medya örneği, ses ve video toplama üzerine odaklanan temel bir uygulamadır. Örnek, ses ve video verilerini hangi katılımcının oluşturduğunu belirlemez. Bu nedenle, bu örneği birden fazla katılımcının olduğu bir toplantıda kullanmak bozuk çıktıya neden olabilir.

Tek kullanıcılı medya örneğini çalıştırmak için aşağıdaki komutu çalıştırın:

Linux

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

Varsayılan olarak, tek bir ses dosyası /tmp/test_output_audio.pcm konumuna kaydedilir.

Toplantı sırasında video akışlarının çözünürlüğü değişebileceğinden birden fazla video dosyası oluşturulabilir. Video dosyası adları, artan bir sayaç ve dosyanın çözünürlüğünü içerir. Örneğin, video akışı çözünürlüğü 320x180'den 240x135'e ve ardından tekrar 320x180'e değişirse aşağıdaki video dosyaları oluşturulur:

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

(İsteğe bağlı) Çıkış dosyalarını Linux ve Mac'te oynatmak için FFmpeg'i kullanma

Oluşturulan ses ve video dosyalarını oynatmak için FFmpeg kullanılabilir. Örnek komutlar:

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

Seçenekler

Örnekleri çalıştırırken aşağıdaki seçenekleri belirtebilirsiniz:

Seçenek Açıklama
--output_file_prefix PREFIX Çıkış dosyalarının ön ekini belirtin. Varsayılan olarak /tmp_test_output_ değerine ayarlanır.
--collection_duration DURATION Medyanın ne kadar süreyle toplanacağını belirtin. Varsayılan olarak 30s değerine ayarlanır.
--join_timeout TIMEOUT Uygulamanın konferansa katılması için beklenecek süreyi belirtin. Varsayılan olarak 2m değerine ayarlanır.
--meet_api_url URL Meet Media API API'sinin URL'sini belirtin. Varsayılan olarak https://meet.googleapis.com/v2alpha/ değerine ayarlanır.