KR20220115740A - 광고 제공 방법 - Google Patents

광고 제공 방법 Download PDF

Info

Publication number
KR20220115740A
KR20220115740A KR1020210019025A KR20210019025A KR20220115740A KR 20220115740 A KR20220115740 A KR 20220115740A KR 1020210019025 A KR1020210019025 A KR 1020210019025A KR 20210019025 A KR20210019025 A KR 20210019025A KR 20220115740 A KR20220115740 A KR 20220115740A
Authority
KR
South Korea
Prior art keywords
advertisement
user terminal
play list
time
providing
Prior art date
Application number
KR1020210019025A
Other languages
English (en)
Other versions
KR102526605B1 (ko
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 KR1020210019025A priority Critical patent/KR102526605B1/ko
Publication of KR20220115740A publication Critical patent/KR20220115740A/ko
Application granted granted Critical
Publication of KR102526605B1 publication Critical patent/KR102526605B1/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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4826End-user interface for program selection using recommendation lists, e.g. of programs or channels sorted out according to their score
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8126Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts

Abstract

서버가 사용자 단말기에 광고를 제공하는 방법은 스트리밍 서비스 제공을 위한 컨텐츠 재생 리스트를 사용자 단말기에 제공하는 단계로, 컨텐츠 재생 리스트는 스트리밍 서비스 제공을 위한 복수개의 파일 각각의 이름 정보 및 위치 정보, 재생 시간(duration) 정보를 포함하는 단계; 대체 광고 시작 신호를 수신하는 단계; 대체 광고 시작 신호를 수신하는 것에 대응하여, 컨텐츠 재생 리스트에 대체 광고 시작 시점을 특정 시간대를 기준으로 지정하여 삽입하여 컨텐츠 재생 리스트를 업데이트한 제1 업데이트된 컨텐츠 재생 리스트를 생성하는 단계; 제1 업데이트된 컨텐츠 재생 리스트를 사용자 단말기로 제공하는 단계; 대체 광고 종료 신호를 수신하는 단계; 대체 광고 종료 신호를 수신하는 것에 대응하여, 제1 업데이트된 컨텐츠 재생 리스트에 대체 광고 종료 시점을 상기 특정 시간대를 기준으로 지정하여 삽입하여 제2 업데이트된 컨텐츠 재생 리스트를 생성하는 단계; 및 제2 업데이트된 컨텐츠 재생 리스트를 사용자 단말기로 제공하는 단계를 포함한다.

Description

광고 제공 방법{METHOD OF PROVDING ADVERTISEMENT}
본 개시는 광고 제공 방법에 관한 것으로, 동영상을 시청하고 있는 사용자에게 동영상 시청 중 대체 영상으로 광고를 제공하는 방법에 관한 것이다.
사용자가 영화, 드라마, TV 프로그램과 같은 동영상을 스트리밍 서비스를 통해 시청할 때, 동영상 중간에 광고가 삽입된다. 일반적으로 스트리밍 서비스에서 동영상은 복수의 일정 길이의 청크 파일이 연속하여 제공되는 것에 의해 재생되므로, 광고 직전 동영상 청크의 재생을 종료한 뒤, 광고 영상을 재생하여 제공한다. 이러한 방식의 경우, 사용자가 동영상을 시청하는 도중에 광고를 정확한 시간에 삽입하기 위해서는 광고 재생 직전의 동영상 청크의 재생 시간이 가변적으로 조절될 필요가 있다. 광고 재생 직전의 동영상 청크의 재생 시간을 가변화하기 위해서는 방송 플랫폼에서 광고 재생 직전 동영상 청크를 길이를 편집하는 청크 모듈을 개발해야 하는 문제점이 있다. 이는 개발 시간과 비용 측면에서 비효율적이며 서비스를 확대하고자 할 때 지속적인 장비 증설이 필요한 문제를 발생시킨다.
한국 공개특허 제2017-0097547호
본 개시의 일 실시예에 의하면, 동영상을 재생하는 단말기가 광고 전환 시간을 계산하여 동영상을 광고로 정확하게 전환시킬 수 있다.
서버가 사용자 단말기에 광고를 제공하는 방법은 스트리밍 서비스 제공을 위한 컨텐츠 재생 리스트를 사용자 단말기에 제공하는 단계로, 상기 컨텐츠 재생 리스트는 상기 스트리밍 서비스 제공을 위한 복수개의 파일 각각의 이름 정보 및 위치 정보, 재생 시간(duration) 정보를 포함하는 단계; 대체 광고 시작 신호를 수신하는 단계; 상기 대체 광고 시작 신호를 수신하는 것에 대응하여, 상기 컨텐츠 재생 리스트에 대체 광고 시작 시점을 특정 시간대를 기준으로 지정하여 삽입하여 상기 컨텐츠 재생 리스트를 업데이트한 제1 업데이트된 컨텐츠 재생 리스트를 생성하는 단계; 상기 제1 업데이트된 컨텐츠 재생 리스트를 상기 사용자 단말기로 제공하는 단계; 대체 광고 종료 신호를 수신하는 단계; 상기 대체 광고 종료 신호를 수신하는 것에 대응하여, 상기 제1 업데이트된 컨텐츠 재생 리스트에 대체 광고 종료 시점을 상기 특정 시간대를 기준으로 지정하여 삽입하여 제2 업데이트된 컨텐츠 재생 리스트를 생성하는 단계; 및 상기 제2 업데이트된 컨텐츠 재생 리스트를 상기 사용자 단말기로 제공하는 단계를 포함한다.
일 실시예에 있어서, 상기 대체 광고 시작 신호를 수신하는 단계 및 대체 광고 종료 신호를 수신하는 단계는 동시에 수행된다.
일 실시예에 있어서, 상기 스트리밍 서비스 제공을 위한 컨텐츠 재생 리스트를 사용자 단말기에 제공하는 단계 이전에, 상기 서버는 사용자 단말기로부터 컨텐츠 요청 메시지를 수신하는 단계; 및 상기 컨텐츠 요청 메시지가 나타내는 컨텐츠를, 상기 사용자 단말기에서 재생 가능하고 재생 시간(duration)이 동일한 복수개의 파일로 분할하고, 상기 복수개의 파일 각각의 이름 정보, 위치 정보 및 상기 재생 시간 정보를 메타데이터로 하여 상기 컨텐츠 재생 리스트를 생성하는 단계를 더 포함한다.
일 실시예에 있어서, 상기 대체 광고 시작 시점 및 대체 광고 종료 시점은 상기 컨텐츠 재생 리스트의 헤더에 삽입된다.
일 실시예에 있어서, 상기 제1 업데이트된 컨텐츠 재생 리스트를 상기 사용자 단말기로 제공받은 상기 사용자 단말기는, 상기 제1 업데이트된 컨텐츠 재생 리스트에 포함된 정보에 기초하여, 상기 제1 업데이트된 컨텐츠 재생 리스트에 포함된 상기 복수개 파일 각각의 재생 시작 시점 및 재생 종료 시점을 계산하고, 상기 대체 광고 시작 시점을 포함하는 재생 구간을 갖는 파일을 검출하고, 상기 대체 광고 시작 시점에 상기 대체 광고 시작 시점을 포함하는 재생 구간을 갖는 파일의 재생을 일시 정지하고 대체 광고를 시작한다.
일 실시예에 있어서, 상기 특정 시간대는 협정세계시(Coordinated Universal Time, UTC)이다.
일 실시예에 있어서, 상기 컨텐츠 재생 리스트는 HTTP LIVE STREAMING 규격에 호환가능한 규격으로 제공된다.
본 개시의 다른 양태에서, 서버가 사용자 단말기에 광고를 제공하는 방법은 스트리밍 서비스 제공을 위한 컨텐츠 재생 리스트를 사용자 단말기에 제공하는 단계를 포함하며, 상기 컨텐츠 재생 리스트는 상기 스트리밍 서비스 제공을 위한 복수개의 파일 각각의 이름 정보 및 위치 정보, 재생 시간(duration) 정보, 대체 광고 시작 시간 및 대체 광고 종료 시간을 포함하고, 상기 스트리밍 서비스 제공을 위한 컨텐츠 재생 리스트를 제공 받은 상기 사용자 단말기는, 상기 복수개의 파일 각각의 재생 시작 시점 및 재생 종료 시점을 계산하고, 상기 대체 광고 시작 시점을 포함하는 재생 구간을 갖는 파일을 검출하고, 상기 대체 광고 시작 시점에 상기 대체 광고 시작 시점을 포함하는 재생 구간을 갖는 파일의 재생을 일시 정지하고 대체 광고를 시작하고, 상기 대체 광고 종료 시점에 상기 대체 광고를 종료하고 일시 정지된 파일을 재개하도록 하는, 광고를 제공하며, 상기 대체 광고 시작 시간 및 상기 대체 광고 종료 시간은 특정시간대를 기준으로 지정된다.
영상 스트리밍 프로토콜의 청크 리스트 파일에 동영상 재생 중 삽입할 광고의 기준 시간, 광고 시작 시점 및 광고 종료 시점을 추가하여 단말기로 송신한다. 단말기에서 청크 리스트 파일 내의 기준 시간을 기준으로 동영상 스트리밍 파일들 각각의 재생 시작 시간 및 재생 종료 시간을 계산하고, 광고 재생 시점 및 광고 종료 시점을 이용하여 광고 영상 전/후의 동영상 스트리밍 파일의 종료 시점 및 재생 시점을 계산한다. 단말기는 컨텐츠 딜리버리 네트워크(Contents Delivery Network, CDN)로부터 광고 영상을 수신하여 광고 영상 전/후의 동영상 스트리밍 파일의 종료 시점 및 재생 시점을 이용하여 광고 영상을 재생하고 종료한다. 이에 따라, 방송 플랫폼에서 별도의 청크 길이 변환 모듈을 구비할 필요가 없다.
도 1은 본 발명의 일 실시예에 따른 컨텐츠 제공 시스템을 나타낸 블록도이다.
도 2는 일 실시예에 따른 사용자 단말기의 구조를 설명하는 블록도이다.
도 3은 종래의 따른 광고 제공을 위한 컨텐츠 재생 리스트를 M3U8을 이용해서 제공하는 것을 나타내는 일 예이다.
도 4 내지 6은 일 실시예에 따른 광고 제공을 위한 컨텐츠 재생 리스트를 M3U8을 이용해서 제공하는 것을 나타내는 일 예이다.
도 7은 일 실시예에 따른 광고 제공 방법의 순서도이다.
도 8은 일 실시예에 따른 컨텐츠 재생 리스트를 제공하는 방법의 순서도이다.
이하에서는 도면을 참조하여 본 개시에 대해 상세히 설명하도록 한다. 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대해 상세한 설명은 생략한다. 덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다.
도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다. 본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것 만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
도 1은 본 발명의 일 실시예에 따른 컨텐츠 제공 시스템(10) 및 사용자 단밀기(20)를 나타낸 블록도이다.
도 1에 도시한 바와 같이, 일 실시예에 따른 컨텐츠 제공 시스템(10)은 방송 관리 서버(30) 및 광고 제공 서버(40)를 포함한다. 여기서, 방송 관리 서버(30) 및 광고 제공 서버(40)는 네트워크(50)를 통하여 사용자 단말기(20)와 연결될 수 있다.
네트워크(50)는 인터넷 망뿐만 아니라 CDMA(Code Division Multiple Access), WCDMA(Wideband CDMA), LTE(Long Term Evolution), 5G 등과 같은 이동통신망, 및 와이파이(Wi-Fi), 와이브로(Wibro) 등과 같은 무선통신망을 포함하는 광의의 개념으로 정의한다. 네트워크(50)는 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성 통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다.
방송 관리 서버(30)는 네트워크(50)를 통하여 사용자 단말기(20)에 영상 컨텐츠를 제공한다. 일 실시예에 있어서, 방송 관리 서버(30)는 컨텐츠 정보에 대응하여 광고 영상의 저장 위치, 시작 시점 및 실행회수 중 적어도 하나를 포함하는 광고 적용 규칙을 설정하여 광고 영상의 실행 정보로 저장할 수 있다. 즉, 방송 관리 서버(30)는 영상 컨텐츠에 할당된 채널정보 및 편성정보에 대응하여 특정 광고 영상이 저장된 위치 정보(예를 들면, URL: Uniform Resource Locator)를 설정하고, 영상 컨텐츠가 재생되는 경우에 해당 영상 컨텐츠의 재생 시점부터 해당 광고 영상이 어느 시점에 시행될지를 나타내는 시작 시점을 설정하며, 해당 광고 영상이 실행될 수 있는 회수를 설정하여 광고 적용 규칙으로 저장할 수 있다. 여기서, 광고 영상의 실행 정보는 광고 영상의 저장 위치만으로 구현될 수도 있다.
일 실시예에 있어서, 방송 관리 서버(30)는 스트리밍 서비스를 사용자 단말기에 제공하는 컨텐츠 딜러버리 네트워크(Contents Delivery 네트워크, CDN)를 포함하는 개념일 수 있다.
광고 제공 서버(40)는 사용자 단말기(20)로부터 광고 정보를 요청받고, 요청받은 광고 정보를 사용자 단말기(20)로 전송할 수 있다. 광고 제공 서버(40)는 큐톤 정보로부터 광고 시간을 인지한 사용자 단말기(20)로부터, 광고 시간의 기 설정된 시간 이전에 광고 정보를 요청받을 수 있으며, 광고 제공 서버(40)는 광고 요청 수신 시 요청에 상응하는 광고 정보를 사용자 단말기(20)로 전송할 수 있다.
광고 제공 서버(40)가 사용자 단말기(20)로 전송하는 광고 정보에는 광고 컨텐츠 및 해당 광고 컨텐츠의 재생 정보 중 적어도 어느 하나가 포함되어 있을 수 있다. 광고 제공 서버(40)는 사용자 단말기(20)에 지역별로 상이한 광고를 제공하는 지역 광고 제공 서버이거나, 모든 지역에 대한 광고를 통합 관리하는 광고 관리 서버일 수 있다. 일 실시예에서, 광고 제공 서버(40)는 컨텐츠 딜러버리 네트워크(Contents Delivery 네트워크, CDN)일 수 있다. 일 실시예에서, 광고 제공 서버(40)는 방송 관리 서버(30)와 다른 주체 또는 동일 주체의 관리 하에 있을 수도 있다.
일 실시예에서, 방송 관리 서버(30) 또는 광고 제공 서버(40)는 컨텐츠 정보를 다양한 코덱, 비트 전송율, 프레임 레이트, 해상도 등을 사용하여 오디오 및 비디오를 복수의 인코딩으로 변환 코딩할 수 있다. “서버”는 일반적으로 메모리, 입력/출력 회로, 및 명령 처리 로직을 포함하는 컴퓨터를 포함하는 것으로 이해될 수 있다. 개시된 기술의 많은 측면들이 하나 이상의 컴퓨터 상에서 실행되는 소프트웨어로서 실시될 수 있다.
일 실시예에서, 컨텐츠 제공 시스템(10)은 미디어 스트리밍 기술을 이용하여 영상 컨텐츠를 제공할 수 있다. 일 실시예에서, 미디어 스트리밍 기술 중의 HLS(HTTP live streaming)와 MPEG(moving picture expert group)-DASH(dynamic adaptive streaming over HTTP)는 HTTP 기반이다. HLS와 MPEG-DASH는 원본 컨텐츠 소스를 분할하여 복수의 비디오 세그먼트(또는 청크)를 만들고 사용자의 요청에 따라 해당 시점의 비디오 정보를 포함하는 각 세그먼트를 제공한다. 예를 들어, 동일 컨텐츠를 미리 서로 다른 비트 전송률로 나누어 세그먼트 형태로 준비한 후 이를 각 사용자의 네트워크 및 요청에 맞춰 알맞은 비트 전송률로 스트리밍 할 수 있다.
일 실시예에서, 청크는 TS(Transport Stream) 포맷 형식의 파일을 포함할 수 있다. 사용자 단말기(20)는 TS 파일에 대한 목록인 M3U 메시지 또는 M3U8 메시지를 이용하여 라이브 스트리밍 컨텐츠를 사용자에게 제공할 수 있다. M3U 메시지는 MP3 URL에 대한 메시지를 의미하며, M3U8 메시지는 M3U 메시지를 UTF-8로 인코딩한 메시지를 의미한다. 재생 리스트는 각 청크 파일에 대한 일련 번호와 주소 정보(예를 들면 URL 정보), 재생 시간 정보 등에 대한 정보를 포함하여 구성되는 데, 이를 확인한 사용자 단말기(20)는 해당 주소 정보로 일련 번호에 따라 순차적으로 청크 파일을 요청하고, 이를 수신하여 라이브 스트리밍 컨텐츠를 이용할 수 있게 된다. 이때, HTTP 기반 스트리밍 프로토콜에 따라 라이브 스트리밍 컨텐츠를 이용하기 위해서는 사용자 단말기(20)는 라이브 스트리밍 컨텐츠에 대한 재생 리스트를 먼저 요청하고, 이를 방송 관리 서버(30) 또는 광고 제공 서버(40)로부터 수신하여 보유하고 있어야 한다. 재생 리스트를 보유하고 있는 사용자 단말기(20)는 상기 재생 리스트에 따라 제1 청크 파일부터 제N 청크 파일을 순차적으로 방송 관리 서버(30) 또는 광고 제공 서버(40)에게 요청하고 수신하여 라이브 스트리밍 컨텐츠를 이용할 수 있게 된다
일 실시예에서, 사용자 단말기(20)는 네트워크 접속으로부터 컨텐츠를 수신 및 디스플레이 또는 유사한 출력 장치상에 컨텐츠를 디코딩 및 렌딩(rending)할 수 있는 컴퓨터화된 장치(또한 상기 컴포넌트를 포함)를 포함한다. 예를 들어, IPTV(Internet Protocol Television), 스마트 TV(Smart TV) 및 커넥티드 TV(Connected TV), 셋톱 박스(set-top box, STB), 스마트폰 등과 같이 인터넷 회선을 이용하는 모든 종류의 TV 장치를 포함할 수 있다. 사용자 단말기(20)는 멀티미디어 스트리밍 어댑터, 멀티미디어 동글 및 OTT(Over the Top) 디바이스 등과 같은 통신 장치일 수 있으며, 사용자 단말기(20)의 종류는 이에 한정되지 않는다.
도 2는 일 실시예에 따른 사용자 단말기(20)의 구조를 설명하는 블록도이다. 사용자 단말기(20)는 하나 이상의 데이터 버스(128)에 의해 함께 결합된 하나 이상의 프로세서(21), 메모리(22), 로컬 스토리지(24) 및 입력/출력(I/O) 인터페이스 회로(26)를 포함한다. I/O 인터페이스 회로(26)는 장치를 하나 이상의 외부 네트워크, 부가적인 스토리지 장치 또는 시스템, 및 본 기술분야에서 일반적으로 공지된 다른 입력/출력 장치에 결합시킨다. 일 실시예에서, 사용자 단말기(20)의 동작은 메모리(22) 내에 기억된 컴퓨터 프로그램 명령(소프트웨어) 및 프로세서(들)(21)에 의해 검색 및 실행된 컴퓨터 프로그램 명령(소프트웨어)을 실행될 수 있다.
사용자 단말기(20)는 단일 재생 방식(One-Player 방식) 또는 구분 재생 방식(Two-Player 방식)으로 광고를 재생하도록 구성될 수 있다. 단일 재생 방식(One-Player 방식)은 사용자 단말기(20)의 하나의 재생기(Player)에서 실시간 방송 컨텐츠와 타겟 광고 컨텐츠를 모두 재생하는 방식이다. 사용자 단말기(20)가 특정 광고 시점에서 실시간 방송에 포함되어 있는 광고 컨텐츠가 아닌 타겟 광고 컨텐츠로 대체하여 재생하고 타겟 광고 컨텐츠 재생 완료 후 원래 실시간 방송 컨텐츠를 이어서 재생하는 방식이다. 구분 재생 방식(Two-Player 방식)은 실시간 방송 컨텐츠를 재생하는 재생기(도시되지 않음)와 타겟 광고 컨텐츠를 재생하는 재생기를 분리하여 컨텐츠를 재생하는 방식이다. 실시간 방송 컨텐츠를 재생하는 재생기가 실시간 방송 컨텐츠를 재생하는 도중 특정 광고 시점에서 다른 재생기가 동작하여 실시간 방송 컨텐츠를 재생하는 재생기 화면을 다른 재생기가 타겟 광고 컨텐츠로 덮어 씌워 재생하고 타겟 광고 컨텐츠 재생 완료 후에는 실시간 방송 컨텐츠를 재생하는 재생기가 화면을 다시 차지하는 방식이다.
도 3은 종래 기술에 따른 광고 제공을 위한 컨텐츠 재생 리스트를 M3U8을 이용해서 제공하는 것을 나타내는 일 예이다. 사용자 단말기(20)는 도 3에 도시된 M3U8을 수신하여, 이에 따라 청크를 순차적으로 재생하여 컨텐츠를 사용자에게 제공한다. 도 3에 도시된 파일명, 재생 시간(duration) 등은 예시적인 것이다.
도 3을 참조하면, EXT-X-PROGRAM-DATE-TIME (2020-02-021, 14:05:29.546+09:00)은 첫번째 청크인 08011_-_181.ts 파일의 생성시간이다. 또한 #EXTINF는 해당 청크의 재생 길이이다. 여기서 9시간이 더해진 것(+9:00)은 한국 시간이 협정세계시(Coordinated Universal Time, UTC)보다 9시간이 빠르기 때문이다. EXT-X-PROGRAM-DATE-TIME이 14:05:29.546이고 08011_-_181.ts의 #EXTINF는 4이므로 08011_-_181.ts의 UTC 기준 영상 시간은 14:05:29.546~14:05:33.546이다(편의상 날짜 및 9시간의 시차는 생략하였다). 08011_-_182.ts는 08011_-_181.ts의 다음 청크이고 재생 시간이 4초이므로 UTC 기준 영상 시간은 14:05:33.546~14:05:37.546이다. 이와 같이, 14:05:29.546 + 09:00부터 4초씩 08011_-_181.ts ~ 08011_-_188.ts을 재생하고, 08011_-_189.ts를 2초 재생한 다음 EXT-X-CUE-OUT부터 EXT-X-CUE-IN까지 DURATION (4초) 동안 광고(08011_-_190.ts) 가 재생된다. 기본적인 청크의 크기는 예를 들어 4초이다. 즉, 동영상 컨텐츠를 일괄적으로 4초 길이의 복수개의 청크로 스플릿(split)하여 서비스를 제공할 수 있다. 그러나, CUE-OUT 전환을 위해, 즉 08011_-_189.ts를 2초 재생하고 광고를 제공하기 위해서는 하나의 청크(여기서는 08011_-_189.ts)를 선택하여 2초 길이로 변환해야 하고 이는 별도의 변환 모듈을 구비할 것이 요구되어 비효율적이다.
도 4 내지 6은 일 실시예에 따른 광고 제공을 위한 컨텐츠 재생 리스트를 M3U8을 이용해서 제공하는 것을 나타내는 일 예이다. 사용자 단말기(20)는 도 4 내지 6에 도시된 M3U8을 수신하여, M3U8에 따라 청크를 순차적으로 재생하여 컨텐츠를 사용자에게 제공한다. 컨텐츠 재생 리스트는 사용자가 요청한 컨텐츠의 청크 리스트를 포함할 수 있다. 또한, 컨텐츠 재생 리스트는 광고 재생 시작 시간 및/또는 광고 재생 종료 시간을 더 포함할 수 있다.
사용자 단말기(20)는 주기적으로 업데이트된 M3U8 컨텐츠 재생 리스트를 방송 관리 서버(30)로부터 수신하고, 업데이트에 따라 새로 추가되는 M3U8 컨텐츠 재생 리스트에 기재된 메타데이터에 따라 TS 파일들을 방송 관리 서버(30), 광고 제공 서버(40), 또는 외부의 다른 컨텐츠 딜리버리 네트워크(도시되지 않음)에게 요청하고 제공받아서 재생한다. 사용자 단말기(20)는 M3U8 컨텐츠 재생 리스트에 포함된 TS 파일들을 모두 요청하여 전송받지 않고, 사용자 단말기(20)의 재생 버퍼(도시되지 않음) 용량에 맞추어서 미리 복수개(예를 들어 1개~수개 정도)의 TS 파일들을 재생 전에 방송 관리 서버(30), 광고 제공 서버(40), 또는 외부의 다른 컨텐츠 딜리버리 네트워크(도시되지 않음)로부터 제공받을 수 있다.
도 4를 참조하면, EXT-X-PROGRAM-DATE-TIME (2020-02-21, 14:05:29.546 + 09:00)은 첫번째 청크인 08011_-_181.ts 생성 시간이다. 또한 #EXTINF는 해당 청크의 재생 길이이다. 이에 따라, 사용자 단말기(20)는 08011_-_181.ts ~ 08011_-_191.ts을 한국시간 2020년 2월 21일 2시 5분 29.546초에 시작하여 4초씩 재생시킨다. 예를 들어, EXT-X-PROGRAM-DATE-TIME이 14:05:29.546이고 08011_-_181.ts의 #EXTINF는 4이므로 08011_-_181.ts의 UTC 기준 영상 시간은 14:05:29.546~14:05:33.546이다(편의상 날짜 및 9시간의 시차는 생략하였다). 08011_-_182.ts는 08011_-_181.ts의 다음 청크이고 재생 시간이 4초이므로 UTC 기준 영상 시간은 14:05:33.546~14:05:37.546이다. 이와 같은 방법으로 사용자 단말기(20)는 각 청크의 재생 시작 시간 및 재생 종료 시간을 계산할 수 있다.
도 5는 도 4의 컨텐츠 재생 리스트로부터 8초 후에 업데이트된 컨텐츠 재생 리스트의 예이다. 8초가 지나서, EXT-X-PROGRAM-DATE-TIME 2020-02-21, 14:05:37.546 + 09:00이고 이는 08011_-_183.ts의 재생 시작 시간이다. 도 5의 컨텐츠 재생 리스트에는 대체 광고 삽입을 위한 태그가 삽입되어 있다. 즉, 도 5의 5줄은 대체 광고 삽입을 위한 태그를 나타낸다. 대체 광고 삽입을 위한 태그는 헤더에 삽입되어 있다. 예를 들어, 대체 광고는 EXT-X-ADVERTISMENT-START-TIME(대체 광고 시작 시간)은 2020년 2월 21일 14:06:07.646+9:00이다. 여기서 8초 후 업데이트는 예시적인 것으로, 업데이트 주기는 4초일 수도 있고, 사용자 단말기(20), 방송 관리 서버(30), 광고 제공 서버(40), 또는 외부의 컨텐츠 딜리버리 네트워크(도시되지 않음) 등에 의해 정해질 수 있다.
EXT-X-PROGRAM-DATE-TIME이 14:05:37.546이고 08011_-_183.ts의 #EXTINF는 4이므로 08011_-_183.ts의 UTC 기준 재생 시간은 14:05:37.546~14:05:41.546이다(편의상 날짜 및 9시간의 시차는 생략하였다). 08011_-_184.ts는 08011_-_183.ts의 다음 청크이고 재생 시간이 4초이므로 UTC 기준 영상 시간은 14:05:41.546~14:05:45.546이다. 이와 같은 방법으로 사용자 단말기(20)는 각 청크의 재생 시작 시간 및 재생 종료 시간을 계산할 수 있다.
각 청크의 재생 시작 시간 및 종료 시간을 계산하면, 대체 광고의 시작 시간이 어떤 청크의 재생 구간에 포함되는지 알 수 있다. 예를 들어, 대체 광고 시작 시간인 14:06:07.646은 시작 시간이 14:06:05.546이고 종료 시간이 14:06:09.546인 08011_-_190.ts의 사이에 있음을 알 수 있다. 따라서, 사용자 단말기(20)는 14:06:05.546부터 14:06:07.646까지 2.1초동안 08011_-_190.ts를 재생하고 일시 정지하며, 14:06:07.646에 대체 광고를 재생한다. 일 실시예에서, 사용자 단말기(20)는 광고 제공 서버(40)로부터 14:06:07.646 전에 광고 영상 스트림 데이터를 수신하여 대체 광고 영상을 준비한다. 예를 들어, 14:06:07.646 전에 광고 영상 스트림 데이터를 수신하여 디코딩까지 완료시킬 수 있다.
도 6은 도 5의 컨텐츠 재생 리스트로부터 8초 후에 업데이트된 컨텐츠 재생 리스트의 예이다. 8초가 지나서, EXT-X-PROGRAM-DATE-TIME 2020-02-21, 14:05:45.546 + 09:00이고 이는 08011_-_185.ts의 재생 시작 시간이다. 도 6의 컨텐츠 재생 리스트에는 대체 광고 삽입을 위한 태그가 삽입되어 있다. 즉, 도 6의 5 ~ 6 줄은 대체 광고 삽입을 위한 태그를 나타낸다. 대체 광고 삽입을 위한 태그는 헤더에 삽입되어 있다. 예를 들어, 대체 광고를 위한 EXT-X-ADVERTISMENT-START-TIME(대체 광고 시작 시간)은 2020년 2월 21일 14:06:07.646+9:00이다. EXT-X-ADVERTISMENT-END-TIME(대체 광고 종료 시간)은 2020년 2월 21일 14:06:32.646+9:00이므로, 25초 동안 대체 광고를 재생시킨다. EXT-X-ADVERTISMENT-START-TIME 및 EXT-X-ADVERTISMENT-END-TIME은 설명을 위한 예시적인 것으로 광고 삽입자(광고 운영자, 방송 운영자)에 의해 변경 가능하다.
EXT-X-PROGRAM-DATE-TIME이 14:05:45.546이고 08011_-_185.ts의 #EXTINF는 4이므로 08011_-_185.ts의 UTC 기준 영상 시간은 14:05:45.546~14:05:49.546이다(편의상 날짜 및 9시간의 시차는 생략하였다). 08011_-_186.ts는 08011_-_185.ts의 다음 청크이고 재생 시간이 4초이므로 UTC 기준 영상 시간은 14:05:49.546~14:05:53.546이다. 이와 같은 방법으로 사용자 단말기(20)는 각 청크의 재생 시작 시간 및 재생 종료 시간을 계산할 수 있다.
각 청크의 재생 시작 시간 및 종료 시간을 계산하면, 대체 광고 시작 시간인 14:06:07.646은 시작 시간이 14:06:05.546이고 종료 시간이 14:06:09.546인 08011_-_190.ts의 사이에 있음을 알 수 있다. 따라서, 사용자 단말기(20)는 14:06:05.546부터 14:06:07.646까지 2.1초동안 08011_-_190.ts를 재생하고 일시 정지하며, 14:06:07.646에 대체 광고를 재생한다. 일 실시예에서, 사용자 단말기(20)는 광고 제공 서버(40)로부터 14:06:07.646 전에 광고 영상 스트림 데이터를 수신하여 대체 광고 영상을 준비한다. 예를 들어, 14:06:07.646 전에 광고 영상 스트림 데이터를 수신하여 디코딩까지 완료시킬 수 있다. 대체 광고 종료 시간은 14:06:32.646이므로, 이때 대체 광고 영상을 종료하고 08011_-_190.ts를 다시 재생한다.
도 4 내지 6의 예는 M3U8을 기준으로 설명하였으나, 일 실시예에서, 유사한 방법으로 DASH 프로토콜에 대체 광고 시작 시간 및 대체 광고 종료 시간을 삽입하여 사용자 단말기(20)에 전달하여, 사용자 단말기(20)가 일정 시간 기준(예를 들어, UTC)에 기초하여 대체 광고 전/후의 청크를 파악하고, 대체 광고 전/후의 청크를 일시 정지하여 대체 광고를 재생하고 종료하여 대체 광고를 제공할 수 있다. 본 개시는 미디어 파일을 조각화하여 HTTP 프로토콜로 전송하는 방식을 사용하는 다른 프로토콜(예를 들어 마이크로소프트사의 Smooth Streaming, 아도비(Adobe)의 HTTP Dynamic Streaming, 애플사의 HLS), 또는 CMAF(Common Media Application Format)에도 적용될 수 있다. 또, 청크리스트 파일에 시간 기준을 기입할 수 있는 모든 프로토콜에 적용 가능하며 이는 본 개시 이후에 개발되는 프로토콜에 적용될 수 있다.
도 7은 일 실시예에 따른 광고 제공 방법의 순서도이다. 도 7에 도시된 각 단계들의 순서는 변경될 수 있다.
도 7를 참조하면, 사용자 단말기(20)는 컨텐츠 요청 메시지를 방송 관리 서버에 송신한다(S502). 사용자 단말기(20)는 사용자로부터 컨텐츠 시청 요청을 받고, 이에 대응하여 컨텐츠 요청 메시지를 방송 관리 서버에 송신할 수 있다.
방송 관리 서버(30)는 컨텐츠 재생 리스트를 작성한다(S504). 일 실시예에서, 방송 관리 서버(30)는 동영상 데이터를 조각화하여 복수의 영상 조각 파일(스트리밍 파일, 청크)들을 생성하고, 또한 생성된 스트리밍 파일에 관한 메타 데이터(예를 들어, 파일명, 파일 주소(URL), 재생 시간)를 생성한다. 방송 관리 서버(30)는 메타 데이터에 기초하여 컨텐츠 재생 리스트를 작성한다. 컨텐츠 재생 리스트는 M3U8, MPD 포맷 중 어느 하나를 포함할 수 있다. 예를 들어, 도 5에 도시된 바와 같은 컨텐츠 재생 리스트가 작성될 수 있다. 일 실시예에서, 복수의 영상 조각 파일은 동일한 재생 시간을 갖도록 생성될 수 있다.
방송 관리 서버(30)는 컨텐츠 재생 리스트를 사용자 단말기(20)에 송신한다(S506).
사용자 단말기(20)는 컨텐츠 재생 리스트에 기재된 주소로 스트리밍 파일(청크)을 요청하고 수신하여 컨텐츠를 사용자에게 제공한다(S508). 일 실시예에서, 사용자 단말기(20)는 방송 관리 서버(30), 광고 제공 서버(40) 및/또는 다른 컨텐츠 딜리버리 네트워크(도시되지 않음)에게 스트리밍 파일을 요청하고 수신하여 컨텐츠를 제공할 수 있다.
방송 관리 서버(30)는 대체 광고 시작 신호를 수신한다(S510). 일 실시예에서, 대체 광고 시작 신호는 방송 관리 서버(30)의 운영자로부터 입력될 수 있다. 방송 관리 서버(30)의 운영자는 실시간으로 제공되는 컨텐츠를 모니터링하여 원하는 시간에 대체 광고가 시작되도록 대체 광고 시작 신호를 생성할 수 있다. 대체 광고 시작 신호는 대체 광고가 재생되는 시점에 관한 정보를 포함할 수 있다. 예를 들어, 실시간으로 프로야구 중계를 제공하는 방송 관리 서버(30)의 운영자는 프로야구 이닝 사이에 방송사 광고를 대체하여 광고 영상을 제공하기 위해 프로야구 이닝 종료 시점에 대체 광고가 시작하도록 대체 광고 시작 신호를 입력할 수 있다.
방송 관리 서버(30)는 컨텐츠 재생 리스트를 업데이트한다(S512). 일 실시예에서, 방송 관리 서버(30)는 대체 광고 시작 시간을 특정 시간대를 기준으로 하여 컨텐츠 재생 리스트에 삽입할 수 있다. 예를 들어, 도 5에 도시된 것과 같이 UTC를 기준으로 대체 광고 시작 시간을 컨텐츠 재생 리스트에 삽입할 수 있다. 일 실시예에서, 컨텐츠 재생 리스트는 주기적으로 업데이트될 수 있다.
방송 관리 서버(30)는 업데이트된 컨텐츠 재생 리스트를 사용자 단말기(20)에 송신한다(S514).
사용자 단말기(20)는 업데이트된 컨텐츠 재생 리스트에 기재된 주소로 스트리밍 파일을 요청하고 수신하여 컨텐츠를 제공한다(S516). 일 실시예에서, 사용자 단말기(20)는 방송 관리 서버(30), 광고 제공 서버(40) 및/또는 다른 컨텐츠 딜리버리 네트워크(도시되지 않음)에게 스트리밍 파일을 요청하고 수신하여 컨텐츠를 제공할 수 있다. 또한, 일 실시예에서, 사용자 단말기(20)는 컨텐츠를 제공하는 도중, 예를 들어 도 5 및 도 5에 관련된 설명과 같이, 업데이트된 컨텐츠 재생 리스트에 삽입된 대체 광고 시작 시간, 스트리밍 파일의 길이, 스트리밍 파일의 재생 시작 시간 적어도 하나에 기초하여 대체 광고가 어떤 스트리밍 파일이 재생되는 도중에 시작되는지 계산할 수 있다.
방송 관리 서버(30)는 대체 광고 종료 신호를 수신한다(S518). 일 실시예에서, 대체 광고 시작 신호는 방송 관리 서버(30)의 운영자로부터 입력될 수 있다. 방송 관리 서버(30)의 운영자는 실시간으로 제공되는 컨텐츠를 모니터링하여 원하는 시간에 대체 광고가 종료되도록 대체 광고 종료 신호를 생성할 수 있다. 대체 광고 종료 신호는 대체 광고가 종료되는 시점에 관한 정보를 포함할 수 있다. 예를 들어, 실시간으로 프로야구 중계를 제공하는 방송 관리 서버(30)의 운영자는 프로야구 이닝 사이에 방송사 광고를 대체하여 광고 영상을 제공하기 위해 프로야구 이닝 시작 시점에 대체 광고가 종료하도록 대체 광고 종료 신호를 입력할 수 있다. 일 실시예에서, 대체 광고 종료 신호와 대체 광고 시작 신호는 별도로 입력될 수도 있고, 실질적으로 동시에 입력될 수 있다. 예를 들어 방송 관리 서버(30)의 운영자는 대체 광고 종료 신호와 대체 광고 시작 신호를 함께 입력할 수 있다. 이 경우, 컨텐츠 재생 리스트에 도 6에 도시된 것과 같이 대체 광고 종료 신호와 대체 광고 시작 신호가 함께 입력될 수 있다.
방송 관리 서버(30)는 컨텐츠 재생 리스트를 업데이트한다(S520). 일 실시예에서, 방송 관리 서버(30)는 대체 광고 종료 시간을 특정 시간대를 기준으로 하여 컨텐츠 재생 리스트에 삽입할 수 있다. 예를 들어, 도 6에 도시된 것과 같이 UTC를 기준으로 대체 광고 종료 시간을 컨텐츠 재생 리스트에 삽입할 수 있다.
방송 관리 서버(30)는 업데이트된 컨텐츠 재생 리스트를 사용자 단말기(20)에 송신한다(S522).
사용자 단말기(20)는 업데이트된 컨텐츠 재생 리스트에 기재된 주소로 스트리밍 파일을 요청하고 수신하여 컨텐츠를 제공한다(S524). 일 실시예에서, 사용자 단말기(20)는 방송 관리 서버(30), 광고 제공 서버(40) 및/또는 다른 컨텐츠 딜리버리 네트워크(도시되지 않음)에게 스트리밍 파일을 요청하고 수신하여 컨텐츠를 제공할 수 있다.
사용자 단말기(20)는 광고 제공 서버(40)로 광고 영상 데이터를 요청한다(S526). 광고 영상 데이터 요청을 위한 정보(예를 들어, 시간, 위치 등)는 업데이트된 컨텐츠 재생 리스트에 포함되어 있다.
광고 제공 서버(40)는 사용자 단말기(20)의 광고 영상 데이터 요청에 응답하여 광고 영상 데이터를 사용자 단말기(20)로 송신한다(S528).
사용자 단말기(20)는 컨텐츠 재생 리스트에 포함된 대체 광고 시작 시점에 대체 광고를 시작한다(S530). 사용자 단말기(20)가 스트리밍 파일을 재생 중인 경우, 재생중인 스트리밍 파일의 재생을 일시 중지하고 대체 광고를 시작할 수 있다. 일 실시예에서, 사용자 단말기(20)는 구분 재생 방식(Two-Player 방식)으로 광고를 재생할 수 있다. 일 실시예에서, 사용자 단말기(20)는 스트리밍 파일을 수신하여 제공하는 도중에 광고 영상 데이터를 미리 수신하여 디코딩을 미리 할 수도 있다. 즉, 단계S524 또는 단계516이전에 단계 S526 및 S528이 수행될 수 있다.
사용자 단말기(20)는 컨텐츠 재생 리스트에 포함된 대체 광고 종료 시점에 대체 광고를 종료한다(S532).
사용자 단말기(20)는 대체 광고를 종료하고 기존 컨텐츠를 제공한다(S534). 일 실시예에서, 대체 광고를 종료하고 일시 중단한 스트리밍 파일의 재생을 재개한다. 사용자 단말기(20)는 주기적으로 컨텐츠 재생 리스트를 수신하여, 컨텐츠 재생 리스트에 따라 컨텐츠를 제공한다.
도 8은 일 실시예에 따른 컨텐츠 재생 리스트를 제공하는 방법의 순서도이다.
도 8을 참조하면, 방송 관리 서버(30)는 사용자 단말기로부터 컨텐츠 요청 메시지를 수신한다(S802).
방송 관리 서버(30)는 컨텐츠 요청 메시지에 대응하여 컨텐츠 재생 리스트를 작성(S804)한다. 일 실시예에서, 방송 관리 서버(30)는 동영상 데이터를 조각화하여 복수의 영상 조각 파일(스트리밍 파일, 청크, TS 파일)들을 생성하고, 또한 생성된 스트리밍 파일에 관한 메타 데이터(예를 들어, 파일명, 파일 주소(URL), 재생 시간)를 생성한다. 방송 관리 서버(30)는 메타 데이터에 기초하여 컨텐츠 재생 리스트를 작성한다. 컨텐츠 재생 리스트는 M3U8, MPD 포맷 중 어느 하나를 포함할 수 있다. 일 실시예에서, 복수의 영상 조각 파일은 동일한 재생 시간을 갖도록 생성될 수 있다. 컨텐츠 재생 리스트는 복수의 스트리밍 파일의 주소, 재생 시간, 재생 지속 시간을 포함할 수 있다.
방송 관리 서버(30)는 컨텐츠 재생 리스트를 사용자 단말기(20)로 송신한다(S806).
방송 관리 서버(30)는 대체 광고 시작 시간을 나타내는 대체 광고 시작 신호를 수신한다(S808). 대체 광고 시작 신호는 방송 관리 서버(30) 운영자에 의해 입력될 수 있다. 예를 들어, 방송 관리 서버(30) 운영자는 원하는 시간에 대체 광고를 재생시키기 위해 컨텐츠가 사용자 단말기(20)에서 재생되고 있는 도중 실시간으로 대체 광고 시작 신호를 입력할 수 있다.
방송 관리 서버(30)는 대체 광고 시작 신호의 수신에 대응하여 컨텐츠 재생 리스트에 대체 광고 시작 시간을 삽입하여 컨텐츠 재생 리스트를 업데이트한다(S810). 대체 광고 시작 시간은 특정 시간대, 예를 들어 UTC를 기준으로 하여 지정되어 삽입될 수 있다. 업데이트된 컨텐츠 재생 리스트는 복수의 스트리밍 파일의 주소, 재생 시간, 재생 지속 시간, 대체 광고 시작 시간을 포함할 수 있다.
방송 관리 서버(30)는 업데이트된 컨텐츠 재생 리스트를 사용자 단말기(20)로 송신한다(S812).
방송 관리 서버(30)는 대체 광고 종료 시간을 나타내는 대체 광고 종료 신호를 수신한다(S814). 대체 광고 종료 신호는 방송 관리 서버(30) 운영자에 의해 입력될 수 있다. 예를 들어, 방송 관리 서버(30) 운영자는 원하는 시간에 대체 광고를 종료하기 위해 컨텐츠가 사용자 단말기(20)에서 재생되고 있는 도중 실시간으로 대체 광고 종료 신호를 입력할 수 있다.
방송 관리 서버(30)는 대체 광고 종료 신호의 수신에 대응하여 컨텐츠 재생 리스트에 대체 광고 종료 시간을 삽입하여 컨텐츠 재생 리스트를 업데이트한다(S816). 대체 광고 종료 시간은 특정 시간대, 예를 들어 UTC를 기준으로 하여 지정되어 삽입될 수 있다 업데이트된 컨텐츠 재생 리스트는 복수의 스트리밍 파일의 주소, 재생 시간, 재생 지속 시간, 대체 광고 시작 시간, 대체 광고 종료 시간을 포함할 수 있다.
방송 관리 서버(30)는 업데이트된 컨텐츠 재생 리스트를 사용자 단말기(20)로 송신한다(S818).
일 실시예에서, 대체 광고 종료 신호와 대체 광고 시작 신호는 별도로 입력될 수도 있고, 실질적으로 동시에 입력될 수 있다. 예를 들어 서버(30)의 운영자는 대체 광고 종료 신호와 대체 광고 시작 신호를 함께 입력할 수 있다. 이 경우, 도 4의 컨텐츠 재생 리스트가 컨텐츠 재생 리스트에 도 6에 도시된 것과 같이 업데이트 될 수 있다.
사용자 단말기(20)는 업데이트된 컨텐츠 재생 리스트에 포함된 정보를 이용하여 스트리밍 서비스를 제공하는 도중 지정된 대체 광고 시작 시간에 대체 광고를 재생하고 대체 광고 종료 시간에 대체 광고를 종료한다.
이상에서 설명된 장치 및 방법은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령 (instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
기존 영상을 제공하는 도중 대체 광고로 전환하기 위해, 대체 광고 재생시작 및 종료 시점을 특정 시간대(예를 들어, UTC) 기준으로 청크 리스트에 명시적으로 포함시킨다. 사용자 단말기는 청크 리스트에 기초하여 광고 전환 시간을 계산하여 대체 광고를 정확하게 전환시킨다. 이에 따라, 기존의 대체 광고 송출을 위해서 영상 청크를 가변적으로 잘라야하는 비효율성을 해결한다.
10: 컨텐츠 제공 시스템 20: 사용자 단말기
30: 방송 관리 서버 40: 광고 제공 서버
21: 프로세서 22: 메모리
24: 스토리지 26: I/O 인터페이스 회로

Claims (8)

  1. 서버가 사용자 단말기에 광고를 제공하는 방법에 있어서,
    스트리밍 서비스 제공을 위한 컨텐츠 재생 리스트를 사용자 단말기에 제공하는 단계로, 상기 컨텐츠 재생 리스트는 상기 스트리밍 서비스 제공을 위한 복수개의 파일 각각의 이름 정보 및 위치 정보, 재생 시간(duration) 정보를 포함하는 단계;
    대체 광고 시작 신호를 수신하는 단계;
    상기 대체 광고 시작 신호를 수신하는 것에 대응하여, 상기 컨텐츠 재생 리스트에 대체 광고 시작 시점을 특정 시간대를 기준으로 지정하여 삽입하여 상기 컨텐츠 재생 리스트를 업데이트한 제1 업데이트된 컨텐츠 재생 리스트를 생성하는 단계;
    상기 제1 업데이트된 컨텐츠 재생 리스트를 상기 사용자 단말기로 제공하는 단계;
    대체 광고 종료 신호를 수신하는 단계;
    상기 대체 광고 종료 신호를 수신하는 것에 대응하여, 상기 제1 업데이트된 컨텐츠 재생 리스트에 대체 광고 종료 시점을 상기 특정 시간대를 기준으로 지정하여 삽입하여 제2 업데이트된 컨텐츠 재생 리스트를 생성하는 단계; 및
    상기 제2 업데이트된 컨텐츠 재생 리스트를 상기 사용자 단말기로 제공하는 단계를 포함하는, 광고를 제공하는 방법.
  2. 제1항에 있어서,
    상기 대체 광고 시작 신호를 수신하는 단계 및 대체 광고 종료 신호를 수신하는 단계는 동시에 수행되는, 광고를 제공하는 방법.
  3. 제1항에 있어서,
    상기 스트리밍 서비스 제공을 위한 컨텐츠 재생 리스트를 사용자 단말기에 제공하는 단계 이전에,
    상기 서버는 사용자 단말기로부터 컨텐츠 요청 메시지를 수신하는 단계; 및
    상기 컨텐츠 요청 메시지가 나타내는 컨텐츠를, 상기 사용자 단말기에서 재생 가능하고 재생 시간(duration)이 동일한 복수개의 파일로 분할하고, 상기 복수개의 파일 각각의 이름 정보, 위치 정보 및 상기 재생 시간 정보를 메타데이터로 하여 상기 컨텐츠 재생 리스트를 생성하는 단계를 더 포함하되, 광고를 제공하는 방법.
  4. 제3항에 있어서,
    상기 대체 광고 시작 시점 및 대체 광고 종료 시점은 상기 컨텐츠 재생 리스트의 헤더에 삽입되는, 광고를 제공하는 방법.
  5. 제3항에 있어서,
    상기 제1 업데이트된 컨텐츠 재생 리스트를 상기 사용자 단말기로 제공받은 상기 사용자 단말기는, 상기 제1 업데이트된 컨텐츠 재생 리스트에 포함된 정보에 기초하여, 상기 제1 업데이트된 컨텐츠 재생 리스트에 포함된 상기 복수개 파일 각각의 재생 시작 시점 및 재생 종료 시점을 계산하고, 상기 대체 광고 시작 시점을 포함하는 재생 구간을 갖는 파일을 검출하고, 상기 대체 광고 시작 시점에 상기 대체 광고 시작 시점을 포함하는 재생 구간을 갖는 파일의 재생을 일시 정지하고 대체 광고를 시작하는, 광고를 제공하는 방법.
  6. 제1항에 있어서,
    상기 특정 시간대는 협정세계시(Coordinated Universal Time, UTC)인, 광고를 제공하는 방법.
  7. 제1항에 있어서,
    상기 컨텐츠 재생 리스트는 HTTP LIVE STREAMING 규격에 호환가능한 규격으로 제공되는, 광고를 제공하는 방법.
  8. 서버가 사용자 단말기에 광고를 제공하는 방법에 있어서,
    스트리밍 서비스 제공을 위한 컨텐츠 재생 리스트를 사용자 단말기에 제공하는 단계를 포함하며,
    상기 컨텐츠 재생 리스트는 상기 스트리밍 서비스 제공을 위한 복수개의 파일 각각의 이름 정보 및 위치 정보, 재생 시간(duration) 정보, 대체 광고 시작 시간 및 대체 광고 종료 시간을 포함하고,
    상기 스트리밍 서비스 제공을 위한 컨텐츠 재생 리스트를 제공 받은 상기 사용자 단말기는, 상기 복수개의 파일 각각의 재생 시작 시점 및 재생 종료 시점을 계산하고, 상기 대체 광고 시작 시점을 포함하는 재생 구간을 갖는 파일을 검출하고, 상기 대체 광고 시작 시점에 상기 대체 광고 시작 시점을 포함하는 재생 구간을 갖는 파일의 재생을 일시 정지하고 대체 광고를 시작하고, 상기 대체 광고 종료 시점에 상기 대체 광고를 종료하고 일시 정지된 파일을 재개하도록 하는, 광고를 제공하며,
    상기 대체 광고 시작 시간 및 상기 대체 광고 종료 시간은 특정시간대를 기준으로 지정되는, 광고를 제공하는 방법.
KR1020210019025A 2021-02-10 2021-02-10 광고 제공 방법 KR102526605B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210019025A KR102526605B1 (ko) 2021-02-10 2021-02-10 광고 제공 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210019025A KR102526605B1 (ko) 2021-02-10 2021-02-10 광고 제공 방법

Publications (2)

Publication Number Publication Date
KR20220115740A true KR20220115740A (ko) 2022-08-18
KR102526605B1 KR102526605B1 (ko) 2023-05-02

Family

ID=83112095

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210019025A KR102526605B1 (ko) 2021-02-10 2021-02-10 광고 제공 방법

Country Status (1)

Country Link
KR (1) KR102526605B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160138044A (ko) * 2014-03-24 2016-12-02 퀄컴 인코포레이티드 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입
KR20170097547A (ko) 2016-02-18 2017-08-28 에스케이텔레콤 주식회사 광고 제공 방법 및 이를 위한 장치
KR20170097382A (ko) * 2016-02-18 2017-08-28 주식회사 케이티 큐톤 광고 서비스를 제공하는 시스템, 방송 서버 및 미디어 재생 장치
KR20180026287A (ko) * 2016-09-02 2018-03-12 주식회사 솔박스 동영상 강제 시청을 위한 재생 목록 제공 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160138044A (ko) * 2014-03-24 2016-12-02 퀄컴 인코포레이티드 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입
KR20170097547A (ko) 2016-02-18 2017-08-28 에스케이텔레콤 주식회사 광고 제공 방법 및 이를 위한 장치
KR20170097382A (ko) * 2016-02-18 2017-08-28 주식회사 케이티 큐톤 광고 서비스를 제공하는 시스템, 방송 서버 및 미디어 재생 장치
KR20180026287A (ko) * 2016-09-02 2018-03-12 주식회사 솔박스 동영상 강제 시청을 위한 재생 목록 제공 방법 및 장치

Also Published As

Publication number Publication date
KR102526605B1 (ko) 2023-05-02

Similar Documents

Publication Publication Date Title
US20220159349A1 (en) Methods and apparatus for presenting advertisements during playback of recorded television content
US11785289B2 (en) Receiving device, transmitting device, and data processing method
US8973032B1 (en) Advertisement insertion into media content for streaming
JP5668512B2 (ja) 情報処理装置、及び、情報処理方法
US20170195744A1 (en) Live-stream video advertisement system
US9621963B2 (en) Enabling delivery and synchronization of auxiliary content associated with multimedia data using essence-and-version identifier
US9986267B2 (en) Methods and systems for dynamically editing, encoding, posting and updating live video content
US20190373296A1 (en) Content streaming system and method
KR102499231B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
CN109587514B (zh) 一种视频播放方法、介质和相关装置
US10595088B2 (en) Systems and methods for bookmarking during live media streaming
WO2018103696A1 (zh) 媒体文件的播放方法、服务端、客户端及系统
CN103491430B (zh) 流媒体数据处理方法和电子设备
WO2016181901A1 (ja) コンテンツ配信システム
JP2004140488A (ja) マルチメディアコンテンツ編集装置およびマルチメディアコンテンツ再生装置
KR102526605B1 (ko) 광고 제공 방법
KR102533674B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
KR102210509B1 (ko) 멀티미디어 시스템에서 컨텐츠를 변환하는 방법 및 장치
KR101999235B1 (ko) Mmtp기반 하이브리드 브로드캐스트 브로드밴드 서비스 제공 방법 및 시스템
KR101384740B1 (ko) 인식 기술을 이용한 영상물의 자막 처리 시스템 및 그 방법
KR20140134097A (ko) 클라우드 환경에서 녹화 서비스 제공 방법 및 장치
CN114025201A (zh) 一种视频播放方法、装置、设备及存储介质

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant