KR20230047720A - 컨텐츠 풀 기반 방송 시스템 및 그 방법 - Google Patents

컨텐츠 풀 기반 방송 시스템 및 그 방법 Download PDF

Info

Publication number
KR20230047720A
KR20230047720A KR1020210130874A KR20210130874A KR20230047720A KR 20230047720 A KR20230047720 A KR 20230047720A KR 1020210130874 A KR1020210130874 A KR 1020210130874A KR 20210130874 A KR20210130874 A KR 20210130874A KR 20230047720 A KR20230047720 A KR 20230047720A
Authority
KR
South Korea
Prior art keywords
schedule
content
broadcasting
setting
pool
Prior art date
Application number
KR1020210130874A
Other languages
English (en)
Inventor
강춘운
조성길
엄정일
김영
서동원
Original Assignee
(주)뉴아이디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)뉴아이디 filed Critical (주)뉴아이디
Priority to KR1020210130874A priority Critical patent/KR20230047720A/ko
Publication of KR20230047720A publication Critical patent/KR20230047720A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 컨텐츠 풀 기반 방송 시스템 및 그 방법에 관한 것으로, 다양한 컨텐츠를 HLS(HTTP Live Streaming) 포맷의 미디어 데이터로 인코딩하여 컨텐츠 풀로 관리하고, 방송 프로그램에 대한 템플릿과 메타데이터를 기반으로 자동으로 스케줄을 설정하고 변경할 수 있고, 스케줄 편성을 위한 블록을 설정하고 블록의 속성에 대응하는 컨텐츠를 배정하여 자동으로 스케줄을 설정함으로써 편의성이 향상되고, 다양한 컨텐츠에 대하여 컨텐츠 풀을 기반으로 끊김 없는 무중단 방송 서비스를 제공할 수 있다.

Description

