네이버클라우드

[Ncloud] LiveStation과 함께하는 라이브 방송국 만들기

graph-dev 2023. 8. 28. 22:02
728x90

Live station logo

 

 과거 연예인이 방송에 나오면, 언젠가 나도 멋지게 꾸며서 방송에 나오고 싶다. 이런 꿈 한번 꿔본 적 있으신가요? 이번에는 그 꿈에 한발짝 다가서는 콘텐츠로 마련해보았습니다. 네이버 클라우드에서 제공하는 라이브 스테이션(Live Station) 서비스와 함께라면 가능합니다.

이 서비스에 바로 진입하기에는 생각보다 약간 어려움이 따릅니다. 그러나 본 글을 천천히 읽어보시면 사용하는데 도움이 되실 겁니다.

 

라이브 방송

라이브 방송이 무엇인지, 8월 24일 등장한 CLOVA X(베타)에게 질문했습니다.

 

CLOVA X

무한한 가능성을 여는 새로운 대화의 시작

clova-x.naver.com

clova x 답변

 

촬영과 동시에 방영하는 방송이라고 합니다. 라방, 실방 등으로 부른다고 하네요.

보통 라이브 방송, 혹은 실시간 방송이라고 하는 이 콘텐츠는 방송 송출을 위한 컴퓨터나 PC 장치, 카메라, 마이크, 조명 등을 떠올릴 수 있습니다. 그러나 최근에는 가볍게 핸드폰으로 수행하기도 하고, 노트북 등에 달린 웹캠 정도로 간단히 진행하기도 합니다. 실시간 운동, 공부 기록을 담아 Youtube 등의 미디어 플랫폼에서 송출하고 다 송출한 뒤에는 저장해서 편집을 하는 등 후처리를 거쳐 게시하기도 합니다.

여기서 다룰 작업은 실시간으로 영상 콘텐츠를 송출하는 것입니다. 그 뒤에 후처리(보정, 자막 등)은 다른 콘텐츠에서 기회가 된다면 다룰 예정입니다.

 

라이브 스테이션, 그건 무엇인가?

CLOVA X에 따르면, Live Station은 실시간 방송에 최적화된 원스톱 솔루션으로, 화질 변환 인코딩부터 다양한 미디어 플랫폼으로의 동시 송출 기능(Re-Stream)까지 실시간 방송에 필요한 모든 기능을 제공하는 서비스라고 합니다.

가이드를 통해 좀 더 자세히 살펴볼까요?

Live Station은 라이브 방송 서비스 구축에 필요한 모든 기능을 제공하는 영상 인코딩 플랫폼 서비스입니다. Live Station을 사용하여 단일 RTMP(Real Time Messaging Protocol) 원본 스트림을 여러 개의 Multi-bitrate 출력 스트림을 만들어 낼 수 있으며, 영상을 HLS(HTTP Live Streaming)로 패킷화(Packetizing)하여 전송할 수 있습니다.

Live station 원리

 

 이 서비스가 제공하는 기능도 살펴봅시다. 대락 Live Short Clip, Live Curtain, VOD2LIVE, RTMP 이중화 등을 제공한다고 하네요. 그 외에 동시 송출(유튜브, 아프리카 TV 등)도 가능하고, 3초대 초저지연 HLS 서비스도 베타 버전으로 제공한답니다.

 

 

여기서부터는 ncloud 홈페이지 로그인 > Live Station으로 무작정 들어가봅시다.

 

Live Station 채널 생성

 

 

채널 생성을 눌러주겠습니다.

 

채널 생성 화면

 

 채널명은 graph_live로 설정했습니다. 특수문자는 언더바(_)를 허용해서 하이픈(-)이 아니라 언더바로 작성했습니다. 그 외에 살펴보면, Output Protocol은 HLS라는 베타 버전을 사용해보고자 했습니다. 앞서 소개한 바처럼 저지연 HLS를 제공하는 옵션이며 베타 버전으로만 제공하고 있습니다. 곧 정식버전으로 업데이트할 것이라 생각합니다.

또한 채널 타입은 REAL, DEV, STAGE가 있습니다. 가이드에 따르면, REAL/DEV/STAGE 간 차이가 없으며, 채널 타입은 단순한 구분자라고 합니다. CDN 생성에는 신규 생성으로 하고, CDN+로 선택해서 진행합니다. 채널 타입, 송출 이중화, 해외 송출 지원은 모두 기본값으로 설정하고 다음을 누릅니다.

 

 

 이제 화질을 설정할 수 있습니다. Default로 설정할 값을 잘 고르고, 그 이하의 화질들이 세트로 추가된다는 점을 알아두면 되겠습니다. 저는 System 화질 설정으로 진행했습니다.

 

