쇼 라이브방송 시나리오는 소셜 엔터테인먼트 모드의 비디오 인터랙티브 시나리오이며, 많은 사용자들이 같이 비디오 연결을 지원하여 사용자의 참여 유도와 소비 의향 및 충성도를 높이기 쉽습니다. 또한, 쇼 라이브방송은 다른 방의 스트리머 간의 크로스 룸 PK를 지원하여 라이브방송의 재미를 더욱 강화시킵니다. 크로스 룸 연결 PK의 지연 시간은 300ms 미만이며 동시에 시청자와 스트리머의 연결을 지원하고, 마이크 연결/해제 시 원활한 전환이 가능하여 쇼 라이브 시나리오의 고빈도 인터랙티브 요구를 충족합니다. 쇼 라이브방송의 스마트 뷰티 기능 또한 스트리머의 개인화 요구를 충족시켜 라이브 방송을 더욱 매력적으로 만듭니다.
구현 방안
일반적으로 완전한 쇼 라이브방송 시나리오를 구현하려면 여러 기능 모듈이 필요합니다. 룸 관리, 마이크 관리, 미디어 스트림 관리, 클라우드 레코딩 등 있습니다. 각 기능 모듈의 주요 작업 및 기능 포인트는 아래 표와 같습니다. 다음으로 각 기능 모듈을 하나씩 소개하여 쇼 라이브방송 구축에 필요한 기능에 대한 완전한 이해를 만들어주겠습니다.
기능 모듈
주요 작업 및 기능 포인트
룸 관리
룸 목록, 룸 생성, 룸 입장, 룸 나가기, 룸 파기
마이크 순위 관리
마이크 사용 신청, 마이크 사용 포기, 마이크 사용 초청, 강제로 마이크 사용 불가, 마이크 사용 금지
미디어 스트림 관리
RTC Engine 실시간 인터랙티브의 솔루션
클라우드 레코딩
RTC Engine 클라우드 레코딩
쇼 라이브 방송 시나리오의 전체 업무 아키텍처는 아래 그림과 같습니다. 방주인이 방을 생성하면 사용자는 관심 있는 방을 선택해서 입장할 수 있습니다. 방에 입장한 사용자는 마이크를 켜고 스트리머와 오디오/비디오로 인터랙티브할 수 있습니다. 일반적으로 규정 준수 요구 사항으로 인해 방 내 오디오/비디오 콘텐츠는 녹화되어 심사에 제출되어야 합니다.
설명:
레코딩 심사 단계에서는 실제 업무 요구 사항에 따라 타겟 단일 스트림 또는 혼합 스트림을 선택할 수 있습니다.
레코딩 및 심사 단계에서는 실제 업무 요구 사항에 따라 RTC Engine 레코딩 심사를 선택할 수 있습니다.
룸 관리
룸 관리 모듈은 주로 룸 목록 유지 관리를 담당하며, 주로 다음 기능을 포함합니다.
방 생성: 사용자가 업무 시스템에 로그인한 후 방을 생성할 수 있으며, 방 생성 후 방 목록에 추가 작업이 이루어집니다.
방 입장: 사용자는 기존 방에 입장할 수 있으며, 방 임장 후 현재 방 인원 목록에 추가 작업이 이루어집니다.
방 나가기: 사용자는 현재 방을 나갈 수 있으며, 방 나간 후 현재 방 인원 목록에 삭제 작업이 이루어집니다.
방 파기: 모든 사용자가 방을 나간 후 방을 파기해야 하며, 방 파기 후 방 목록에 삭제 작업이 이루어집니다.
설명:
룸 관리는 쇼 라이브 방송을 구현하기 위한 필수 모듈이지만 주요 기능 모듈은 아닙니다. 구체적으로는 업무 시스템 및 Chat & RTC Engine SDK와 결합하여 구현할 수 있으며, 자세한 내용은 음성 채팅방-룸 관리를 참조하세요.
마이크 순위 관리
라이브 방송실 내의 마이크 순위는 일반적으로 순서가 있고 제한적입니다. 마이크 순위 관리는 주로 업무 시나리오에 따라 방 내의 마이크 수량을 정하고, 현재 방의 모든 마이크 순위 상태를 관리하는 역할을 합니다. 마이크 순위 관리에는 주로 다음이 포함됩니다. 마이크 사용 신청, 마이크 사용 자동 포기, 마이크 사용 초청, 강제로 마이크 사용 불가, 마이크 사용 금지등 있습니다.
사용자가 방에 입장한 후, 비어 있는 상태의 마이크만 사용을 신청할 수 있습니다.
방주인이 사용자의 마이크 신청을 수용한 후에는 마이크 순위 상태를 비어 있지 않음으로 수정해야 합니다.
사용자가 스트리밍을 중단하고 마이크 사용을 포기한 후 마이크 순위 상태를 재설정해야 합니다.
방 주인은 마이크 잠금, 마이크 사용 초청, 강제로 마이크 사용 불가, 마이크 사용 금지등의 권한이 있습니다.
설명:
마이크 관리는 쇼 라이브 방송을 구현하기 위한 필수 모듈이지만 주요 기능 모듈은 아닙니다. 구체적으로는 업무 시스템 및 Chat & RTC Engine SDK와 결합하여 구현할 수 있으며, 자세한 내용은 음성 채팅방-마이크 관리를 참조하세요.
미디어 스트림 관리
일반적인 쇼 라이브 방송 시나리오에서는 RTC Engine 실시간 인터랙티브 솔루션을 권장합니다.스트리머와 시청자 모두 RTC 프로토콜을 사용하여 스트림을 푸시 및 풀하며, 이 솔루션은 최소한의 엔드투엔드 지연 시간을 제공합니다. 동시에 시청자의 마이크 연결/해제는 더 원활하고 화면 빠르기/되감기 등의 급격한 변화 현상이 없습니다. 다중 사용자 마이크 연결 라이브 인터랙티브를 예로 들면, 쇼 라이브 방송의 순수 RTC 푸시/풀 스트리밍 시나리오의 주요 아키텍처는 아래 그림과 같습니다.
해당 솔루션의 전체 프로세스는 다음과 같습니다.
1. 스트리머와 시청자는 모두 시그널링 모듈을 통해 연결됩니다.시그널링 모듈은 주로 라이브 방송의 프로세스 제어와 라이브 방송의 상태 동기화를 관리합니다.
2. 연결된 시청자 유무와 관계없이 스트리머와 시청자는 모두 RTC Engine 오디오/비디오 클라우드 서비스를 통해 스트림을 푸시 및 풀합니다.
3. 시청자가 스트리머와 연결을 요청하면, 시그널링 모듈이 스트리머에게 알리고 연결 요청자의 개인 정보를 동기화합니다.
4. 스트리머가 연결 요청을 수락하면 연결된 시청자가 스트리밍을 시작하고 방 내 모든 멤버는 스트림 업데이트 알림을 받으며 연결된 시청자의 오디오/비디오 스트림을 풀합니다.
5. 연결된 시청자가 마이크 나가기의 요청을 하면 스트리밍을 중지하고 방의 모든 멤버는 스트림 업데이트 알림을 받으며 해당 시청자의 오디오/비디오 스트림을 풀하지 않습니다.
설명:
시그널링 모듈은 자체 개발 시그널링 채널일 수 있으며 동시에 텐센트 클라우드 Chat을 사용하여 시그널링 교체하는 것이 좋습니다.
클라우드 레코딩
RTC Engine 최신 업그레이드된 클라우드 레코딩은 RTC Engine 내부의 실시간 레코딩 클러스터를 사용하여 오디오 및 비디오를 녹화하며, 더 완전하고 통일된 레코딩 경험을 제공합니다.
단일 스트림 레코딩: RTC Engine 클라우드 레코딩 기능을 통해 방 안의 각 사용자의 오디오 및 비디오 스트림을 독립적인 파일로 녹화할 수 있습니다.
혼합 스트림 레코딩: 동일한 방의 오디오 및 비디오등 미디어 스트림을 하나의 파일로 혼합하여 녹화합니다.
쇼 라이브 방송 시나리오에서는 일반적으로 혼합 스트림 레코딩 솔루션을 사용합니다.스트리머 또는 연결된 시청자의 단일 스트림 심사가 필요한 경우 단일 스트림 레코딩 솔루션을 선택할 수 있습니다.
핵심 업무의 로직
선물과 좋아요 메시지
쇼 라이브 방송 시나리오에서 선물과 좋아요는 일반적인 인터랙티브 방식이고 시청자는 선물을 보내고 좋아요를 눌러 스트리머에 대한 사랑과 지원을 표현할 수 있으며, 스트리머도 이로부터 수익을 얻을 수 있습니다. 아래에서는 텐센트 클라우드 Chat을 기반으로 한 선물 메시지 및 좋아요 메시지 구현 방식을 각각 소개하겠습니다.
선물 메시지
1. 클라이언트는 자체 업무 서버와 연결을 요청하면 선물 결제 로직이 관련됩니다.
2. 요금 결제 후 발송자는 XXX가 XXX 선물을 보낸 것을 직접 확인할 수 있습니다(발송자가 자신이 보낸 선물을 직접 볼 수 있도록 하기 위함이며, 메시지 수량이 많을 경우 포기 전략이 트리거될 수 있습니다).
1. 좋아요는 요금이 부과되지 않으며 일반적으로 클라이언트에서 직접 그룹 커스텀 메시지를 보내는 방식을 사용합니다.
2. 서버 측에서 카운팅이 필요한 좋아요 메시지의 경우, 클라이언트에서 쓰로틀링을 적용한 후 클라이언트의 좋아요 누르는 횟수를 집계하여 짧은 시간 내의 여러번으로 누른 좋아요 메시지를 병합하고 한 번만 메시지를 전송합니다. 업무 측 서버는 그룹 메시지 전송 후 를 콜백하여 좋아요 누르는 횟수를 받아 통계를 수행합니다.
3. 서버 측에서 카운팅이 필요하지 않은 좋아요 메시지의 경우, 단계 2의 로직과 동일하게 업무 측은 클라이언트에서 좋아요 메시지를 쓰로틀링한 후 전송하며, 그룹 메시지 전송 후 콜백에서 카운팅할 필요가 없습니다.
주의:
중요한 메시지(예: 선물 메시지)는 높은 우선순위로 설정하고 빈도가 높지만 중요하지 않은 메시지(예: 좋아요 메시지)는 낮은 우선순위로 설정하세요.
쇼 라이브 방송 시나리오에서 뷰티 기능은 자주 사용되는 기능입니다. 뷰티 기능은스트리머의 외모를 개선할 뿐만 아니라 다양한 스티커 효과를 통해 라이브 방송의 재미를 더할 수 있습니다. RTC Engine 뷰티 AR SDK 통합을 지원하며 화산 뷰티, 얼굴 뷰티 등 시중의 주요 타사 뷰티 제품도 지원할 수 있습니다.
스트리머 간의 크로스 룸 연결 PK는 쇼 라이브 방송에서 매우 일반적인 플레이 방식이며 인터랙티브 라이브 방송의 재미를 높이고 시청자들이 선물을 보내고 랭킹을 올리려는 욕구를 자극합니다. RTC Engine 여러 방과 여러 스트리머 간의 크로스 룸 연결 PK를 지원합니다.아래에서 구체적인 구현 방법을 소개합니다.
1. 구현 원리
기본적으로 동일한 방 내의 사용자들 간에만 음성 및 영상 통화가 가능하며 서로 다른 방 간의 음성 및 영상 스트림은 분리되어 있습니다. 크로스 룸 연결을 통해 다른 방의 스트리머의 음성 및 영상 스트림을 자신이 있는 방에 게시할 수 있으며, 동시에 자신의 음성 및 영상 스트림을 대상 스트리머의 방에 게시할 수 있습니다. 이렇게 하면 서로 다른 두 방에 있는 스트리머들이 크로스 룸 음성 및 영상 스트림을 공유할 수 있어서 각 방의 시청자들이 두 스트리머의 음성 및 영상을 볼 수 있습니다.
위 그림은 크로스 룸 연결 PK의 주요 프로세스를 보여줍니다. 예를 들어, 101 방의 스트리머 A가 ConnectOtherRoom()을 통해 102 방의 스트리머 B와 크로스 룸 통화를 합니다.
101 방의 사용자들은 모두 스트리머 B의 onRemoteUserEnterRoom(B) 및 onUserVideoAvailable(B,true) 이 두 가지 이벤트 콜백을 받게 되며, 이는 101방의 사용자들이 모두 스트리머 B의 음성 및 영상을 구독할 수 있음을 의미합니다.
102 방의 사용자들은 모두 스트리머 A의 onRemoteUserEnterRoom(A) 및 onUserVideoAvailable(A,true) 이 두 가지 이벤트 콜백을 받게 되며, 이는 102 방의 사용자들이 모두 스트리머 A의 음성 및 영상을 구독할 수 있음을 의미합니다.
주의:
크로스 룸 연결 PK의 로컬 사용자와 상대방 사용자는 모두 스트리머 역할로 되어야 하며, 오디오/비디오 업스트림이 모두 있어야 합니다.
ConnectOtherRoom()을 여러 번 호출하여 여러 방의 스트리머와 크로스 룸 연결을 구현할 수 있습니다. 현재에 한 방은 최대 세 개의 다른 방의 스트리머와의 크로스 룸 연결이 가능하며, 한 방 내에서 최대 10명의 스트리머가 다른 방의 스크리머와 크로스 룸 연결을 할 수 있습니다.
RTC Engine 크로스 룸 연결 PK는 createSubCloud()을 통해 서브 인스턴스를 생성하여 상대방 방에 가입해서 스트리밍을 주고받는 방식으로도 구현할 수 있으며, 현재 서브 인스턴스의 수량에는 제한이 없어서 향후 여러 방 간 PK 또는 여러 스트리머 간 PK의 업무 확장이 용이해집니다.
2. 실시간 인터랙티브 크로스 룸 연결 프로세스
순수 RTC 시나리오의 크로스 룸 연결 PK 프로세스는 전반적으로 간단합니다. 스트리머와 크로스 룸 연결 스트리머는 서로 RTC 단일 스트림을 풀하고 시청자는 동시에 스트리머와 크로스 룸 연결 스트리머의 RTC 단일 스트림을 풀하며, 시청자는 스트리머와 크로스 룸 연결 스트리머의 미디어 스트림 구독 로직을 독립적으로 제어할 수 있습니다. 실시간 인터랙티브 시나리오의 크로스 룸 연결 프로세스는 아래 그림과 같습니다.
주의:
실시간 인터랙티브 크로스 룸 연결 시나리오에서 방 내 시청자는 크로스 룸 연결 스트리머의 미디어 스트림 구독 로직을 독립적으로 제어할 수 있으며 스트리머 가 크로스 룸 스트리머의 본 방 내의 업스트림 능력을 변경할 수도 있습니다.
시나리오 플레이
단일 스트리머 라이브 방송
라이브 방송에 스트리머가 한 명만 있는 시나리오를 단일 스트리머 라이브 방송이라고 합니다. 이 시나리오에서 라이브 방송의 방 주인은 유일한 스트리머입니다. 시청자는 라이브 방송실에 입장하여 방송을 시청하고 방 주인에게 메시지를 보내거나 선물을 할 수 있습니다.
다중 스트리머 라이브방송
다중스트리머 라이브 방송은 라이브 방송에 여러명의 스트리머가 실시간 음성 및 영상 인터랙티브하는 시나리오를 말합니다. 방 주인은 시청자를 마이크 사용 초대하고 마이크 순위를 제어할 수 있으며 시청자도 마이크의 사용을 신청하여 스트리머와 채팅할 수 있습니다.
크로스 룸 PK 라이브방송
라이브 방송실에서 방송 분위기를 조성하고 빠르게 팬을 모으기 위해 방 주인은 다른 라이브 방송실의 방주인을 초대해서 인터랙티브나 온라인 PK를 할 수 있습니다. 연결된 라이브 방송실의 시청자는 두 방 주인을 동시에 시청할 수 있으며 방 주인의 실시간 퍼포먼스에 따라 선물을 보내거나 빠르게 방송실을 전환해서 다른 방 주인에게 투표할 수 있습니다. 이는 전형적인 비디오 PK 연결 시나리오입니다.
이커머스 라이브 커머스
이커머스 라이브방송은 전자상거래와 비디오 인터랙티브 라이브방송가 결합된 시나리오입니다. 라이브 방송에서 방 주인은 시청자에게 상품을 소개하고 상품 목록과 링크를 제공합니다. 시청자는 마음에 드는 상품을 보면 링크를 클릭해서 빠르게 주문할 수 있습니다. 라이브 방송 중 시청자는 마이크를 켜고 방 주인과 실시간으로 채팅할 수 있으며 상품의 상세 정보를 문의하거나 가격을 협상하거나 사용 후기를 공유하는 등 다양한 활동을 할 수 있습니다. 방 주인은 또 다른 라이브 방송실의 방 주인과 PK 연결을 통해 각자의 상품을 보여주고 시청자의 구매 열기를 자극하며 라이브 방송의 재미를 더할 수 있습니다.