컨텐츠 풀 기반 방송 시스템 및 그 방법{Broadcasting System Based on Contents Pool And Method}
본 발명은 스트리밍 서비스를 이용하여 컨텐츠를 방송하는 컨텐츠 풀 기반 방송 시스템 및 그 방법에 관한 것이다.
최근 인터넷 클라우드 기반 서비스의 확장과, 다양한 컨텐츠에 대한 소비자의 요구에 부응하여, 온라인 플랫폼을 기반으로, 다양한 컨텐츠를 제공하는 서비스 제공자가 증가하고 있다.
이러한 서비스의 확대로, 소정 테마에 따라 제작된 비디오 컨텐츠는 물론 사용자가 제작한 비디오 컨텐츠 등 다양한 컨텐츠가 제공되고, 방송국 외에도 개인이 실시간으로 방송을 진행할 수 있으므로, 플랫폼을 기반으로 누구나 컨텐츠를 제작하여 공급할 수 있고, 소비자는 필요에 따라 선택적으로 컨텐츠를 소비할 수 있다.
온라인상의 컨텐츠는 컨텐츠를 제공하는 제공자 측과 소비자의 단말 사이의 네트워크 환경, 컨텐츠를 제공하는 제공자 측의 서버 트래픽 등에 따라 컨텐츠의 전송에 차이가 발생할 수 있다.
스트리밍의 경우 재생 전에 멀티미디어 파일 전체가 클라이언트에게 전송되는 다운로딩과 달리, 클라이언트가 소비하는 컨텐츠가 작은 조각으로 나뉘어 클라이언트에게 전송되는 프로세스로, 공중파 등을 이용한 방송뿐 아니라, 인터넷을 이용한 개인 방송에도 적용되고 있다.
대한민국 공개특허 제10-2021-0030191호에 기재된 바와 같이, 종래의 비디오 컨텐츠에 대한 스트리밍 서비스는, 비디오 컨텐츠를 제공하는 제공자 측에서 요구되는 컨텐츠를 전송환경에 맞춰 인코딩 한 후 전송하도록 구성된다.
그러나, 비디오 컨텐츠는 텍스트 또는 오디오 보다 파일의 용량이 크므로 인코딩 과정과 이를 전송하는 과정에 많은 자원이 소모된다.
사용자는 컨텐츠를 끊김 없이 재생하고자 하나, 최근 인터넷 인프라가 확대되었음에도 불구하고 일부 끊김 현상이 발생되어 소비자의 불만을 초래할 수 있다.
또한, 비디오 컨텐츠에 대한 스트리밍은 인터넷 트래픽의 대부분을 차지하고 있으며 급격히 증가하고 있으므로 보다 효율적으로 처리하고, 끊김 없이 컨텐츠를 제공하는 방안이 필요하다.
대한민국 공개특허 제10-2021-0030191호
본 발명은 상기와 같은 필요성에 의해 창출된 것으로서, 다양한 컨텐츠를 HLS(HTTP Live Streaming) 포맷의 미디어 데이터로 인코딩하여 컨텐츠 풀로 관리하고, 설정된 스케줄에 따라 별도의 인코딩 없이 송출하여 방송하는 컨텐츠 풀 기반 방송 시스템 및 그 방법을 제공하는데 그 목적이 있다.
본 발명은 프로그램을 템플릿과 메타데이터를 이용하여 자동으로 방송 스케줄을 생성하고 이를 기반으로 방송을 송출하는 컨텐츠 풀 기반 방송 시스템 및 그 방법을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위하여 본 발명에 따른 컨텐츠 풀 기반 방송 시스템은, 오리지널 컨텐츠를 수신하여 소정 포맷으로 인코딩하고, 미리 인코딩된 컨텐츠에 대한 매니페스트(Manifest)를 스케줄에 따라 조합하여, 컨텐츠 전송 네트워크(CDN, Content Delivery Network)를 통해 스트리밍 방식으로 방송 서비스를 제공하는 방송 서버; 상기 방송 서버에 의해 인코딩된 컨텐츠 데이터를 컨텐츠 풀로 구성하여 저장하는 컨텐츠 데이터베이스; 및 상기 방송 서버에 의해 제공되는 스트리밍 서비스를 수신하여 컨텐츠를 재생하는 클라이언트 단말; 을 포함하고, 상기 방송 서버는, 방송 일정을 복수의 스케줄 블록으로 구분하고, 스케줄 블록 단위로 상기 컨텐츠 풀의 컨텐츠를 배정하여 스케줄을 설정하여 상기 스케줄에 따라 방송을 송출하는 것을 특징으로 한다.
상기 방송 서버는, 방송에 대한 템플릿데이터와 상기 컨텐츠 풀에 저장된 컨텐츠 리스트를 수신하고, 상기 컨텐츠의 메타데이터를 기반으로 상기 스케줄 블록 단위로 자동으로 컨텐츠를 배정하여 스케줄을 설정하는 것을 특징으로 한다.
상기 방송 서버는, 오픈API로부터 방송 채널에 대응하는 템플릿 리스트를 수신하고, 상기 템플릿 리스트로부터 어느 하나의 템플릿을 선택하여. 상기 템플릿에 설정된 로직을 기반으로 스케줄을 설정하는 것을 특징으로 한다.
상기 방송 서버는, 스케줄 설정 시, 이전 스케줄 블록의 인덱스 정보를 기반으로, 컨텐츠가 중복되지 않고, 연속성 있는 컨텐츠를 배정하여 스케줄을 설정하는 것을 특징으로 한다.
상기 방송 서버는, 상기 스케줄 블록에 컨텐츠를 배정하여 스케줄을 설정하고, 스케줄 블록 단위로 필러를 배정하여 방송 중에 어느 하나의 컨텐츠가 편성시간을 맞추지 못하는 경우 상기 필러를 통해 대체 컨텐츠를 생성하여 스케줄을 변경하는 것을 특징으로 한다.
상기 방송 서버는, 상기 스케줄 블록에 속성을 설정하고, 상기 속성에 대응하는 컨텐츠를 상기 컨텐츠 풀로부터 호출하여 스케줄을 설정하는 것을 특징으로 한다.
상기 방송 서버는, 상기 스케줄 블록에 대하여, 장르, 카테고리, 키워드 중 적어도 하나로 속성을 설정하는 것을 특징으로 한다.
상기 방송 서버는, 복수의 스케줄 블록으로 구성된 스케줄을 설정하고, 상기 스케줄을 일, 주, 월 단위로 반복되도록 설정하는 것을 특징으로 한다.
본 발명의 방송 시스템의 동작방법은, 방송 서버가, 오픈API로부터 템플릿 정보를 수신하고, 컨텐츠 풀로부터 컨텐츠 리스트를 수신하는 단계; 템플릿을 기반으로, 방송 일정을 복수의 스케줄 블록으로 구분하고, 스케줄 블록 단위로 상기 컨텐츠 풀의 컨텐츠를 배정하여 스케줄을 설정하는 단계; 스케줄 편성에 따른 기준 시간 내에서 복수의 스케줄 블록에 대한 스케줄을 설정하고, 상기 기준 시간 경과 시 설정된 스케줄을 저장하는 단계; 및 상기 스케줄에 따라 컨텐츠를 스트리밍하여 방송을 송출하는 단계; 를 포함한다.
상기 스케줄을 설정하는 단계는, 수신된 컨텐츠 리스트를 기반으로, 제 n 스케줄 블록에 컨텐츠를 배정하는 단계; 이전 스케줄 블록의 인덱스를 호출하여 컨텐츠가 중복되지 않도록 설정하는 단계; 상기 인덱스를 기반으로 연속되는 컨텐츠를 배정하는 단계; 및 상기 스케줄 블록에 필러를 배정하는 단계; 를 포함한다.
방송 중에 어느 하나의 컨텐츠에 이상이 발생하거나 또는 편성시간을 맞추지 못하는 경우 상기 필러를 통해 대체 컨텐츠를 생성하여 스케줄을 변경하는 단계; 를 더 포함한다.
상기 스케줄을 설정하는 단계는, 상기 스케줄 블록에 속성을 설정하고, 상기 컨텐츠 풀에 저장된 복수의 컨텐츠에 대한 메타데이터를 기반으로 상기 속성에 대응하는 컨텐츠를 호출하여 상기 스케줄을 설정하는 것을 특징으로 한다.
상기 스케줄을 설정하는 단계는, 복수의 스케줄 블록으로 구성된 스케줄을 설정하는 단계; 상기 스케줄을 일, 주, 월 단위로 반복되도록 설정하는 단계; 를 더 포함한다.
본 발명은 실시간 방송서비스를 제공하는데 있어서 스케줄 편성을 위한 프로그램 블록을 설정하고 블록에 속성을 설정하는 템플릿을 생성하여 이를 기반으로 방송 스케줄을 자동으로 설정할 수 있다.
본 발명은 프로그램 블록을 구성함에 있어서 프로그램 재생시간이 계획한 프로그램블록 시간 구간을 만족하지 못할 경우 해당 속성의 프로그램을 중복되지 않게 추가로 구성하여 해당 스케쥴의 블록 시간을 계획대로 설정할 수 있고, 스케쥴 설정에도 불구하고 해당 블록의 시간을 다 맞추지 못할 경우 필러를 삽입하여 계획된 스케쥴에 따라 실시간으로 방송을 서비스 할 수 있다.
본 발명은 프로그램 블록을 구성함에 있어서 각각의 블록의 속성에 해당하는 콘텐츠 풀이 만들어지고, 인덱스(n) 기반으로 프로그램을 할당함으로써 방송을 에피소드/시리즈/시즌 등 단위 로직에 따라 순차적으로 콘텐츠를 송출 할 수 있습니다.
도 1 은 본 발명의 일 실시예에 따른 컨텐츠 풀 기반 방송 시스템의 구성이 간략하게 도시된 도이다.
도 2 는 본 발명의 일 실시예에 따른 컨텐츠 풀 기반 방송 시스템의 서비스 흐름이 간략하게 도시된 도이다.
도 3 은 본 발명의 일 실시예에 따른 방송 시스템의 서버 구성이 도시된 블록도이다.
도 4 는 본 발명의 일 실시예에 따른 컨텐츠 풀을 설명하는데 참조되는 도이다.
도 5 는 본 발명의 일 실시예에 따른 컨텐츠 풀의 해상도 별 데이터를 설명하는데 참조되는 도이다.
도 6 은 본 발명의 일실시예에 따른 방송 시스템의 제어방법이 도시된 순서도이다.
도 7 은 본 발명의 일실시예에 따른 방송 시스템의 스케줄 설정을 위한 데이터 구성을 설명하는데 참조되는 도이다.
도 8 은 본 발명의 일실시예에 따른 방송 시스템의 스케줄 설정에 따른 신호흐름이 도시된 흐름도이다.
도 9 는 본 발명의 일실시예에 따른 방송 시스템의 스케줄 설정 방법이 도시된 순서도이다.
이하, 첨부된 도면들을 참조하여 본 발명을 설명하도록 한다.
이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로써 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로, 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1 은 본 발명의 일 실시예에 따른 컨텐츠 풀 기반 방송 시스템의 구성이 간략하게 도시된 도이다.
도 1에 도시된 바와 같이, 본 발명의 방송 시스템은, 컨텐츠 제공서버(30), 방송 서버(10), 데이터베이스(DB)(70), 컨텐츠 데이터베이스(20), 컨텐츠 전송 네트워크(CDN, Content Delivery Network)(50), 클라이언트 단말(90)(91 내지 93)을 포함한다.
또한, 방송 시스템은 오픈API(60)와 연결되어 프로그램 가이드를 클라이언트 단말(90)에 제공한다.
컨텐츠 제공서버(30)는 이미지, 오디오, 비디오 등의 다양한 형태의 오리지널 컨텐츠 데이터를 제공한다. 컨텐츠 제공서버(30)는 오리지널 컨텐츠 데이터를 저장하고 관리하는 데이터베이스(DB)(미도시)를 더 포함한다.
방송 서버(10)는 컨텐츠 제공서버(30)로부터 제공되는 오리지널 컨텐츠 데이터를 복수의 미디어 데이터로 분할하여 인코딩하고, 컨텐츠 데이터베이스(20)에 저장한다.
방송 서버(10)는 컨텐츠 데이터베이스(20)에 저장되는 인코딩된 미디어 데이터를, 지정된 스케줄에 맞춰 조합하여 방송용 스트림으로 변환한 후 컨텐츠 전송 네트워크(CDN)(50)를 통해 방송으로 송출한다. 방송 서버(10)는 복수의 서버로 구성되어 데이터를 분산 처리할 수 있다.
데이터베이스(70)는 방송 서버(10)에서 방송 스케줄을 설정하기 위한 정보와 설정된 스케줄에 대한 정보가 저장된다. 데이터베이스(70)는 경우에 따라 방송 서버(10) 내에 구비될 수 있다.
오픈API(60)는 방송 서버(10)로부터 설정된 스케줄 데이터를 수신하고, 이를 바탕으로 프로그램 가이드를 생성하여 복수의 클라이언트 단말(90)로 전송한다.
또한, 오픈API(60)는 방송 플랫폼 서비스 등의 중계소(미도시)로 스케줄 데이터를 전송하고, 중계소가 프로그램 가이드를 생성하여 복수의 클라이언트 단말(90)에 제공할 수 있다.
컨텐츠 데이터베이스(20)는 컨텐츠 별로 인코딩된 복수의 미디어 데이터가 저장되면, 미디어 데이터와 그에 대한 매니페스트를 포함하는 컨텐츠 풀(contents pool)(21)을 형성한다.
컨텐츠 데이터베이스(20)는 HLS(HTTP Live Streaming) 형태로 인코딩된 미디어 데이터를 해상도, 코덱, 대역폭별로 저장한다.
컨텐츠 전송 네트워크(CDN)(50)는 방송 서버(10)로부터 제공되는 컨텐츠의 스트리밍 데이터를 분산된 서비스 자원을 이용하여, 복수의 클라이언트 단말(91 내지 93)로 전송한다.
컨텐츠 전송 네트워크(CDN)(50)는 클라이언트 단말(90)에 인접한 서비스 자원을 통해 각 클라이언트 단말(90)로 스트리밍 데이터를 전송한다.
컨텐츠 전송 네트워크(CDN)(50)는 분산된 서버로 이루어진 플랫폼으로 컨텐츠를 요청하는 클라이언트 단말에 인접한 서버를 통해 클라이언트 단말의 요구를 처리하고, 요구되는 컨텐츠에 인접한 서버에서 요구를 처리하는 방식을 적용하여 서비스를 제공하는 서버와 사용자의 클라이언트 단말 간의 물리적 거리를 줄여 컨텐츠 로드에 따른 지연을 최소화한다.
또한, 컨텐츠 전송 네트워크(CDN)(50)는 분산된 서버를 이용하여 컨텐츠를 캐싱함으로써 컨텐츠의 전송 경로를 최적화하여 트래픽을 감소시키고 컨텐츠를 클라이언트 단말에 빠르고 안전하게 제공할 수 있다.
컨텐츠 전송 네트워크(CDN)(50)는 4K 및 HD 품질의 동영상, 오디오 스트림, 앱/게임/OS 업데이트와 같은 소프트웨어 다운로드, 의료 정보와 금융 정보가 포함된 데이터 레코드 등 다양한 컨텐츠를 전송한다. 즉, 컨텐츠 전송 네트워크(CDN)(50)는 디지털화될 수 있는 모든 데이터를 전송할 수 있다.
클라이언트 단말(90)은 컨텐츠 전송 네트워크(CDN)(50)를 통해, 방송 서버(10) 로부터 송출되는 방송을 수신하여 플레이 한다.
클라이언트 단말(90)은 오픈API(60) 또는 중계소로부터 프로그램 가이드를 수신하여 저장하고, 프로그램 가이드를 바탕으로 컨텐츠 방송의 스케줄을 확인한다.
클라이언트 단말(90)은 컨텐츠를 소비하는 사용자의 단말로, 컨텐츠를 재생하는 플레이어모듈(미도시)을 포함한다.
클라이언트 단말(90)은 휴대용 이동통신 단말, 개인용 PC, 랩탑, 태블릿 PC, PDA, 웨어러블 단말, 스마트 TV, 스마트 냉장고 등의 백색가전 등, 컨텐츠를 재생하는 플레이어 모듈이 구비되는 단말이라면 어느 것이나 사용 가능하다.
도 2 는 본 발명의 일 실시예에 따른 컨텐츠 풀 기반 방송 시스템의 서비스 흐름이 간략하게 도시된 도이다.
도 2에 도시된 바와 같이, 방송 서버(10)는 컨텐츠 제공서버(30)로부터 제공되는 오리지널 컨텐츠 데이터를 수신하고, 복수의 미디어 파일로 분할하여 컨텐츠 데이터베이스(20)에 컨텐츠 풀 형태로 저장하고 이를 관리한다.
방송 서버(10)는 인코더(140), 스케줄부(120), 스트리밍부(130)를 포함한다. 또한, 방송 서버(10)는 컨텐츠 데이터베이스(20)를 포함할 수 있다.
방송 서버(10)의 인코더(140)는 컨텐츠를 HLS(HTTP Live Streaming) 포맷으로 인코딩한다. 인코더는 HLS외에도 스트리밍 서비스에 적용 가능한 포맷으로 인코딩 가능하다.
인코더(140)는 컨텐츠에 대한 HLS 포맷의 미디어 데이터를 생성하면서 HLS 미디어 데이터에 대한 매니페스트(Manifest)와 청크 리스트를 생성한다. 매니페스트는 HLS 포맷으로 인코딩되어 저장된다.
인코더(140)에 의해 변환된 HLS 미디어 데이터(미디어 청크), 매니페스트와 청크 리스트는 컨텐츠 데이터베이스(20)에 저장되어 컨텐츠 풀(21)을 형성한다. HLS 미디어 데이터는 HLS 포맷으로 인코딩된 미디어 데이터이고, 이하 미디어 데이터는 HLS 미디어 데이터인 것을 명시한다.
컨텐츠 데이터베이스(20)는 HLS 포맷으로 인코딩된 컨텐츠 별 미디어 데이터를 저장하고 관리한다.
컨텐츠 데이터베이스(20)는 소정 기준에 따라 컨텐츠 데이터를 분류하고 적어도 하나의 컨텐츠 풀(21)을 형성하여 관리한다.
컨텐츠 데이터베이스(20)는 HLS로 인코딩된 컨텐츠에 대하여, 서비스 사양에 따라 다양한 해상도 및 인코딩 옵션으로 인코딩된 미디어 청크(Media chunks)(미디어 데이터)를 저장한다.
데이터베이스(70)는 스케줄 설정위한 템플릿데이터(71)와 스케줄부(120)에 의해 설정된 스케줄데이터(72)가 저장된다.
방송 서버(10)의 스케줄부(120)는 컨텐츠 데이터베이스(20)의 컨텐츠 풀(21)에서 제공하는 메타데이터(Metadata)를 기반으로 방송 송출을 위한 스케줄을 설정한다.
스케줄부(120)는 컨텐츠에 따라 프로그램의 방송 순서를 결정하고 방송 시간을 설정한다.
스케줄부(120)는 방송 스케줄에 대한 정보가 포함된 템플릿데이터(71)를 이용하여 스케줄을 설정하고, 설정된 스케줄은 스케줄데이터(72)로 데이터베이스에 저장한다.
스케줄부(120)는 방송 프로그램에 대한 일정을 복수의 스케줄 블록으로 구분하고, 각 스케줄 블록에 속성의 설정하여, 컨텐츠 풀(21)을 기반으로 속성에 대응하는 컨텐츠를 탐색하여 스케줄 블록별로 스케줄을 설정한다.
컨텐츠 풀(21)은 속성에 따라 컨텐츠 그룹을 설정하거나, 속성 별로 컨텐츠에 대한 인덱스를 생성하여 저장할 수 있다.
스케줄부(120)는 스케줄 블록에 대하여, 장르, 카테고리, 키워드 중 적어도 하나로 속성을 설정할 수 있다.
스케줄부(120)는 스케줄 블록에 포함되는 컨텐츠에 대한 인덱스를 생성하여 저장하고, 다음 스케줄 블록에 컨텐츠를 배정하는 경우, 이전 스케줄 블록의 인덱스를 참조하여 컨텐츠가 중복되지 않도록 한다.
또한 스케줄부(120)는 이전 컨텐츠에 연결되는 컨텐츠가 있는 경우 해당 컨텐츠를 배정하여 연속성 있게 스케줄을 설정한다.
스케줄부(120)는 요일 별, 시간대 별로 스케줄 블록에 대한 속성을 지정할 수 있고, 스케줄 블록에 따라 속성을 지정하여 특정 장르의 컨텐츠가 특정 시간에 방송되도록 한다.
또한, 스케줄부(120)는 요일, 주 또는 월 단위로 스케줄 블록에 대한 속성을 정의하고, 이를 일정 횟수 반복되도록 스케줄을 설정하여, 다양한 컨텐츠를 방송하면서 특정 시간 또는 요일 별로 설정된 종류 또는 장르의 컨텐츠가 방송되도록 한다.
예를 들어 금요일 저녁시간대에는 드라마 컨텐츠를 방송하고, 토요일 저녁 시간대에는 예능 컨텐츠가 방송되도록 할 수 있다. 또한 컨텐츠에 대하여 금요일 지정된 시간에 제 1 컨텐츠의 1편, 2편, 3편이 순차적으로 방송되도록 한다.
스케줄부(120)는 스케줄 블록을 이용하여 일, 주 또는 월 단위로 일정 패턴으로 스케줄을 설정하되, 동일한 컨텐츠를 방송하는 것이 아니라, 각각 다른 컨텐츠를 방송하되 속성에 따라 동일한 종류의 컨텐츠가 방송되도록 한다.
스케줄부(120)는 스케줄 설정이 완료되면, 오픈API(60)로 스케줄 데이터를 전송한다.
스트리밍부(130)는 인코더(140)를 통해 미리 HLS 포맷으로 인코딩되어 컨텐츠 풀(21)에서 관리하는 미디어 데이터가 송출될 수 있도록 매니페스트를 방송 용 스트림, 즉 라이브 매니페스트로 변환하여 송출한다.
스트리밍부(130)는 스케줄부(120)에서 생성되는 스케줄에 따라 컨텐츠 풀(21)의 데이터가 송출될 수 있도록, 순차적으로 매니페스트(Manifest)를 호출하여 조합한다.
스트리밍부(130)는 HLS 포맷의 매니페스트를 스케줄에 따라 조합하여 라이브 HLS 매니페스트(Live HLS Manifest)를 생성하며, 수초 단위로 라이브 HLS 매니페스트를 실시간으로 업데이트한다.
스트리밍부(130)는 컨텐츠에 따라 메인 매니페스트를 읽어 서브 매니페스트를 확인하고, 복수의 서브 매니페스트를 통해 청크 리스트를 확인하며, 서브 매니페스트를 갱신한다.
라이브 매니페스트(또는 라이브 HLS 매니페스트)는 미디어 데이터에 대한 전체 청크 리스트(chunk list)를 다 포함하지 않고 일부만 포함하므로, 스트리밍부(130)는 일정 시간을 주기로 라이브 매니페스트를 업데이트한다. 스트리밍부(130)는 예를 들어 6초 단위로 라이브 매니페스트를 업데이트 할 수 있다.
스트리밍부(130)는 라이브 HLS 매니페스트를 전송하여, 컨텐츠 전송 네트워크(CDN)(50)를 통해 미디어 데이터(미디어 청크)가 전송되도록 함으로써 컨텐츠에 대한 방송을 송출한다.
스트리밍부(130)는 현재 방송되는 컨텐츠와 다음에 방송될 컨텐츠의 인코딩 정보가 상이하거나 또는 호환되지 않는 경우, 예를 들어 해상도가 호환되지 않는 경우, 컨텐츠 풀(21)에 저장된 해상도별 데이터를 이용하여, 라이브 매니페스트에 변경된 해상도에 대한 정보를 옵션(해상도)으로 포함하여 라이브 매니페스트를 갱신할 수 있다. 인코딩 정보는 컨텐츠의 해상도, 코덱, 대역폭 중 적어도 하나를 포함한다.
또한, 스트리밍부(130)는 미리 인코딩된 데이터를 컨텐츠 풀(21)로부터 전송하는데 있어서, 컨텐츠의 인코딩 정보가 상이한 경우, 해상도, 코덱 및 대역폭 중 적어도 하나의 인코딩 정보를 삽입하여 라이브 매니페스트를 전송한다.
스트리밍부(130)는 프로그램에 따라 각각의 컨텐츠를 방송하는데 있어서, 서브 매니페스트에 포함되는 컨텐츠의 해상도, 코덱, 대역폭 등의 인코딩 정보를 확인하여, 컨텐츠 간에 해상도가 상이한 경우 이를 조정하여 컨텐츠를 송출한다.
한편, 스트리밍부(130)는 방송할 청크(Chunk)에 이상이 있는 경우, 해당 컨텐츠에 대한 필러 매니페스트(filler manifest)를 호출하고, 필러 매니페스트를 파싱하여 필러 청크를 획득한다.
스트리밍부는 청크에 이상이 있는 경우 해당 컨텐츠에 이상이 있는 것으로 판단할 수 있다.
스트리밍부(130)는 이상이 있는 청크에 대하여, 필러 매니페스트를 통해 획득된 필러 청크로 대체하여 방송한다. 즉, 스트리밍부는 컨텐츠를 구성하는 청크의 이상에 대응하여, 대체 컨텐츠인 필러 청크를 방송한다.
필러 매니페스트는 필러 청크와 함께 컨텐츠 풀(21)에 저장된다.
하나의 컨텐츠는 복수의 해상도로 인코딩되어 컨텐츠 풀(21)을 통해 관리되므로, 스트리밍부(130)는 방송할 해상도에 대응하는 서브 매니페스트를 이용하여 컨텐츠를 송출할 수 있다.
서브 매니페스트는 청크 리스트를 포함하여, 실시간으로 컨텐츠가 송출되는 것에 대응하여 업데이트된다.
클라이언트 단말(90)은 방송 서버(10)로부터 라이브 매니페스트를 수신하여 스트리밍 데이터에 대한 컨텐츠를 재생한다.
클라이언트 단말(90)은 매니페스트에 포함된 청크 리스트를 통해 컨텐츠 별 미디어 데이터를 수신한다.
클라이언트 단말(90)은 컨텐츠 전송 네트워크(CDN)(50)를 통해 인접한 서비스 자원으로부터 스트리밍 데이터를 수신하고, 플레이어모듈에 의해 컨텐츠를 재생한다.
또한, 클라이언트 단말(90)은 매니페스트에 포함된 인코딩 정보를 바탕으로 컨텐츠의 해상도에 대응하여 재생 옵션을 변경할 수 있다.
방송 서버(10)는 컨텐츠 데이터를 송출 전에 인코딩 하지 않고, 미리 인코딩된 데이터를 컨텐츠 풀(21)로 관리하여 컨텐츠 전송 네트워크를 통해 송출함으로써, 방송 송출과정에서 인코딩으로 인한 시간을 단축할 수 있다.
방송 서버(10)는 컨텐츠 데이터를 복수의 미디어 데이터로 분할하여 인코딩된 미디어 데이터를 컨텐츠 풀(21)로 관리하며, 미디어 데이터에 대한 정보를 포함하는 매니페스트를 별도로 관리한다.
또한, 방송 서버(10)는 매니페스트를 HLS 포맷으로 인코딩하여 컨텐츠 풀(21)에 저장하고 프로그램 리스트에 따라 매니페스트를 호출하여 순서에 따라 조합한 후, 방송 스트림으로 변환하여 라이브 매니패스트를 순차적으로 송출한다.
방송 서버(10)는 매니페스트를 짧은 시간 단위로 주기적으로 갱신하여, 프로그램 정보를 전송하며, 전송과정에서 필요에 따라 매니페스트를 수정하거나 업데이트 함으로써, 방송 중에 발생되는 문제를 즉시 반영하여 문제를 해소할 수 있다.
그에 따라 방송 서버(10)는 컨텐츠 풀 기반으로, 계속 갱신되는 라이브 매니페스트를 클라이언트 단말(90)로 전송함으로써, 끊김 없는 방송 서비스를 제공할 수 있다.
도 3 은 본 발명의 일 실시예에 따른 방송 시스템의 서버 구성이 도시된 블록도이다.
도 3에 도시된 바와 같이, 방송 서버(10)는 스케줄부(120), 스트리밍부(130)를 포함하고, 컨텐츠 데이터베이스(20)로 구성되어, 컨텐츠를 송출하여 클라이언트 단말(90)로 제공한다. 컨텐츠 데이터베이스(20)는 방송 서버(10)에 포함되거나 또는 외부에 별도로 구비되어 방송 서버(10)와 통신할 수 있다.
앞서 설명한 바와 같이, 스케줄부(120)는 컨텐츠 데이터베이스(20)에 저장되는 컨텐츠 별 HLS 포맷의 미디어 데이터(미디어 청크)에 대하여, 방송 일정에 따라 스케줄을 설정한다.
스케줄부(120)는 컨텐츠 풀(21) 기반으로 컨텐츠에 대한 메타데이터를 수집하여 스케줄을 설정한다.
스케줄부(120)는 방송 일정을 스케줄 블록 단위로 구분하고, 스케줄 블록 별로 속성을 설정하여, 메타데이터를 통해 속성에 대응하는 컨텐츠를 탐색하여 스케줄을 설정한다. 스케줄부(120)는 속성을 마크업 언어(Markup Language)로 생성할 수 있다.
또한 스케줄부(120)는 방송 일정을 복수의 스케줄 블록으로 설정하여, 일정 스케줄 블록이 일, 주 또는 월 단위로 반복되도록 스케줄을 설정한다.
스트리밍부(130)는 스케줄부(120)에 의해 설정되는 스케줄에 따라 컨텐츠 풀(21)의 HLS 포맷의 미디어 데이터를 조합하여 컨텐츠 전송 네트워크(CDN)(50)를 통해 전송되도록 한다.
스트리밍부(130)는 프로듀서(Producer)(131), 컨수머(Consumer)(132) 및 랜더러(Renderer)(133)를 포함한다.
프로듀서(131)는 미디어 데이터에 대한 매니페스트를 컨텐츠 풀(21)로부터 수신하여 스케줄에 따라 매니페스트를 순차적으로 컨수머(132)로 전송한다.
프로듀서(131)는 설정된 스케줄에 따라 방송이 재생되도록 매니페스트를 호출하되, 청크가 정상인지 여부를 판단한다. 프로듀서(131)는 청크에 이상이 있는 경우 필러 매니페스트를 호출하여 필러 청크를 획득할 수 있다.
또한, 프로듀서(131)는 방송 중 지정된 스케줄에 따라 제 1 프로그램이 종료되면 다음 프로그램인 제 2 프로그램을 현재 프로그램으로 설정하여 해당 프로그램을 방송한다.
프로듀서(131)는 프로그램의 종료 및 시작 시간이 일치하지 않는 경우, 스케줄부(120)에 스케줄 변경을 요청할 수 있다.
스케줄부(120)는 프로듀서(131)의 요청에 따라 제 1 프로그램의 방송 종료 시점과 제 2 프로그램의 발송 시작 시점을 비교하여, 제 2 프로그램이 제 1 프로그램의 종료보다 늦게 시작하는 경우 방송이 송출되지 않는 블랙아웃이 발생할 수 있으므로 발생하므로 프로그램을 시작시간을 조절한다.
스케줄부(120)는 제 1 프로그램이 지정된 시간 보다 일찍 종료되는 경우 다음 프로그램인 제 2 프로그램의 시작시간을 제 1 프로그램의 종료시간으로 변경할 수 있다.
스케줄부(120)는 필러를 이용하여, 제 2 프로그램의 시작시간은 기존의 설정을 유지하면서 제 1 프로그램 종료후 제 2 프로그램이 시작하기 까지의 시간 동안 새로운 프로그램을 추가할 수도 있다.
컨수머(132)는 스케줄에 따라 컨텐츠가 방송될 수 있도록 매니패스트를 조합하고, 방송용 스트림으로 변환한다. 컨수머(132)는 컨텐츠 풀(21)의 매니페스트를 스케줄에 따라 변환하여 라이브 HLS 매니페스트를 생성하여 랜더러(133)로 전송한다.
컨수머(132)는 랜더러(133)에서 플래이백(playback) 하기 위한 매니페스트(manifest)를 조립하여 배포한다.
라이브 매니페스트에는 수초 내의 짧은 청크 리스트(Chunk List)만 포함하므로, 컨수머(132)는 라이브 매니페스트를 주기적으로 생성하여, 라이브 매니페스트에 포함되는 청크 리스트를 업데이트 한다.
랜더러(133)는 HLS 포맷의 미디어데이터를 스트리밍으로 방송하기 위해, 컨수머(132)에 의해 배포되는 라이브 매니페스트를 전송한다.
랜더러(133)는 복수의 랜더러(133a 내지 133c)로 구성된다.
랜더러(133)는 클라이언트 단말(90)의 증가, 즉 트래픽의 증가에 따라 추가될 수 있다. 랜더러(133)는 하나의 랜더러의 처리 용량이 한계 임계치에 도달하면, 추가될 수 있다. 예를 들어, 랜더러(133)는 초당 요청 수, 초당 대기 프로세서의 수 등이 기 설정된 임계치에 도달하면, 증가할 수 있다.
랜더러(133)는 복수의 클라이언트 단말(91 내지 93)로 스트리밍 데이터가 송출될 수 있도록 복수의 랜더러(133a 내지 133c)를 통해 스트리밍 데이터, 라이브 매니페스트의 송출을 분산 처리한다.
컨텐츠 전송 네트워크(CDN)(50)는 컨텐츠 별 미디어 데이터(미디어 청크)를 클라이언트 단말(90)로 각각 전송한다.
그에 따라 클라이언트 단말(90)은 수신되는 스트리밍 데이터와 매니페스트를 이용하여 플레이어 모듈을 통해 컨텐츠를 재생한다.
도 4 는 본 발명의 일 실시예에 따른 컨텐츠 풀을 설명하는데 참조되는 도이다.
도 4에 도시된 바와 같이, 컨텐츠 데이터베이스(20)는 컨텐츠 풀(21)을 형성하고, 복수의 컨텐츠의 HLS 포맷의 미디어 데이터가 저장된다. 컨텐츠 풀은 복수로 구비될 수 있다.
컨텐츠 풀(21)은 인코딩된 미디어 데이터와 미디어 데이터에 대한 매니패스트가 저장된다.
매니페스트는 HLS(HTTP Live Streaming) 포맷으로 저장되며, 메인 매니페스트(Main Manifest)와 서브 매니페스트(Sub Manifest)로 구성된다.
메인 매니페스트(Main Manifest)에는 지원 가능한 해상도를 명시한 서브 매니페스트(Sub Manifest)를 저장하고, 서브 매니페스트(Sub Manifest)에는 재생할 스트림(Stream)이 청크(Chunk) 단위로 구성된다.
매니페스트(Manifest)는 재생해야 할 컨텐츠 데이터의 정보를 순차적으로 명시한 파일로, 옵션에 대한 부가정보를 포함하여 클라이언트 단말(90)에 정보를 전달할 수 있다.
도 5 는 본 발명의 일 실시예에 따른 컨텐츠 풀의 해상도별 데이터를 설명하는데 참조되는 도이다.
도 5에 도시된 바와 같이, 컨텐츠 풀(21)은 복수의 컨텐츠를 인덱스 파일(Index file)을 통해 데이터를 관리한다. 인덱스 파일은 개별 컨텐츠에 대한 해상도 정보를 포함하는 대체 인덱스(Alternate index)를 관리한다.
하나의 컨텐츠는 복수의 미디어 데이터(Media Chunk)로 구성된다. 복수의 미디어 데이터는 청크 리스트를 통해 관리된다.
컨텐츠는 복수의 미디어 데이터로 분할되는데, 이때 미디어 데이터 하나 하나의 조각은 청크(Chunk)이고, 청크 리스트는 청크에 대한 목록이다. 즉 미디어 데이터는 청크(미디어 청크)이다. 경우에 따라 복수의 청크가 하나의 미디어 데이터를 구성할 수 있다.
컨텐츠 풀(21)에는 각 미디어 데이터(미디어 청크)에 대한 메타데이터(Metadata)와 HLS 매니페스트(HLS Manifest)가 저장된다.
컨텐츠 풀(21)에는 하나의 컨텐츠에 대하여 해상도에 따라, 복수의 미디어 데이터가 저장될 수 있다.
HLS로 인코딩 된 컨텐츠는 서비스 사양에 따라 다양한 해상도 및 인코딩 옵션으로 인코딩된 미디어 청크(Media chunks)(미디어 데이터)를 포함한다.
하나의 컨텐츠에 대하여 미디어 데이터는, 저해상도의 로우파일(로우1, 로우2, 로우3, 로우4), 중간해상도의 미드파일(미드1, 미드2, 미드3, 미드4), 그리고 고해상도의 하이파일(하이1, 하이2, 하이3, 하이4)로 구성된다. 예를 들어 해상도는 1920x1080, 1280x720, 960x540 등으로 설정될 수 있다.
컨텐츠 풀(21)은 요구되는 해상도에 따라 미디어 데이터를 선택적으로 전송한다.
도 6 은 본 발명의 일실시예에 따른 방송 시스템의 제어방법이 도시된 순서도이다.
도 6에 도시된 바와 같이, 방송 서버(10)는 컨텐츠 제공서버(30)로부터 컨텐츠 데이터를 수신한다(S310).
방송 서버(10)는 수신되는 데이터를 인코딩하여(S320) 컨텐츠 데이터베이스(20)에 저장한다(S330). 인코더(140)는 컨텐츠를 HLS 포맷으로 인코딩하며 하나의 컨텐츠를 복수의 미디어 데이터로 생성한다. 또한, 인코더(140)는 각 미디어 데이터에 대한 매니페스트(HLS 매니페스트)를 생성한다.
방송 서버(10)는 컨텐츠 데이터베이스(20)에 컨텐츠 풀(21)을 형성하여 복수의 컨텐츠 데이터를 관리한다. 컨텐츠 풀(21)에는 HLS로 인코딩된, 컨텐츠 별 미디어 데이터가 복수로 저장되고, 각 미디어 데이터에 대한 매니페스트와 리스트가 저장된다.
스케줄부(120)는 컨텐츠 풀(21)로부터 컨텐츠에 대한 메타데이터(Metadata)를 수신하고, 이를 바탕으로 프로그램에 따른 스케줄을 설정한다(S340).
스케줄부(120)는 스케줄 블록 단위로 복수의 컨텐츠가 포함되도록 스케줄을 설정하고, 일, 주 또는 월 단위로 스케줄 블록이 반복되도록 한다. 스케줄부(120)는 스케줄 블록에 대한 속성을 설정하여 특정 시간대에 특정 종류의 컨텐츠가 발송되도록 스케줄을 설정한다.
스트리밍부(130)는 스케줄부(120)에 의해 설정되는 스케줄에 대응하여, 컨텐츠 풀(21)의 매니페스트를 호출하여 순차적으로 조합한다(S350).
스트리밍부(130)는 스케줄에 대응하여 컨텐츠에 대한 매니페스트를 순차적으로 호출하고, 그에 대하여 방송용 라이브 매니페스트를 생성한다(S360).
라이브 매니페스트는 청크 리스트의 일부를 포함하고 있으므로 주기적으로 업데이트함으로써 다음 청크 리스트가 포함되는 라이브 매니페스트를 생성할 수 있다.
스트리밍부(130)는 라이브 매니페스트를 복수의 랜더러(133)를 통해 클라이언트 단말(90)로 송출한다. 랜더러의 수는 트래픽에 따라 증설될 수 있다.
한편, 방송 서버(10)는 컨텐츠 전송 네트워크(50)를 통해 컨텐츠 풀(21)의 미디어 데이터를 클라이언트 단말(90)로 전송한다(S370).
클라이언트 단말(90)은 방송 서버(10)의 라이브 매니페스트를 수신하고, 라이브 매니페스트에 포함되는 정보에 따라 컨텐츠 전송 네트워크(CDN)(50)로부터 컨텐츠 풀(21)의 인코딩된 컨텐츠, 즉 미디어 데이터를 수신한다.
클라이언트 단말(90)은 구비되는 플레이어 모듈에 의해 컨텐츠 방송을 재생한다(S380).
방송 서버(10)는 프로그램이 종료되기까지(S390), 스케줄에 따라 라이브 매니페스트를 주기적으로 업데이트하여 송출한다(S360 내지 S380).
방송 서버(10)는 하나의 프로그램이 종료되면, 다음 프로그램에 대하여 방송을 계속하여 송출한다.
그에 따라 방송 서버(10)는 컨텐츠 풀(21)을 이용하여 미리 인코딩된 컨텐츠를 방송으로 송출함으로써, 끊임없는 방송 서비스를 제공한다.
클라이언트 단말은 끊김 없이 방송을 수신하여 컨텐츠를 재생할 수 있다.
도 7 은 본 발명의 일실시예에 따른 방송 시스템의 스케줄 설정을 위한 데이터 구성을 설명하는데 참조되는 도이다.
도 7에 도시된 바와 같이, 템플릿데이터(71)는 마스터 정보(Master Information)(210), 프로그램 블록(220), 필러(filler)(230)를 포함한다.
템플릿데이터(71)는 방송 컨텐츠의 키워드, 카테고리, 편성시간 (Duration)과 같은 메타데이터를 기반으로 컨텐츠 풀(21)의 구성, 방송 스케줄 편성에 대한 로직이 반영된다.
마스터 정보(210)는 방송 편성에 대한 기본 정보를 포함한다.
마스터 정보(210)는 채널명(Channel Title), 채널 번호(Channel Number), 총 방송시간(Total Runtime)이 포함된다. 방송시간은, 예를 들어 24시간의 방송시간을 커버하는 프로그램 스케줄로, 프로그램 블록(220)의 편성시간의 총합이다.
또한, 마스터 정보(210)는 필수 메타데이터(Metadata)와 기타 방송 편성에 필요하다 판단되는 기본 정보를 포함한다.
메타데이터는, 예를 들어 장르(Genre), 키워드(Keyword), 카테고리(Category), 영상등급(Parental Rating) 등의 정보가 포함된다.
스케줄부(120)는 메타데이터(Metadata)가 정의되면 이 메타데이터를 포함하는 컨텐츠에 대한 스케줄을 설정할 수 있다. 예를 들어 장르를 정의하면 해당 스케줄에는 지정된 장르의 컨텐츠만 배치할 수 있다.
프로그램 블록(220)은 스케줄 블록(221, 222)을 구성할 정보를 정의한다.
프로그램 블록(220)은 스케줄 블록(221,222)의 아이디(Block ID), 스케줄 블록의 이름(Block Title), 스케줄 블록의 최대 편성 시간(Duration Limit)을 포함한다.
또한, 프로그램 블록(220)은 프로그램 메타데이터(Program Metadata), 프로그램 아이디(Program ID), 오리지널 컨텐츠 아이디(Origin ID), 타입(Type), 링크 아이디(Linked ID)를 포함한다.
프로그램 메타데이터(Program Metadata)는 컨텐츠 풀(21)에 포함될 컨텐츠가 포함해야 할 메타데이터(Metadata)로, 장르(Genre), 키워드(Keyword), 카테고리(Category), 영상등급(Parental Rating), 제목(Title), 설명(Description) 등 프로그램 연관정보를 포함한다. 별도로 정의하지 않는 경우 무시할 수 있다.
프로그램 아이디(Program IDs)는 컨텐츠 풀(21)에 포함될 컨텐츠의 프로그램 아이디 정보이고, 오리지널 아이디(Origin IDs)는 컨텐츠 풀(21)에 포함될 컨텐츠의 오리지널 컨텐츠에 대한 아이디 정보이다.
타입(Type)은 편성 방식(Index, Binge)에 관한 것으로, 인덱스(Index) 방식은 한편씩 편성하는 방식이고 빈지(Binge) 방식은 해당 편성시간(Duration Limit) 내에 해당하는 컨텐츠를 순서에 따라 편성하는 것이다.
링크 아이디(Linked ID)는 새로운 스케줄 블록 아이디를 정의하는 경우, 다른 스케줄 블록에서 사용된 로직을 이용하여 동일한 로직으로 스케줄을 편성할 수 있는데 이때 참조된 스케줄 블록의 아이디이다.
필러(230)는 스케줄 블록을 구성하는 경우, 편성시간을 채우지 못할 경우 자투리 시간을 채울 프로그램의 리스트를 정의한다. 스케줄 블록마다 필러(231, 232)를 배정할 수 있다.
필러(230)는 프로그램 블록(220)과 동일하게 구성되며, 다만 타입과 링크아이디는 제외된다.
도 8 은 본 발명의 일실시예에 따른 방송 시스템의 스케줄 설정에 따른 신호흐름이 도시된 흐름도이다.
스케줄부(120)는 방송 스케쥴을 자동으로 생성하는 경우, 오픈API(60)로부터 해당 채널에 사용 가능한 템플릿 리스트를 수신하고, 채널에 템플릿을 지정하여, 설정된 로직에 따라 컨텐츠 풀(21)로부터 컨텐츠를 호출하여 스케줄을 설정한다.
도 8에 도시된 바와 같이, 스케줄부(120)는 채널 아이디를 오픈API(60)로 전송하고(S510), 오픈API(60)는 채널 아이디의 정보에 대응하여 데이터베이스(DB)(70)로부터 템플릿데이터(71)를 호출하여 스케줄부(120)로 템플릿 리스트를 전송한다(S515, S520). 경우에 따라 스케줄부(120)는 데이터베이스(70)로부터 템플릿데이터(71)를 호출할 수 있다.
스케줄부(120)는 템플릿데이터(71)를 수신하고(S525), 이를 바탕으로 스케줄 블록에 컨텐츠를 배정하여 스케줄을 설정한다.
스케줄부(120)는 생성된 스케줄에 대하여, 채널 아이디, 템플릿 아이디, 날짜 정보를 포함하여 데이터를 오픈API(60)로 전송한다(S530).
데이터베이스(70)는 스케줄 템플릿 데이터를 바탕으로(S535) 템플릿 아이디에 대응하는 템플릿파일을 오픈API(60)로 전송한다(S540).
오픈API(60)는 일반 표현을 기반으로 데이터를 검색하고(S545), 데이터베이스(70)는 그에 대응하여 프로그램 메타데이터를 탐색하여(S550), 해당 컨텐츠에 대한 오리지널 아이디, 프로그램 아이디, 키워드, 카테고리에 대한 정보를 오픈API(60)로 전송한다(S555).
오픈API(60)는 채널 아이디와 스케줄 아이디를 데이터베이스(70)로 전송하고(S560), 데이터베이스(70)는 수신되는 데이터에 대응하여 스케줄을 저장한다(S565).
도 9 는 본 발명의 일실시예에 따른 방송 시스템의 스케줄 설정 방법이 도시된 순서도이다.
스케줄부(120)는 스케줄을 설정하는 경우, 템플릿에 정의된 정보를 읽어, 스케줄 블록 단위로 컨텐츠 풀(21)로부터 컨텐츠를 검색하여 배치함으로써 스케줄을 설정한다.
도 9에 도시된 바와 같이, 스케줄부(120)는 채널의 정의를 호출하고, 그에 대응하는 템플릿데이터를 오픈API(60) 또는 데이터베이스(70)로부터 수신한다.
스케줄부(120)는 템플릿데이터를 호출하고(S620), 템플릿데이터에 포함된 정보를 바탕으로 컨텐츠 리스트를 컨텐츠 풀(21)로부터 호출한다(S630).
스케줄부(120)는 필러 리스트를 호출하고(S640), 스케줄 블록 단위로 컨텐츠를 배정하여 스케줄을 설정한다(S650).
예를 들어 스케줄부(120)는 제 1 스케줄 블록의 편성시간 범위 내에서 컨텐츠를 배정하여 스케줄을 설정한다. 스케줄부(120) 스케줄 블록에 속성이 설정된 경우 해당 속성에 대한 컨텐츠를 배정한다.
스케줄부(120)는 이전 스케줄 블록에서 사용된 스케줄 블록 인덱스를 호출하여 컨텐츠가 중복되지 않도록 한다(S660).
또한 스케줄부(120)는 이전 컨텐츠에 연결되는 컨텐츠가 있는 경우 해당 컨텐츠를 배정하여 연속성 있게 스케줄을 설정한다.
스케줄부(120)는 방송 중, 블랙아웃이 발생하지 않도록 스케줄 블록에 필러를 배정한다(S670).
스케줄 블록 단위로 필러를 배정하여 방송 중에 어느 하나의 컨텐츠가 편성시간을 맞추지 못하는 경우 필러를 통해 대체 컨텐츠를 생성하여 스케줄을 변경한다.
예를 들어 스케줄부(120)는 하나의 컨텐츠가 종료된 후 다음 컨텐츠 시작까지 일정 시간 공백이 발생하는 경우 필러를 이용하여 대체 컨텐츠로써 새로운 컨텐츠를 배정함으로써 끊김없이 방송이 송출되도록 한다.
스케줄부(120)는 편성의 기준 시간인, 날짜의 변경 여부를 확인한다(S680). 날짜변경에 대한 확인은 일별 스케줄 편성에 해당하는 것으로 기준 시간이 24시간으로 설정된다. 또한, 스케줄부(120)는 기준 시간이 12시인 경우, 12시간 단위로 스케줄을 설정하고, 2일 단위로 편성하는 경우에는 48시간 단위로 확인하여 스케줄을 설정한다.
스케줄부(120)는 기준 시간, 즉 날짜가 변경되기 전이면, 다음 스케줄 블록(n+1)에 대한 스케줄을 설정한다(S685, S650 내지 S680).
스케줄부(120)는 날짜가 변경되는 경우, 설정된 스케줄을 스케줄데이터로 저장한다(S690).
스트리밍부(130)는 스케줄부(120)에 의해 설정된 스케줄데이터를 기반으로 스트리밍을 위한 작업을 생성하고(S700), 방송 프로그램의 컨텐츠 별로 매니페스트를 생성한다(S710).
방송 서버(10)는 스케줄에 따른 정보를 갱신하고, 컨텐츠를 재생하여 방송을 송출한다(S720).
한편, 오픈API(60)는 스케줄데이터를 수신하고, 이를 바탕으로 프로그램 가이드를 생성하여 클라이언트 단말(90)에 제공한다.
클라이언트 단말(90)은 프로그램 가이드를 통해 방송 스케줄을 확인하고 스트리밍을 수신하여 방송 컨텐츠를 재생한다.
그에 따라 방송 서버(10)는 끊김없이 컨텐츠를 재생하여 방송 서비스를 제공할 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며 당해 기술이 속하는 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위에 의하여 정해져야할 것이다.
10: 방송 서버 20: 컨텐츠 데이터베이스
21: 컨텐츠 풀 30: 컨텐츠 제공서버
50: 컨텐츠 전송 네트워크(CDN) 60: 오픈API
70: 데이터베이스 71: 템플릿 데이터
72: 스케줄 데이터 90, 91 내지 93: 클라이언트 단말
120: 스케줄부 130: 스트리밍부
131: 프로듀서 132: 컨수머
133: 랜더러 210: 마스터 정보
220: 프로그램 블록 230: 필러 블록