화질 설정 화면

 

 

선택한 화질에 따라서 그 이하의 화질들이 함께 설정되는 것을 알 수 있습니다.

 

Low latency도 잠깐 살펴봅시다.

 

 

Low latency 화질 옵션

 

 참고로, BETA로 제공되는 Low latency는 아래와 같습니다. 초저지연(Low latency) 전송을 위해 마련된 화질입니다. 이 화질은 네이버 클라우드 Video Player Enhancement로 안정적으로 재생할 수 있다고 합니다. 참고해두면 되겠습니다. 특이하게도 모든 화질 앞에 second(로마자)로 표기되어있네요. Low latency는 이번 콘텐츠에서는 생략하고, 다음으로 넘어가겠습니다.

 

 

채널 생성과 녹화 저장 설정 화면

 

 채널 생성에 필요한 각종 설정 사항입니다. 자동 녹화, 파일 형식 등을 정하고 이 파일들을 Object Storage 버킷과 연동해서, 클라우드 저장소에 안정적으로 저장되게 했습니다.

 

최종 확인은 아래와 같습니다. 화질 구성 등을 잘 요약해서 확인하고 넘어가면 되겠습니다.

 

최종 확인 화면

 

graph_live 이름으로 방송 채널을 만들었습니다. 자세히 보면, 채널 사용 시간, 송출 시간 등을 제공하고 있으며 스트림 정보도 있습니다. 이를 활용해서 실제로 라이브 방송을 서비스하는 도구와 연동할 수 있음을 알아둡시다.

 

설정 후 화면(위)

 

핵심적인 것은 아래에 있습니다. 제가 만든 채널이 파란 글씨로 채널명에 써있습니다.

 

설정 후 화면(아래)

 

 채널 상태는 준비로 되어있습니다. 채널 ID도 이렇게 생겼다 정도만 기억해둡시다.

 

추가로 CDN+ 옵션을 넣었으니, CDN+로 가서 실제로 서버가 생성되었는지 확인해줍니다.

CDN+ 화면

 

 실제로 cdn 서비스가 잘 생성되었고, 서비스 이름에 Live Station 채널 ID가 들어가 있는 것을 알 수 있습니다. "cdn-채널ID" 같은 이름으로  생성되어 이 cdn이 어떤 서비스와 연결되었는지 쉽게 알 수 있도록 했네요. 좋습니다.

 

 이제 스트림 정보를 확인해보겠습니다. 채널 우측에 스트림 정보에 있는 버튼을 누릅니다.

 

스트림 정보 클릭

 

여기서 살펴볼 부분은, 위에 있는 버튼과 우측에 있는 스트림 정보 부분입니다. 먼저 스트림 정보를 누르면 아래와 같은 화면이 나타납니다.

스트림 정보 상세 화면

기본 송출 URL, 스트림키 - Main 두 가지 정보가 제공됩니다. 이 정보들을 잘 복사해서 저장해두었다가 다음 작업에서 바로 사용하겠습니다.

 

 

OBS

윈도우 OS라면 다른 도구를 사용할 수 있는데, 저는 Mac OS를 사용하므로 OBS라는 실시간 방송 전용 소프트웨어 도구를 사용해보겠습니다. OBS를 다운로드해보겠습니다.

 

Open Broadcaster Software | OBS

영상 녹화와 실시간 방송을 할 수 있는 무료 및 공개 소프트웨어입니다. 윈도우, 맥 혹은 리눅스 환경에서 빠르고 쉽게 방송 할 수 있습니다.

obsproject.com

OBS Studio 다운로드

 

OBS 프로그램을 실행해보겠습니다.

 

실시간 방송을 위해서는, 여기서 설정 > 방송 설정 > 사용자 지정을 누르면 아래와 같은 화면이 나오는데 스트림 키와 서버 정보를 등록해야합니다.

 

OBS 스트림 키 설정 화면

 

 그런데 위의 정보가 어디있을까요? 위에서 구한 스트림 정보에서 붙여넣어주면 되겠죠? 서비스는 "사용자 지정.."으로 해주면 됩니다. 또한, 기본 송출 URL은 서버에 넣어주고, 스트림 키는 당연히 스트림 키에 넣으면 됩니다.

 

