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 미디어 API를 중지할 수 있습니다. 
동의자 요구사항
Meet 미디어 API 앱은 통화에 모임을 대신하여 동의를 제공할 수 있는 사용자가 있는 경우에만 모임에 참여할 수 있습니다.
Google Workspace 회의
Google Workspace 회의에서 동의를 제공하려면 회의를 소유한 조직에 속해 있어야 합니다. 대부분의 경우 회의 소유자는 주최자와 동일합니다. 호스트 또는 시작자가 회의에 참여하고 및 회의를 소유한 조직에 속해 있는 경우 시작 대화상자가 우선적으로 표시됩니다.
소비자 회의
Gmail 계정으로 주최되는 회의의 경우 동의를 제공하려면 시작자가 회의에 참여해야 합니다.
일반적인 용어
- Cloud 프로젝트 번호
- Google Cloud 프로젝트의 변경 불가능한 생성된 int64식별자입니다. 이러한 값은 등록된 각 앱에 대해 Google Cloud 콘솔에서 생성됩니다.
- 회의
- 회의 스페이스 내 통화의 서버 생성 인스턴스입니다. 사용자는 일반적으로 이 시나리오를 단일 회의로 간주합니다.
- 회의 리소스 데이터 채널
- Google Meet REST API와 같이 HTTP를 통해 리소스를 요청하는 대신 Meet Media API 클라이언트는 데이터 채널을 통해 서버에서 리소스를 요청합니다. - 각 리소스 유형에 대해 전용 데이터 채널이 열릴 수 있습니다. 채널이 열리면 클라이언트는 채널을 통해 요청을 보낼 수 있습니다. 리소스 업데이트는 동일한 채널을 통해 전송됩니다. 
- 기여 소스 (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에서 개발을 참고하세요.