Claims (17)

  1. 오리지널 컨텐츠를 수신하여 소정 포맷으로 인코딩하고, 미리 인코딩된 컨텐츠에 대한 매니페스트(Manifest)를 스케줄에 따라 조합하여, 컨텐츠 전송 네트워크(CDN, Content Delivery Network)를 통해 스트리밍 방식으로 방송 서비스를 제공하는 방송 서버;
    상기 방송 서버에 의해 인코딩된 컨텐츠 데이터를 컨텐츠 풀로 구성하여 저장하는 컨텐츠 데이터베이스; 및
    상기 방송 서버에 의해 제공되는 스트리밍 서비스를 수신하여 컨텐츠를 재생하는 클라이언트 단말; 을 포함하고,
    상기 방송 서버는, 방송 일정을 복수의 스케줄 블록으로 구분하고, 스케줄 블록 단위로 상기 컨텐츠 풀의 컨텐츠를 배정하여 스케줄을 설정하여 상기 스케줄에 따라 방송을 송출하는 것을 특징으로 하는 방송 시스템.
  2. 제 1 항에 있어서,
    상기 방송 서버는, 방송에 대한 템플릿데이터와 상기 컨텐츠 풀에 저장된 컨텐츠 리스트를 수신하고, 상기 컨텐츠의 메타데이터를 기반으로 상기 스케줄 블록 단위로 자동으로 컨텐츠를 배정하여 스케줄을 설정하는 것을 특징으로 하는 방송 시스템.
  3. 제 2 항에 있어서,
    상기 방송 서버는, 오픈API로부터 방송 채널에 대응하는 템플릿 리스트를 수신하고, 상기 템플릿 리스트로부터 어느 하나의 템플릿을 선택하여. 상기 템플릿에 설정된 로직을 기반으로 스케줄을 설정하는 것을 특징으로 하는 방송 시스템.
  4. 제 1 항에 있어서,
    상기 방송 서버는, 스케줄 설정 시, 이전 스케줄 블록의 인덱스 정보를 기반으로, 컨텐츠가 중복되지 않고, 연속성 있는 컨텐츠를 배정하여 스케줄을 설정하는 것을 특징으로 하는 방송 시스템.
  5. 제 1 항에 있어서,
    상기 방송 서버는, 상기 스케줄 블록에 컨텐츠를 배정하여 스케줄을 설정하고, 스케줄 블록 단위로 필러를 배정하여 방송 중에 어느 하나의 컨텐츠가 편성시간을 맞추지 못하는 경우 상기 필러를 통해 대체 컨텐츠를 생성하여 스케줄을 변경하는 것을 특징으로 하는 방송 시스템.
  6. 제 1 항에 있어서,
    상기 방송 서버는, 상기 스케줄 블록에 속성을 설정하고, 상기 속성에 대응하는 컨텐츠를 상기 컨텐츠 풀로부터 호출하여 스케줄을 설정하는 것을 특징으로 하는 방송 시스템.
  7. 제 6 항에 있어서,
    상기 방송 서버는, 상기 스케줄 블록에 대하여, 장르, 카테고리, 키워드 중 적어도 하나로 속성을 설정하는 것을 특징으로 하는 방송 시스템.
  8. 제 6 항에 있어서,
    상기 컨텐츠 풀은, 복수의 컨텐츠에 대하여 각 컨텐츠의 메타데이터를 바탕으로 상기 속성에 대응하는 컨텐츠를 탐색하여 상기 방송 서버로 컨텐츠 리스트를 제공하는 것을 특징으로 하는 방송 시스템.
  9. 제 8 항에 있어서,
    상기 방송 서버는, 복수의 스케줄 블록으로 구성된 스케줄을 설정하고, 상기 스케줄을 일, 주, 월 단위로 반복되도록 설정하는 것을 특징으로 하는 방송 시스템.
  10. 제 1 항에 있어서,
    상기 방송 서버는,
    HLS 포맷으로 컨텐츠를 인코딩하는 인코더;
    방송 일정에 대응하여 상기 스케줄 블록 단위로 컨텐츠를 배정하여 스케줄을 설정하는 스케줄부; 및
    상기 스케줄을 바탕으로, 상기 인코더에 의해 미리 HLS 포맷으로 인코딩되어 컨텐츠 풀(21)에 저장되는 미디어 데이터를 송출하기 위한 컨텐츠 별 매니페스트를 호출하고 컨텐츠를 방송용 스트림으로 변환하여 송출하는 스트리밍부; 를 포함하는 방송 시스템.
  11. 방송 서버가, 오픈API로부터 템플릿 정보를 수신하고, 컨텐츠 풀로부터 컨텐츠 리스트를 수신하는 단계;
    템플릿을 기반으로, 방송 일정을 복수의 스케줄 블록으로 구분하고, 스케줄 블록 단위로 상기 컨텐츠 풀의 컨텐츠를 배정하여 스케줄을 설정하는 단계;
    스케줄 편성에 따른 기준 시간 내에서 복수의 스케줄 블록에 대한 스케줄을 설정하고, 상기 기준 시간 경과 시 설정된 스케줄을 저장하는 단계; 및
    상기 스케줄에 따라 컨텐츠를 스트리밍하여 방송을 송출하는 단계; 를 포함하는 방송 시스템의 동작방법.
  12. 제 11 항에 있어서,
    상기 스케줄을 설정하는 단계는,
    수신된 컨텐츠 리스트를 기반으로, 제 n 스케줄 블록에 컨텐츠를 배정하는 단계;
    이전 스케줄 블록의 인덱스를 호출하여 컨텐츠가 중복되지 않도록 설정하는 단계;
    상기 인덱스를 기반으로 연속되는 컨텐츠를 배정하는 단계; 및
    상기 스케줄 블록에 필러를 배정하는 단계; 를 포함하는 방송 시스템의 동작방법.
  13. 제 12 항에 있어서,
    상기 스케줄을 설정하는 단계는,
    상기 기준 시간이 경과하지 않은 경우 제 n+1 스케줄 블록에 컨텐츠를 배정하는 스케줄을 설정하는 단계; 를 더 포함하는 방송 시스템의 동작방법.
  14. 제 12 항에 있어서,
    방송 중에 어느 하나의 컨텐츠에 이상이 발생하거나 또는 편성시간을 맞추지 못하는 경우 상기 필러를 통해 대체 컨텐츠를 생성하여 스케줄을 변경하는 단계; 를 더 포함하는 방송 시스템의 동작방법.
  15. 제 11 항에 있어서,
    상기 스케줄을 설정하는 단계는,
    상기 스케줄 블록에 속성을 설정하고, 상기 컨텐츠 풀에 저장된 복수의 컨텐츠에 대한 메타데이터를 기반으로 상기 속성에 대응하는 컨텐츠를 호출하여 상기 스케줄을 설정하는 것을 특징으로 하는 방송 시스템의 동작방법.
  16. 제 15 항에 있어서,
    상기 스케줄 블록에 대하여, 장르, 카테고리, 키워드 중 적어도 하나로 속성을 설정하는 방송 시스템의 동작방법.
  17. 제 11 항에 있어서,
    상기 스케줄을 설정하는 단계는,
    복수의 스케줄 블록으로 구성된 스케줄을 설정하는 단계;
    상기 스케줄을 일, 주, 월 단위로 반복되도록 설정하는 단계; 를 더 포함하는 방송 시스템의 동작방법.

