Google Meet Media API를 사용하면 Google Meet 회의의 실시간 미디어에 액세스할 수 있습니다. 이를 통해 작업 항목을 문서화하거나, 현재 회의에 관한 실시간 통계를 제공하거나, 새로운 표시 영역에 오디오와 동영상을 스트리밍하는 앱과 같은 다양한 사용 사례를 지원할 수 있습니다.
사용 사례
Google Cloud 콘솔에 등록된 앱은 Meet Media API를 사용하여 Meet 회의에 연결할 수 있으며, 이를 통해 다음 작업을 할 수 있습니다.
- 동영상 스트림 사용 예:
- Meet 회의에서 생성된 동영상 스트림을 자체 AI 모델에 피드합니다.
- 맞춤 녹화 콘텐츠의 스트림을 필터링합니다.
- 오디오 스트림 사용 예:
- 오디오를 Gemini에 직접 입력하고 나만의 회의 AI 챗봇을 만드세요.
- Meet 회의에서 생성된 오디오 스트림을 자체 텍스트 변환 서비스에 피드
- 다양한 언어로 자막을 생성합니다.
- 캡처된 오디오에서 모델 생성 수어 피드를 만듭니다.
- 자체 노이즈 제거 모델을 만들어 회의에서 배경과 소음 아티팩트를 제거합니다.
- 참여자 메타데이터 사용 예:
- 회의에 참여한 사용자를 감지하여 더 나은 인텔리전스 및 분석을 지원합니다.
Meet Media API 수명 주기
다음 이미지는 Meet Media API 수명 주기를 보여줍니다.
-
그림 1. Meet Media API 봇이 서드 파티 웹사이트에 참여하려고 합니다. 미성년자 계정이 있으면 연결이 거부됩니다. -
그림 2. 회의는 암호화된 것으로 표시될 수 있으며 워터마크가 표시될 수 있습니다. 회의에 암호화 또는 워터마크가 있는 경우 Meet Media API를 연결할 수 없습니다. -
그림 3. 관리자 설정이 올바른지 확인합니다. -
그림 4. Calendar에서 회의를 설정합니다. 호스트가 Calendar 설정에서 서드 파티 앱에 권한을 부여해야 합니다. 그렇지 않으면 연결이 거부됩니다. -
그림 5. 통화 중 설정 변경 호스트가 통화 중에 Meet 미디어 API 설정을 사용 중지하면 연결이 중지됩니다. -
그림 6. 회의 소유자에게 일반 사용자 계정(@gmail.com으로 끝나는 계정)이 있는 경우 회의를 시작하는 사용자가 회의에 참석하여 동의해야 합니다. 그렇지 않으면 연결이 거부됩니다. -
그림 7. 연결이 설정되면 호스트, 공동 호스트 또는 호스트와 동일한 조직에 있는 모든 참여자에게 시작 대화상자가 표시됩니다. -
그림 8. 통화 중에 누구나 Meet Media API를 중지할 수 있습니다.
일반적인 용어
- Cloud 프로젝트 번호
- Google Cloud 프로젝트의 변경 불가능한 생성된
int64
식별자입니다. 이러한 값은 등록된 각 앱에 대해 Google Cloud 콘솔에서 생성됩니다. - 회의
- 회의 스페이스 내 통화의 서버 생성 인스턴스입니다. 사용자는 일반적으로 이 시나리오를 단일 회의로 간주합니다.
- 회의 리소스 데이터 채널
Google Meet REST API와 달리 Meet Media API 클라이언트는 HTTP를 통해 리소스를 요청하는 대신 데이터 채널을 통해 서버에서 리소스를 요청합니다.
각 리소스 유형에 대해 전용 데이터 채널이 열릴 수 있습니다. 열리면 클라이언트는 채널을 통해 요청을 보낼 수 있습니다. 리소스 업데이트는 동일한 채널을 통해 전송됩니다.
- 기여 소스 (CSRC)
가상 미디어 스트림을 사용하면 미디어 스트림이 항상 동일한 참여자를 가리킨다고 가정할 수 없습니다. 각 RTP 패킷의 헤더에 있는 CSRC 값은 패킷의 실제 소스를 식별합니다.
Meet은 회의에 참여하는 각 참여자에게 참여 시 고유한 CSRC 값을 할당합니다. 이 값은 사용자가 나갈 때까지 일정하게 유지됩니다.
- 데이터 채널
WebRTC 데이터 채널을 사용하면 오디오 및 동영상 스트림과 독립적으로 임의 데이터 (텍스트, 파일 등)를 교환할 수 있습니다. 데이터 채널은 미디어 스트림과 동일한 연결을 사용하여 WebRTC 애플리케이션에 데이터 교환을 추가하는 효율적인 방법을 제공합니다.
- 대화형 연결 설정 (ICE)
연결을 설정하고, 두 컴퓨터가 P2P 네트워킹을 통해 서로 통신할 수 있는 모든 가능한 경로를 찾은 다음 연결을 유지하는 프로토콜입니다.
- 미디어 스트림
WebRTC 미디어 스트림은 일반적으로 카메라나 마이크와 같은 기기에서 캡처된 미디어 데이터(일반적으로 오디오 또는 동영상)의 흐름을 나타냅니다. 하나 이상의 미디어 스트림 트랙으로 구성되며, 각 트랙은 동영상 트랙이나 오디오 트랙과 같은 단일 미디어 소스를 나타냅니다.
- 미디어 스트림 트랙
RTP 패킷의 단일 단방향 흐름으로 구성됩니다. 미디어 스트림 트랙은 오디오 또는 동영상일 수 있지만 둘 다일 수는 없습니다. 양방향 보안 실시간 전송 프로토콜 (SRTP) 연결은 일반적으로 로컬에서 원격 피어로의 이그레스와 원격 피어에서 로컬 피어로의 인그레스라는 두 개의 미디어 스트림 트랙으로 구성됩니다.
- 회의 스페이스
회의가 개최되는 가상 장소 또는 지속적인 객체 (예: 회의실)입니다. 언제든지 하나의 스페이스에서 하나의 활성 회의만 개최할 수 있습니다. 회의 공간은 사용자가 만나서 공유 리소스를 찾는 데도 도움이 됩니다.
- 참여자
회의에 참여하거나 컴패니언 모드를 사용하는 사용자, 시청자로 시청하는 사용자 또는 통화에 연결된 회의실 기기 참여자가 회의에 참여하면 고유 ID가 할당됩니다.
- 관련 스트림
클라이언트가 열 수 있는 가상 오디오 스트림 및 가상 동영상 스트림 수에는 한도가 있습니다.
컨퍼런스의 참여자 수가 이 숫자를 초과할 수 있습니다. 이러한 상황에서 Meet 서버는 '가장 관련성 높은' 것으로 간주되는 참여자의 오디오 및 동영상 스트림을 전송합니다. 관련성은 화면 공유, 참여자가 얼마나 최근에 말했는지 등 다양한 특성으로 결정됩니다.
- Selective Forwarding Unit (SFU)
선택적 포워딩 단위 (SFU)는 미디어 스트림 배포를 관리하는 WebRTC 회의의 서버 측 구성요소입니다. 참여자는 SFU에만 연결되며, SFU는 관련 스트림을 다른 참여자에게 선택적으로 전달합니다. 이렇게 하면 클라이언트 처리 및 대역폭 요구사항이 줄어들어 확장 가능한 회의가 가능합니다.
- 세션 설명 프로토콜 (SDP)
WebRTC가 P2P 연결을 협상하는 데 사용하는 신호 메커니즘입니다.
RFC 8866
에서 관리합니다.- SDP 답변
SDP 제안에 대한 응답입니다. 대답은 원격 피어로부터 수신된 스트림을 거부하거나 수락합니다. 또한 제품 피어에 다시 전송할 스트림을 협상합니다. SDP 대답은 초기 제안에서 신호가 전송된 스트림을 추가할 수 없습니다. 일화적으로, 제공 피어가 원격 피어로부터 최대 3개의 오디오 스트림을 수락한다고 신호를 보내는 경우 이 원격 피어는 전송을 위해 4개의 오디오 스트림을 신호로 보낼 수 없습니다.
- SDP 혜택
오퍼-응답 P2P 협상 흐름의 초기 SDP입니다. 이 제안은 시작 피어에 의해 생성되며 피어 투 피어 세션의 조건을 명시합니다. 항상 Meet Media API 클라이언트에서 제안을 생성하고 Meet 서버에 제출합니다.
예를 들어 혜택은 제안자가 전송 (또는 수신 가능)하는 오디오 또는 동영상 스트림의 수와 데이터 채널을 열지 여부를 나타낼 수 있습니다.
- 동기화 소스 (SSRC)
SSRC는 RTP (실시간 전송 프로토콜) 세션 내에서 미디어 스트림의 단일 소스를 고유하게 식별하는 32비트 식별자입니다. WebRTC에서 SSRC는 서로 다른 참여자 또는 동일한 참여자의 서로 다른 트랙 (예: 서로 다른 카메라)에서 시작되는 서로 다른 미디어 스트림을 구분하는 데 사용됩니다.
- RtpTransceiver
RFC 8829
에 자세히 설명된 대로 트랜시버는 피어 투 피어 세션의 RTP 스트림을 둘러싼 추상화입니다.단일 트랜시버는 SDP의 단일 미디어 설명에 매핑되고 설명됩니다. 트랜시버는
RtpSender
와RtpReceiver
로 구성됩니다.RTP는 양방향이므로 각 피어에는 동일한 RTP 연결을 위한 자체 트랜시버 인스턴스가 있습니다. 로컬 피어의 지정된 트랜시버의
RtpSender
는 원격 피어의 특정 트랜시버의RtpReceiver
에 매핑됩니다. 반대의 경우도 마찬가지입니다. 원격 피어의 동일한 트랜시버의RtpSender
가 로컬 피어의RtpReceiver
에 매핑됩니다.모든 미디어 설명에는 전용 트랜시버가 있습니다. 따라서 RTP 스트림이 여러 개인 피어 투 피어 세션에는 각 피어에 대해
RtpSenders
및RtpReceiver
가 여러 개인 트랜시버가 여러 개 있습니다.- 가상 미디어 스트림
가상 미디어 스트림은 WebRTC 회의에서 선택적 전달 단위 (SFU)에 의해 생성된 집계 미디어 스트림입니다. 각 참여자가 다른 모든 사용자에게 개별 스트림을 전송하는 대신 SFU는 선택된 참여자 스트림을 더 적은 수의 아웃바운드 가상 스트림으로 멀티플렉싱합니다. 이렇게 하면 연결 토폴로지가 간소화되고 참여자의 부하가 줄어들어 확장 가능한 회의가 가능해집니다. 각 가상 스트림에는 SFU에서 동적으로 관리하는 여러 참여자의 미디어가 포함될 수 있습니다.
관련 주제
Meet Media API 클라이언트 개발을 시작하는 방법을 알아보려면 시작하기의 단계를 따르세요.
샘플 Meet Media API 참조 클라이언트를 설정하고 실행하는 방법을 알아보려면 C++ 참조 클라이언트 빠른 시작을 참고하세요.
개념 개요는 Meet Media API 개념을 참고하세요.
WebRTC에 대해 자세히 알아보려면 WebRTC For The Curious를 참고하세요.
인증 및 승인 처리를 비롯한 Google Workspace API를 사용한 개발에 대해 알아보려면 Google Workspace에서 개발을 참고하세요.