OBS 화면은 아래와 같습니다. 이제 영상 소스 하나를 첨부해보겠습니다.

 

 소스 목록 부분에서, + 버튼을 누르고, 미디어 소스를 누르면 아래와 같은 화면이 뜹니다. 로컬 파일을 선택해주겠습니다. 이전에 촬영했던 빵 리뷰 영상을 다시 한번 사용해보겠습니다.

 

미디어 소스 선택 화면

 

확인을 누르면 아래처럼 영상이 위에 뜨고, 그 크기를 조절할 수 있게 되어있습니다. 필요한 만큼 마우스로 드래그해서 크기를 키우거나 줄이시면 됩니다.

 

 

OBS 설정 화면과 방송 시작 버튼 확인

이제 방송 시작을 누르겠습니다. 그러면 해당 방송 시작 버튼이 방송 중단 버튼으로 변하게 됩니다.

 

 

Live Station 확인

이제 다시 Live Station으로 갑니다. 제가 만든 채널의 송출이 시작되었다고 나옵니다. 송출중인 채널도 나오고, 아래 보시면 채널 상태가 “송출중”으로 변한 것을 알 수 있습니다.

 

방송 송출 후 Live Station 화면 확인

 

이 상태에서, 송출이 잘 되고 있는지 모니터링을 할 수 있습니다. 위에 모니터링 버튼을 눌러봅시다.

 

모니터링 누르기

 

 모니터링에서는 실제로 라이브가 진행되는지 보여줍니다. 화질 설정도 가능하고 송출 정보도 확인해서 해당 미디어 소스의 메타 정보도 확인할 수 있어 편리합니다.

 

송출중 모니터링 화면

 

 방송 송출 중에는 다양한 URL을 확인할 수 있습니다. 송출용 URL 혹은 Service URL이 생성되며 화질마다 하나씩 Play URL이 있는 것을 확인할 수 있습니다.

 

서비스 URL

 

썸네일 이미지 URL도 제공합니다. 이 URL도 이미지 크기에 따라 4가지를 제공하고 있습니다.

 

썸네일 URL

 

 녹화를 한다면 녹화한 파일에 대한 정보도 Recording 탭에서 제공하고 있으니 확인해보면 좋겠습니다.

 

Recording 탭

 

 참고로 Event Tab에서 각종 발생한 사건들(채널 송출 시작 혹은 종료 등)을 시간순으로 제공합니다. 이 정보는 차후 로그 기록 확인 화면에서도 동일하게 볼 수 있습니다.

 

Event Tab 화면

 

이제 OBS studio 프로그램에서 방송 중단을 눌러봅시다. 아래처럼 채널 송출이 종료되었다고 뜹니다.

 

방송 중단 누르기

 

 

또한, 모니터링에도 아래와 같이 동영상을 재생할 수 없다고 하는 것을 확인합니다.

 

송출 종료 후 모니터링 화면

 

 

 이제 송출이 종료되었는데, 이번에는 녹화 시작 버튼을 눌러보고, 녹화가 끝나면 녹화 종료 버튼을 누르겠습니다. 설정한 Object storage에 저장 옵션에 맞게 녹화된 영상 파일이 보관되어있는지 확인해보겠습니다.

 

채널 송출이 종료된 메시지 확인

 

Object storage > Bucket management로 이동합니다. 잘 저장된 mp4 파일 두 개를 확인할 수 있습니다.

 

위에서 설정한대로 버킷 내부에서 livestation이라는 폴더 명으로, 경로가 설정되고, 자동으로 폴더가 만들어져서 그 안에서 이렇게 녹화한 영상 파일도 업로드가 잘 된 것을 확인할 수 있습니다.

 

 

마지막으로 로그 기록을 보겠습니다. 로그 확인 기록은 아래와 같습니다. 채널 송출이 시작, 종료된 시각이 명확하게 나옵니다. 에러가 뜨면 아래 로그 확인을 통해 빠르게 파악하면 좋겠습니다.

 

로그 확인 화면

 

 

 아주 초간단하게 자신만의 실시간 방송 채널을 만들어봤습니다. 누구나 따라하기 좋고, 별도 VPC 서버 생성과정 없이, 가이드 대로 CDN+ 서버를 자동으로 생성해주니 편리합니다. 자주 이용해보고 이를 활용한 어플리케이션도 많이 만들어보면 재밌을 것입니다.