KR1020210130874A 2021-10-01 2021-10-01 컨텐츠 풀 기반 방송 시스템 및 그 방법 KR20230047720A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210130874A KR20230047720A (ko) 2021-10-01 2021-10-01 컨텐츠 풀 기반 방송 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210130874A KR20230047720A (ko) 2021-10-01 2021-10-01 컨텐츠 풀 기반 방송 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20230047720A true KR20230047720A (ko) 2023-04-10

Family

ID=85984614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210130874A KR20230047720A (ko) 2021-10-01 2021-10-01 컨텐츠 풀 기반 방송 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20230047720A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210030191A (ko) 2019-09-09 2021-03-17 경상국립대학교산학협력단 수신단 캐싱을 활용한 적응형 비디오 스트리밍 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210030191A (ko) 2019-09-09 2021-03-17 경상국립대학교산학협력단 수신단 캐싱을 활용한 적응형 비디오 스트리밍 시스템

Similar Documents

Publication Publication Date Title
US11166060B2 (en) Dynamic content delivery routing and related methods and systems
US10587907B2 (en) Broadcast management services platform
US20100058405A1 (en) Systems and Methods for Distributing Video on Demand
US20100115575A1 (en) System and method for recording and distributing media content
EP4111700A1 (en) Identification of elements in a group for dynamic element replacement
EP3892006A2 (en) Multiple parental rating content and method of presentation
KR20180058219A (ko) 송신 장치, 수신 장치, 및 데이터 처리 방법
KR20230047720A (ko) 컨텐츠 풀 기반 방송 시스템 및 그 방법
KR20230047719A (ko) 컨텐츠 풀 기반 방송 시스템 및 그 방법
KR102628917B1 (ko) 송신 장치, 수신 장치, 및 데이터 처리 방법
KR20230047717A (ko) 컨텐츠 풀 기반 방송 시스템 및 그 방법
KR20230047718A (ko) 컨텐츠 풀 기반 방송 시스템 및 그 방법
US11811838B1 (en) Generation of unique presentation of media content
Lau et al. An access-aware framework for Video-on-Demand system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal