Meet Media API: Hướng dẫn nhanh về ứng dụng tham chiếu C++

Trang này giải thích cách thiết lập và chạy một mẫu bằng cách sử dụng chế độ triển khai ứng dụng tham chiếu C++. Để tìm hiểu về ứng dụng khách TypeScript, hãy xem hướng dẫn nhanh về ứng dụng khách tham chiếu TypeScript.

Điều kiện tiên quyết

Để chạy hướng dẫn bắt đầu nhanh này, bạn cần có các điều kiện tiên quyết sau:

Bật Meet REST API

Trước khi sử dụng API của Google, bạn cần bật các API đó trong một dự án trên Google Cloud. Bạn có thể bật một hoặc nhiều API trong một dự án trên Google Cloud.

Bảng điều khiển Google Cloud

  1. Trong bảng điều khiển Google Cloud, hãy bật Meet REST API.

    Bật các API

  2. Xác nhận rằng bạn đang bật Meet REST API trong dự án Cloud chính xác, sau đó nhấp vào Tiếp theo.

  3. Xác nhận rằng bạn đang bật Meet REST API, sau đó nhấp vào Bật.

gcloud CLI

  1. Nếu cần, hãy đặt dự án hiện tại trên Cloud thành dự án mà bạn đã tạo:

    gcloud config set project PROJECT_ID

    Thay PROJECT_ID bằng Mã dự án của dự án trên Cloud mà bạn đã tạo.

  2. Bật Meet REST API:

    gcloud services enable meet.googleapis.com

Tạo ứng dụng C++

Quá trình triển khai C++ được tạo bằng Generate Ninja (GN). Để biết thêm thông tin, hãy xem tài liệu về WebRTC.

  1. Tạo mật khẩu từ Git tại Google và định cấu hình git.

  2. Trong giao diện dòng lệnh (CLI), hãy thay đổi <samples_location> thành thư mục chứa các mẫu và chạy lệnh sau:

    • Thay đổi thư mục đang hoạt động thành thư mục chính.
    • Tạo một thư mục có tên src trong thư mục gốc.
    • Thay đổi thư mục đang hoạt động thành src.
    • Sao chép https://chromium.googlesource.com/chromium/tools/depot_tools.git vào thư mục src/ từ git.
    • Tạm thời thêm thư mục ~/src/depot_tools vào danh sách các vị trí mà trình bao tìm kiếm các lệnh có thể thực thi.
    • Thay đổi thư mục đang làm việc thành thư mục cpp trong vị trí mẫu của bạn.
    • Chạy tập lệnh ./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

Tạo mã thông báo OAuth

Để kết nối với Meet Media API, ứng dụng của bạn phải sử dụng OAuth để tạo mã truy cập. Để tìm hiểu thêm về cách truy cập vào các API của Google bằng OAuth, hãy xem bài viết Sử dụng OAuth 2.0 để truy cập vào các API của Google.

Bạn có thể sử dụng OAuth 2.0 Playground để tạo mã thông báo. Khi sử dụng Playground, hãy nhớ:

  • Sử dụng mã ứng dụng khách và thông tin xác thực bí mật trong dự án trên đám mây của bạn.
  • Yêu cầu phạm vi chính xác.
  • Đăng nhập vào Tài khoản Google và chấp nhận quyền truy cập.

Sau khi hoàn tất, hãy nhấp vào nút Exchange authorization code for tokens rồi sao chép mã truy cập đã tạo.

Bắt đầu cuộc họp

Bắt đầu cuộc họp bằng chính tài khoản người dùng mà bạn đã dùng để tạo mã thông báo OAuth. Sao chép mã cuộc họp. Giờ đây, bạn đã sẵn sàng chạy các mẫu.

Ứng dụng mẫu

Kho lưu trữ GitHub cung cấp các mẫu để nhận nội dung nghe nhìn và siêu dữ liệu về người tham gia từ một cuộc họp.

Các mẫu này thu thập dữ liệu trong một khoảng thời gian cụ thể (mặc định là 3 giây) và ghi dữ liệu đã thu thập vào các tệp.

Các tệp âm thanh có định dạng PCM16. Tệp video ở định dạng YUV420p. Bạn có thể phát các tệp này bằng cách sử dụng một thư viện như FFmpeg.

Vì độ phân giải video có thể thay đổi trong cuộc họp, nên các mẫu bao gồm độ phân giải trong tên tệp video.

Tệp siêu dữ liệu của người tham gia sẽ là tệp văn bản mà con người có thể đọc được.

Mẫu nội dung nghe nhìn của một người dùng

Mẫu nội dung đa phương tiện cho một người dùng là một ứng dụng cơ bản tập trung vào việc thu thập âm thanh và video. Mẫu này không xác định người tham gia nào đã tạo dữ liệu âm thanh và video. Do đó, việc sử dụng mẫu này trong một cuộc họp có nhiều người tham gia có thể dẫn đến đầu ra bị hỏng.

Để chạy mẫu nội dung đa phương tiện cho một người dùng, hãy chạy:

Linux

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

Theo mặc định, một tệp âm thanh sẽ được lưu vào /tmp/test_output_audio.pcm.

Vì luồng video có thể thay đổi độ phân giải trong cuộc họp, nên có thể tạo ra nhiều tệp video. Tên tệp video sẽ có một bộ đếm tăng dần và độ phân giải của tệp đó. Ví dụ: nếu độ phân giải luồng video thay đổi từ 320x180 thành 240x135 rồi quay lại 320x180, thì các tệp video sau đây sẽ được tạo:

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

(Không bắt buộc) Sử dụng FFmpeg để phát tệp đầu ra trên Linux và Mac

Bạn có thể dùng FFmpeg để phát các tệp âm thanh và video đã tạo. Ví dụ về các lệnh:

Linux và 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

Tùy chọn

Bạn có thể chỉ định các lựa chọn này khi chạy mẫu:

Phương thức Mô tả
--output_file_prefix PREFIX Chỉ định tiền tố cho các tệp đầu ra. Giá trị mặc định là /tmp_test_output_.
--collection_duration DURATION Chỉ định thời gian thu thập nội dung nghe nhìn. Giá trị mặc định là 30s.
--join_timeout TIMEOUT Chỉ định thời gian chờ để ứng dụng tham gia hội nghị. Giá trị mặc định là 2m.
--meet_api_url URL Chỉ định URL cho API Meet Media API. Giá trị mặc định là https://meet.googleapis.com/v2alpha/.