라이브 커머스는 라이브 방송 플랫폼에서 스트리머와 시청자가 실시간으로 인터랙티브하며 상품의 소개및 홍보를 통해서 판매가 이루어지는 전자상거래의 새로운 방식입니다. 이 시나리오에서 스트리머는 일반적으로 의류, 화장품, 가정용품 등 다양한 상품을 라이브 방송실에서 보여주며 제품 특징, 할인 정보 및 사용 방법 등을 시청자에게 설명해줍니다. 시청자는 라이브 방송실에서 문의하고 댓글을 달며 상품을 구매할 수 있어 즉각적인 소통과 거래가 가능합니다. RTC Engine과 Chat 등의 제품을 활용하면 전자상거래 라이브 방송실의 구축을 쉽게 완료할 수 있습니다.
구현 방안
일반적으로 완전한 라이브 커머스 시나리오를 구현하려면 여러 기능 모듈이 필요합니다. 예를 들어 방 관리, 마이크 관리, 상품 관리, 음성및 영상 관리, 클라우드 레코딩 등 있습니다. 각 기능 모듈의 주요 작업 및 기능 포인트는 아래 표와 같습니다. 다음으로 각 기능 모듈을 하나씩 소개하며 전자상거래 라이브 방송 구축에 필요한 기능에 대해 비교적 완전한 인식을 갖출 수 있도록 하겠습니다.
기능 모듈
주요 작업 및 기능 포인트
방 관리
방 생성, 방 입장, 방 나가기, 방 파기
마이크 관리
마이크의 사용 신청, 자동으로 마이크 끄기, 마이크 사용 초청, 강제로 아미크 끄기, 마이크 금언
상품 관리
상품 목록 관리, 상품 팝업 관리, 이동 및 결제
음성 및 영상 관리
로컬 스트리밍, 원격 스트리밍, 시청자의 마이크 연결
클라우드 레코딩
RTC Engine 클라우드 레코딩
라이브 커머스 시나리오의 전체 업무 아키텍처는 아래 그림과 같습니다. 스트리머가 방을 생성하면 다른 사용자는 관심 있는 방을 선택해 입장할 수 있습니다. 방에 입장한 후 사용자는 마이크를 켜고 스트리머와 음성/영상으로 인터랙티브할 수 있습니다. 스트리머는 상품 목록과 상품의 설명 및 업데이트를 관리합니다. 일반적으로 규정 준수를 위해 라이브 방송실 내의 음성/영상 콘텐츠는 녹화되어 심사 받아야 합니다.
방 관리
방 관리 모듈은 주로 방 목록의 유지를 관리하며, 주요 기능은 다음과 같습니다.
방 생성: 사용자가 업무 시스템에 로그인한 후 방을 생성할 수 있으며 방 생성 후 방 목록에 추가 작업이 이루어집니다.
방 입장: 사용자는 기존 방에 입장할 수 있으며, 방에 입장한 후 현재 방의 인원 목록에 추가 작업이 이루어집니다.
방 퇴장: 사용자는 현재 방에서 나갈 수 있으며, 방을 나간 후 현재 방의 인원 목록에서 삭제 작업이 이루어집니다.
방 파기: 모든 사용자가 방을 나간 후 방을 파기해야 하며, 방 파기 후 방 목록에서 삭제 작업이 이루어집니다.
설명:
방 관리는 전자상거래 라이브 방송을 구현하는 데에 필요한 모듈이지만 주요 기능 모듈은 아닙니다. 구체적으로는 업무 시스템 및 Chat & RTC Engine SDK와 결합하여 구현할 수 있으며, 자세한 내용은 음성 채팅방-방 관리을 참조하세요.
마이크 관리
라이브 방송실 내의 마이크 위치는 일반적으로 순서가 정해져 있고 제한적입니다. 마이크 관리는 주로 업무 시나리오에 따라 방 내의 마이크 수량을 정의하고, 현재 방의 모든 마이크 상태를 관리하는 역할을 합니다. 마이크 관리에는 주로 마이크 사용의 신청, 자동으로 마이크 끄기, 아미크 사용 초청, 강제로 아미크 끄기, 마이크 금언등이 포함됩니다.
사용자가 방에 입장한 후 비어 있는 상태의 마이크만에 대해서 사용을 신청할 수 있습니다.
스트리머가 사용자의 마이크 사용 신청을 허락한 후, 마이크 상태를 비어 있지 않음으로 수정해야 합니다.
연결된 사용자가 아미크 끈 후에 로컬 스트리밍을 중지하고 마이크 상태를 재설정해야 합니다.
스트리머는 마이크 잠금, 마이크 사용 초청, 강제로 아미크 끄기, 마이크 금언 등 권한이 있습니다.
설명:
마이크 관리는 전자상거래 라이브 방송을 구현하는 데에 필요한 모듈이지만 주요 기능 모듈은 아닙니다. 구체적으로는 업무 시스템 및 Chat & RTC Engine SDK와 결합하여 구현할 수 있으며, 자세한 내용은 음성 채팅방-마이크 관리을 참조하세요.
상품 관리
상품 관리 모듈은 전자상거래 라이브 방송 시나리오에 특화된 것이고 일반적으로 상품 목록 관리, 상품 팝업 관리, 상품 링크 이동 및 결제 등을 포함합니다. 아래 그림으로 상품 관리의 기본 프로세스를 보여줍니다.
상품 목록 관리
상품 목록 관리는 상품 관리의 기본 기능이고 주로 상품 추가, 삭제, 수정 및 조회 등 기능을 포함합니다. 일반적으로 백엔드 데이터베이스에 상품명, 설명, 가격, 재고, 이미지 등 다양한 상품 정보를 저장합니다. 프론트엔드에서는 API 인터페이스를 통해 이러한 정보를 가져와서 사용자에게 목록 형태로 보여줄 수 있습니다.
상품 팝업 관리
라이브 커머스 진행 시 스트리머가 상품을 설명하고 링크 올릴 때 시청자 측에 해당 상품 정보를 팝업으로 표시하여 시청자가 쉽게 찾아보고 구매할 수 있도록 안내해줘야 합니다. 상품 정보 팝업 기능은 다음 두 가지 방법으로 구현할 수 있으며, 업무 요구에 따라 선택하여 사용할 수 있습니다.
자체 정의 메시지
일반적으로 상품 정보 팝업은 라이브 방송실에 자체 정의 메시지를 전송하는 방식으로 구현할 수 있으며, 라이브 방송실의 시청자는 이 자체 정의 메시지를 수신한 후 분석하여 표시합니다. 자체 정의 메시지의 송부/수신은 업무 측에서 자체적으로 구현하거나 Chat 그룹 메시지를 사용하여 구현할 수 있습니다. 구체적인 구현 방법은 상품 정보 팝업-자체 정의 메시지을 참조하세요.
SEI 정보
SEI(Supplemental Enhancement Information)는 보완 강화 정보로서 비디오 스트림에 별도의 정보를 추가하는 방법을 제공합니다. RTC Engine SEI 정보 전송을 통해 지정된 상품 정보를 스트리머의 비디오 스트림에 삽입할 수 있으며, 라이브 방송실의 시청자가 스트림을 받아 SEI 메시지를 수신한 후 이를 분석하여 표시할 수 있습니다. SEI의 특성에 따라 이 방식은 상품 정보 팝업과 스트리머의 라이브 화면을 정확하게 동기화할 수 있습니다. 구체적인 구현 방법은 상품 정보 팝업-SEI 정보을 참조하세요.
상품 이동 및 결제
라이브 방송실의 시청자가 상품 선택을 완료한 후, 상품 링크를 클릭하여 해당 전자상거래 매장으로 이동하고 관련 오더 확인하여 결제합니다. 여기서 전자상거래 매장은 플랫폼 내의 매장이거나 통합된 제3자 플랫폼 매장일 수 있습니다. 사용자 결제가 완료되면 상품 판매 상태 및 재고 정보 등을 업데이트하기 위해 결제 결과를 확인해야 합니다.
설명:
상기 상품 관리 모듈은 참고용으로만 제공되며, 실제 적용 시에는 업무 요구사항에 따라 자체적으로 설계 및 배포해야 합니다.
음성 및 영상 관리
일반적인 전자상거래 라이브방송 시나리오(시청자 인원수가 10만 명 이하)의 경우 RTC 실시간 인터랙티브 솔루션을 추천합니다.스트리머와 시청자 모두 RTC 프로토콜을 사용하여 스트림을 푸시 및 풀하는 이 방식은 엔드투엔드 지연 시간이 가장 짧으며 시청자의 마이크 켜고 끄는 체험이 더 원활하고 화면 빠른 진행/되감기 등의 급격한 변화 현상이 없습니다. 다인원 마이크 연결 인터랙티브 라이브 방송을 예로 들면, 전자상거래 라이브 방송 시나리오에서 순수 RTC 스트림 푸시/풀의 주요 아키텍처는 아래 그림과 같습니다.
해당 솔루션 아키텍처의 전체 프로세스는 다음과 같습니다.
1. 스트리머와 시청자는 모두 시그널링 모듈을 통해 연결되며, 시그널링 모듈은 주로 라이브 방송 프로세스 관리 및 라이브 방송 상태의 동기화를 합니다.
2. 연결된 시청자가 있든 없든, 스트리머와 시청자는 모두 RTC Engine 오디오/비디오 클라우드 서비스를 통해 스트림을 푸시 및 풀합니다.
3. 시청자가 스트리머와의 연결을 요청하면 신시그널링 모듈이 스트리머에게 알리고 연결자의 개인 정보를 동기화합니다.
4. 스트리머가 연결 요청을 허락하면 연결된 시청자가 스트리밍을 시작하고 방의 모든 멤버는 스트림 업데이트 알림을 받으며 연결된 시청자의 오디오/비디오 스트림을 풀합니다.
5. 연결된 시청자가 연결 해제 요청을 하면 스트리밍을 중지하고 방의 모든 멤버는 스트림 업데이트 알림을 받으며 해당 시청자의 오디오/비디오 스트림 풀링을 중단합니다.
설명:
시그널링 모듈은 업무 자체 개발 시그널링 채널일 수 있으며, 동시에 Chat을 사용하여 시그널링을 교체하는 것을 권장합니다.
클라우드 레코딩
RTC Engine 최신 업그레이드된 클라우드 레코딩은 RTC Engine 내부의 실시간 레코딩 클러스터를 사용하여 오디오/비디오를 레코딩하며 더 완전하고 통일된 레코딩 체험을 제공합니다.
단일 스트림 레코딩: RTC Engine의 클라우드 레코딩 기능을 통해 방 안의 각 사용자의 오디오/비디오 스트림을 독립적인 파일로 레코딩할 수 있습니다.
혼합 스트림 레코딩: 동일한 방의 오디오/비디오 미디어 스트림을 혼합하여 하나의 파일로 레코딩합니다.
상품 설명의 재방송은 전자상거래 라이브 방송 시나리오의 필수 기능이며 일반적으로 라이브 방송 중의 재방송과 라이브 방송 후 재방송으로 나눕니다. 상품 설명의 재방송은 방송살에 늦게 입장하거나 라이브 방송을 놓친 사용자가 스트리머의 상품 설명을 자체적으로 다시 볼 수 있도록 도와줘서 판매량을 증가시키고 전환율을 높일 수 있습니다. 상품 설명 재방송 기능은 다음 두 가지 방식으로 구현할 수 있습니다.
레코딩 재방송
레코딩 재방송은 비교적 흔히 사용되는 상품 설명 재방송 기능의 구현 방식이며 구현이 간단하고 재방송 시점에 제한이 없습니다. 다음은 레코딩 재방송을 사용하여 상품 설명 재방송을 구현하는 기본 프로세스입니다.
레코딩 형식: COS에 저장할 때 기본 레코딩 형식은 HLS이며, RecordParams의 OutputFormat 매개변수를 통해 레코딩 파일 형식을 수정할 수 있습니다. VOD에 저장할 때 기본 레코딩 형식은 MP4이며, TencentVod의 MediaType 매개변수를 통해 레코딩 파일 형식을 수정할 수 있습니다.
손님의 백엔드 서비스를 통해 REST API(CreateCloudRecording)을 호출하여 클라우드 레코딩을 시작할 때, 작업 ID(TaskId) 매개변수에 특히 주의해야 합니다. 이 매개변수는 해당 레코딩 작업의 유일한 식별자이며 이후 이 레코딩 작업에 대한 인터페이스 조작을 위한 입력 매개변수로 이 작업 ID를 저장해야 합니다.
주의:
클라우드 레코딩 작업을 시작하는 인터페이스 CreateCloudRecording에서는 레코딩 로봇의 입장 매개변수 UserId와 UserSig(UserSig 획득 방법)을 지정해야 합니다. 해당 UserId는 방 내의 일반 스트리머 또는 시청자가 사용하는 UserId와 중복되어서는 안 되며, 현재 레코딩 중인 방에 지정된 레코딩 로봇의 UserId와도 일치해서는 안 됩니다. 그렇지 않으면 레코딩 작업이 실패할 수 있습니다.
REST API(DeleteCloudRecording)를 통해 백엔드 서비스를 호출하여 클라우드 레코딩 작업을 적절한 시기에 중지할 수 있습니다. 이때 레코딩 작업 시작 시 반환된 작업 ID(TaskId) 매개변수를 전달해야 합니다.
2. 재생 주소 가져오기
방법 1: 수동으로 찾기
레코딩 작업 종료 후, RTC Engine 레코딩 시스템에서 레코딩된 파일은 지정한 클라우드 스토리지 플랫폼(클라우드 VOD 또는 객체 저장소 COS 또는 AWS storage)에 업로드됩니다. 클라우드 VOD 콘솔 또는 객체 저장소 COS 콘솔에서 직접 대상 레코딩 미디어 파일을 찾고 수동으로 재생 주소를 가져올 수 있습니다.
방법 2: 콜백 수신
또한 콘솔 에서 레코딩 콜백에서 주소를 구성할 수도 있습니다. 텐센트 클라우드가 새 레코딩 파일의 메시지를 손님의 서버로 자동으로 푸시하도록 할 수 있습니다. 레코딩 파일이 전송 완료되면 RTC Engine은 콘솔에서 설정한 콜백 주소(HTTP/HTTPS)를 통해 손님의 서버에 알림을 보냅니다. RTC Engine은 레코딩 및 레코딩 관련 이벤트를 모두 설정한 콜백 주소를 통해 손님의 서버에 푸시합니다. 이벤트 유형이 311이고 업로드가 성공된 콜백을 수신하여 레코딩 파일의 재생 주소 VideoUrl을 얻을 수 있습니다. 콜백 예시 정보는 다음과 같습니다.
{
"EventGroupId":3,
"EventType":311,
"CallbackTs":1622191965320,
"EventInfo":{
"RoomId":"20015",
"EventTs":1622191965,
"UserId":"xx",
"TaskId":"xx",
"Payload":{
"Status":0,
"TencentVod":{
"UserId":"xx",
"TrackType":"audio_video",
"MediaId":"main",
"FileId":"xxxx",
"VideoUrl":"http://xxxx",
"CacheFile":"xxxx.mp4",
"StartTimeStamp": xxxx,
"EndTimeStamp": xxxx
}
}
}
}
3. 레코딩된 영상의 재생
사전 준비 작업을 완료한 후 TXVodPlayer의 startVodPlay을 호출하여 레코딩된 상품 설명의 동영상을 재생할 수 있습니다. TXVodPlayer는 내부적으로 재생 프로토콜을 자동으로 인식하므로 재생 URL을 startVodPlay 함수에 전달하기만 하면 됩니다. 더 많은 코드 예제는 빠른 시작 가이드-상품 설명 재생를 참조하십시오.
주문형 재생에는 텐센트 클라우드 플레이어 SDK의 사용이 필요하지만, 별도로 통합할 필요 없이 전체 기능 버전의 LiteAVSDK만 통합하면 됩니다. 자세한 내용은 신속 시작 가이드-SDK 임포트을 참조하세요.
뷰티 효과 접근
전자상거래 라이브방송 시나리오에서 뷰티는 자주 사용되는 기능 중의 하나입니다. 뷰티는 스트리머의 외모를 개선할 뿐만 아니라 다양한 스티커 효과를 통해 라이브 방송 인터랙티브의 재미를 더할 수 있습니다. RTC Engine은 뷰티 AR SDK의 통합을 지원하며, 화산 뷰티, 얼굴 이펙트와 같은 시장의 주요 타사 뷰티 제품도 지원합니다.
스트리머 간의 크로스룸 PK 연결은 전자상거래 라이브 방송 시나리오에서 새로운 플레이 방식이고 인터랙티브 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 단일 스트림을 풀하며, 시청자는 스트리머와 크로스 룸 연결된 스트리머의 미디어 스트림 구독 로직을 독립적으로 관리할 수 있습니다. RTC 실시간 인터랙티브 크로스 룸 연결 프로세스는 아래 그림과 같습니다.
주의:
실시간 인터랙티브 크로스 룸 연결 시나리오에서 방 내 시청자는 크로스 룸 연결 스트리머의 미디어 스트림 구독 로직을 독립적으로 제어할 수 있으며 스트리머 가 크로스 룸 스트리머의 본 방 내의 업스트림 능력을 변경할 수도 있습니다.
시나리오 플레이
단일 스트리머 라이브 커머스
단일 스트리머 라이브 커머스는 전자상거래 라이브 방송 시나리오에서 가장 흔하고 기본적인 플레이 방식입니다. 이 시나리오에서는 라이브 방송실에 하나의 스트리머만 존재하며, 마이크 연결 스트리머와 같은 역할은 없습니다. 시청자는 라이브 방송실에 들어가서 방송을 시청하고 방송실에서 인터랙티브 및 쇼핑 등을 할 수 있습니다.
다인원 아미크 연결 인터랙티브 라이브 커머스
다인원 마이크 연결 인터랙티브 라이브 커머스는 단일 스트리머 라이브 커머스 시나리오를 기반으로 하여 시청자가 마이크 켜고 사용하며 스트리머와 인터랙티브하는 플레이 방식을 추가한 것입니다. 스트리머는 시청자에게 마이크 사용의 초청을 할 수 있으며 마이크를 관리합니다. 시청자도 스스로 마이크의 연결을 신청해서 스트리머와 인터랙티브할 수 있습니다. 다인원 마이크 연결 인터랙티브 라이브 커머스는 시청자의 참여감을 높이고 시청자의 적극성을 이끌어낼 수 있습니다.
크로스 룸 PK 연결 라이브 커머스
기존의 단일 방 스트리머 라이브 커머스 외에도, 스트리머는 다른 라이브 방송의 스트리머와 크로스 룸 PK 연결을 통해 각자 판매하는 상품을 선보이고 시청자의 구매 열기를 자극하며 라이브의 재미를 더할 수 있습니다.