KR101783723B1 - Method and system for providing time machine function in live broadcast - Google Patents

Method and system for providing time machine function in live broadcast Download PDF

Info

Publication number
KR101783723B1
KR101783723B1 KR1020160164303A KR20160164303A KR101783723B1 KR 101783723 B1 KR101783723 B1 KR 101783723B1 KR 1020160164303 A KR1020160164303 A KR 1020160164303A KR 20160164303 A KR20160164303 A KR 20160164303A KR 101783723 B1 KR101783723 B1 KR 101783723B1
Authority
KR
South Korea
Prior art keywords
time machine
player
time
session
streaming
Prior art date
Application number
KR1020160164303A
Other languages
Korean (ko)
Other versions
KR20170067654A (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 KR1020160164303A priority Critical patent/KR101783723B1/en
Publication of KR20170067654A publication Critical patent/KR20170067654A/en
Application granted granted Critical
Publication of KR101783723B1 publication Critical patent/KR101783723B1/en

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
    • 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/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements

Abstract

생중계에서 타임머신 기능을 제공하는 방법 및 시스템이 개시된다. 전자 기기를 구현하는 컴퓨터와 결합하여 타임머신 기능 제공 방법을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램이 제공될 수 있다. 여기서, 상기 타임머신 기능 제공 방법은, 라이브 스트리밍 서비스를 제공하기 위해 상기 전자 기기에 설치된 스트리밍 클라이언트에서, 상기 전자 기기에 설치된 플레이어와의 스트리밍 세션을 설정하는 단계, 상기 스트리밍 클라이언트에서 네트워크를 통해 수신된 라이브 스트림 데이터를 상기 스트리밍 세션을 통해 순차적으로 상기 플레이어로 전송하는 단계, 상기 스트리밍 클라이언트에서 상기 플레이어와의 타임머신 제어 세션을 설정하는 단계, 상기 스트리밍 클라이언트에서 상기 타임머신 제어 세션을 통해 상기 플레이어로부터 타임머신 제어 요청을 수신하는 단계 및 상기 스트리밍 클라이언트에서 상기 타임머신 제어 요청 중 재생 위치 정보를 포함하는 타임머신 제어 요청에 대응하는 채널의 라이브 스트림 데이터를 상기 재생 위치 정보를 통해 특정되는 재생 위치부터 순차적으로 상기 스트리밍 세션을 통해 상기 플레이어로 전송하는 단계를 포함할 수 있다.A method and system for providing a time machine function in live streaming is disclosed. A computer program stored on a medium may be provided to execute a method of providing a time machine function in combination with a computer implementing the electronic device. Here, the time machine function providing method includes: setting a streaming session with a player installed in the electronic device in a streaming client installed in the electronic device to provide a live streaming service; The method comprising: transmitting stream data to the player sequentially through the streaming session; setting a time machine control session with the player in the streaming client; receiving a time machine control request from the player through the time machine control session in the streaming client; And transmitting the live stream data of the channel corresponding to the time machine control request including the playback position information during the time machine control request from the streaming client, From the playback position specified by it may comprise transmitting to the player sequentially through the streaming session.

Description

생중계에서 타임머신 기능을 제공하는 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING TIME MACHINE FUNCTION IN LIVE BROADCAST}METHOD AND SYSTEM FOR PROVIDING TIME MACHINE FUNCTION IN LIVE BROADCAST [0002]

아래의 설명은 생중계에서 타임머신 기능을 제공하는 방법 및 시스템에 관한 것이다.The following description relates to a method and system for providing a time machine function in live streaming.

라이브로 제공되는 영상 컨텐츠(일례로, 방송 프로그램)에 대한 타임머신 기능은 라이브 영상의 적어도 일부를 일정 시간이 경과한 이후에 사용자가 임의로 시청할 수 있도록 하는 기능으로서, 라이브 영상을 저장하고 저장된 라이브 영상을 다시 재생하는 방식으로 제공될 수 있다. 예를 들어, 한국등록특허 제10-1300882호는 타임머신 기능을 가지는 영상표시기기 및 그 제어 방법을 개시하고 있다.The time machine function for live video content (for example, a broadcast program) is a function that allows a user to arbitrarily watch at least a part of a live video after a predetermined time has elapsed. The live video is stored, And may be provided in a manner of replaying. For example, Korean Patent No. 10-1300882 discloses an image display device having a time machine function and a control method thereof.

종래기술에서, 스트리밍 서비스에서의 타임머신 기능은 영상 컨텐츠를 재생하는 전자 기기의 플레이어들이 OS(Operating System)나 플랫폼에 따라 서로 다른 스트리밍 규격을 사용하고 있다. 예를 들어, PC(Personal Computer)의 플래시 플레이어는 스트리밍 프로토콜로서 RTMP(Real Time Messaging Protocol)를 사용하고, iOS나 안드로이드의 플레이어에서는 스트리밍 프로토콜로서 HLS(HTTP Live Streaming) 프로토콜을 사용한다. 이때 종래기술에서는 타임머신 기능을 위한 제어 세션을 각 스트리밍 프로토콜 별로 구현해야만 한다는 문제점이 있다.In the prior art, the time machine function in the streaming service uses different streaming standards depending on the OS (Operating System) or platform of the players of the electronic device playing the video contents. For example, a flash player of a PC (personal computer) uses Real Time Messaging Protocol (RTMP) as a streaming protocol, and a player of iOS or Android uses HLS (HTTP Live Streaming) protocol as a streaming protocol. In this case, in the prior art, a control session for the time machine function must be implemented for each streaming protocol.

참고자료: <PCT/KR/2014/010167, US20140019540A1, US20130332543A1, US20130260893>References: <PCT / KR / 2014/010167, US20140019540A1, US20130332543A1, US20130260893>

타임머신 제어 프로토콜이 타임머신 기능에 대한 제어 역할만을 담당하고, 스트리밍 클라이언트와 플레이어간의 스트리밍 프로토콜은 플레이어에서 지원하는 스트리밍 규격을 그대로 이용할 수 있도록 구현할 수 있는 방법 및 시스템을 제공한다.The time machine control protocol only plays a role of controlling the time machine function and the streaming protocol between the streaming client and the player provides a method and a system that can implement the streaming standard supported by the player as it is.

또한, OS나 플레이어에 상관없이 동일한 규격을 이용하여 타임머신 기능을 제어할 수 있어 스트리밍 클라이언트의 플레이어에 대한 종속성을 제거할 수 있는 방법 및 시스템을 제공한다.In addition, the present invention provides a method and system that can control a time machine function using the same standard irrespective of an OS or a player, thereby eliminating a dependency on a player of a streaming client.

전자 기기를 구현하는 컴퓨터와 결합하여 타임머신 기능 제공 방법을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램에 있어서, 상기 타임머신 기능 제공 방법은, 라이브 스트리밍 서비스를 제공하기 위해 상기 전자 기기에 설치된 스트리밍 클라이언트에서, 상기 전자 기기에 설치된 플레이어와의 스트리밍 세션을 설정하는 단계; 상기 스트리밍 클라이언트에서 네트워크를 통해 수신된 라이브 스트림 데이터를 상기 스트리밍 세션을 통해 순차적으로 상기 플레이어로 전송하는 단계; 상기 스트리밍 클라이언트에서 상기 플레이어와의 타임머신 제어 세션을 설정하는 단계; 상기 스트리밍 클라이언트에서 상기 타임머신 제어 세션을 통해 상기 플레이어로부터 타임머신 제어 요청을 수신하는 단계; 및 상기 스트리밍 클라이언트에서 상기 타임머신 제어 요청 중 재생 위치 정보를 포함하는 타임머신 제어 요청에 대응하는 채널의 라이브 스트림 데이터를 상기 재생 위치 정보를 통해 특정되는 재생 위치부터 순차적으로 상기 스트리밍 세션을 통해 상기 플레이어로 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 프로그램을 제공한다.A computer program stored in a medium for executing a method for providing a time machine function in combination with a computer for implementing an electronic device, the method comprising: in a streaming client installed in the electronic device for providing a live streaming service, Establishing a streaming session with a player installed in the device; Transmitting live stream data received through the network from the streaming client to the player sequentially through the streaming session; Establishing a time machine control session with the player in the streaming client; Receiving a time machine control request from the player through the time machine control session in the streaming client; And transmitting the live stream data of the channel corresponding to the time machine control request including the playback position information during the time machine control request from the streaming client to the player through the streaming session sequentially from the playback position specified through the playback position information The computer program comprising the steps of:

컴퓨터로 구현된 전자 기기의 타임머신 기능 제공 방법에 있어서, 라이브 스트리밍 서비스를 제공하기 위해 상기 전자 기기에 설치된 스트리밍 클라이언트에서, 상기 전자 기기에 설치된 플레이어와의 스트리밍 세션을 설정하는 단계; 상기 스트리밍 클라이언트에서 네트워크를 통해 수신된 라이브 스트림 데이터를 상기 스트리밍 세션을 통해 순차적으로 상기 플레이어로 전송하는 단계; 상기 스트리밍 클라이언트에서 상기 플레이어와의 타임머신 제어 세션을 설정하는 단계; 상기 스트리밍 클라이언트에서 상기 타임머신 제어 세션을 통해 상기 플레이어로부터 타임머신 제어 요청을 수신하는 단계; 및 상기 스트리밍 클라이언트에서 상기 타임머신 제어 요청 중 재생 위치 정보를 포함하는 타임머신 제어 요청에 대응하는 채널의 라이브 스트림 데이터를 상기 재생 위치 정보를 통해 특정되는 재생 위치부터 순차적으로 상기 스트리밍 세션을 통해 상기 플레이어로 전송하는 단계를 포함하는 것을 특징으로 하는 타임머신 기능 제공 방법을 제공한다.A method for providing a time machine function of a computer-implemented electronic device, the method comprising: setting a streaming session with a player installed in the electronic device in a streaming client installed in the electronic device to provide a live streaming service; Transmitting live stream data received through the network from the streaming client to the player sequentially through the streaming session; Establishing a time machine control session with the player in the streaming client; Receiving a time machine control request from the player through the time machine control session in the streaming client; And transmitting the live stream data of the channel corresponding to the time machine control request including the playback position information during the time machine control request from the streaming client to the player through the streaming session sequentially from the playback position specified through the playback position information The method comprising the steps of:

타임머신 제어 프로토콜이 타임머신 기능에 대한 제어 역할만을 담당하고, 스트리밍 클라이언트와 플레이어간의 스트리밍 프로토콜은 플레이어에서 지원하는 스트리밍 규격을 그대로 이용할 수 있도록 구현할 수 있다.The time machine control protocol only plays a role of controlling the time machine function and the streaming protocol between the streaming client and the player can be implemented so that the streaming standard supported by the player can be used as it is.

또한, OS나 플레이어에 상관없이 동일한 규격을 이용하여 타임머신 기능을 제어할 수 있어 스트리밍 클라이언트의 플레이어에 대한 종속성을 제거할 수 있다.In addition, the time machine function can be controlled using the same standard regardless of the OS or the player, thereby eliminating the dependency on the player of the streaming client.

도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 라이브 스트리밍 서비스를 위한 전체 시스템 환경의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 제어 세션의 인증 과정의 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 시프트 값들을 설명하기 위한 예를 도시한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 최초 재생 요청 및 재생 완료 요청을 처리하는 과정의 예를 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 있어서, 재생 중에 탐색 요청을 처리하는 과정의 예를 도시한 흐름도이다.
도 8은 본 발명의 일실시예에 있어서, 일시 중지 요청 및 재개 요청을 처리하는 과정의 예를 도시한 흐름도이다.
도 9는 본 발명의 일실시예에 있어서, 딜리버리 서버의 내부 구성을 설명하기 위한 도면이다.
도 10은 본 발명의 일실시예에 있어서, 타임머신 버퍼의 활용 예를 도시한 도면이다.
도 11은 본 발명의 일실시예에 있어서, 타임머신 기능을 이용하여 탐색을 진행하는 경우 미리보기 기능을 제공하는 화면의 예를 도시한 도면이다.
도 12는 본 발명의 일실시예에 따른 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 도면이다.
도 13은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 타임머신 기능 제공 방법의 예를 도시한 흐름도이다.
1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention.
3 is a diagram illustrating an example of an overall system environment for a live streaming service in an embodiment of the present invention.
4 is a diagram showing an example of a process of authentication of a control session in an embodiment of the present invention.
5 is a diagram illustrating an example for explaining shift values in an embodiment of the present invention.
6 is a flowchart illustrating an example of a process of processing an initial reproduction request and a reproduction completion request according to an embodiment of the present invention.
7 is a flowchart illustrating an example of a process of processing a search request during playback in an embodiment of the present invention.
8 is a flowchart illustrating an example of a process of processing a suspend request and a resume request according to an exemplary embodiment of the present invention.
9 is a diagram for explaining an internal configuration of a delivery server according to an embodiment of the present invention.
10 is a diagram illustrating an example of utilization of a time machine buffer in an embodiment of the present invention.
11 is a view illustrating an example of a screen providing a preview function when a search is performed using a time machine function in an embodiment of the present invention.
12 is a diagram showing an example of a component that a processor of an electronic device according to an embodiment of the present invention can include.
13 is a flowchart illustrating an example of a method of providing a time machine function that can be performed by an electronic device according to an embodiment of the present invention.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention. 1 shows an example in which a plurality of electronic devices 110, 120, 130, 140, a plurality of servers 150, 160, and a network 170 are included. 1, the number of electronic devices and the number of servers are not limited to those shown in FIG.

복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 전자 기기 1(110)은 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있다.The plurality of electronic devices 110, 120, 130, 140 may be a fixed terminal implemented as a computer device or a mobile terminal. Examples of the plurality of electronic devices 110, 120, 130 and 140 include a smart phone, a mobile phone, a navigation device, a computer, a notebook, a digital broadcast terminal, a PDA (Personal Digital Assistants) ), And tablet PCs. For example, the electronic device 1 110 may communicate with other electronic devices 120, 130, 140 and / or the servers 150, 160 via the network 170 using a wireless or wired communication scheme.

통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and may include a communication method using a communication network (for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network 170 may include, as well as a short-range wireless communication between the devices. For example, the network 170 may be a personal area network (LAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN) , A network such as the Internet, and the like. The network 170 may also include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, It is not limited.

서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.Each of the servers 150 and 160 is a computer device or a plurality of computers that communicate with a plurality of electronic devices 110, 120, 130 and 140 through a network 170 to provide commands, codes, files, Lt; / RTI &gt; devices.

일례로, 서버(160)는 네트워크(170)를 통해 접속한 전자 기기 1(110)로 어플리케이션의 설치를 위한 파일을 제공할 수 있다. 이 경우 전자 기기 1(110)은 서버(160)로부터 제공된 파일을 이용하여 어플리케이션을 설치할 수 있다. 또한 전자 기기 1(110)이 포함하는 운영체제(Operating System, OS) 및 적어도 하나의 프로그램(일례로 브라우저나 상기 설치된 어플리케이션)의 제어에 따라 서버(150)에 접속하여 서버(150)가 제공하는 서비스나 컨텐츠를 제공받을 수 있다. 예를 들어, 전자 기기 1(110)이 어플리케이션의 제어에 따라 네트워크(170)를 통해 서비스 요청 메시지를 서버(150)로 전송하면, 서버(150)는 서비스 요청 메시지에 대응하는 코드를 전자 기기 1(110)로 전송할 수 있고, 전자 기기 1(110)은 어플리케이션의 제어에 따라 코드에 따른 화면을 구성하여 표시함으로써 사용자에게 컨텐츠를 제공할 수 있다. 다른 예로, 서버(150)는 메시징 서비스를 위한 통신 세션을 설정하고, 설정된 통신 세션을 통해 복수의 전자 기기들(110, 120, 130, 140)간의 메시지 송수신을 라우팅할 수도 있다. 또 다른 예로, 서버(150)는 전자 기기들(110, 120, 130, 140)로 소셜 네트워크 서비스를 제공할 수 있다. 또 다른 예로, 서버들(150, 160)은 복수의 전자 기기들(110, 120, 130, 140)로 라이브 스트리밍 서비스를 제공할 수 있다.In one example, the server 160 may provide a file for installation of the application to the electronic device 1 (110) connected via the network 170. [ In this case, the electronic device 1 (110) can install an application using a file provided from the server (160). The server 150 is connected to the server 150 according to the control of the operating system (OS) and at least one program (for example, the browser or the installed application) I can receive contents. For example, when the electronic device 1 (110) transmits a service request message to the server 150 via the network 170 under the control of the application, the server 150 transmits a code corresponding to the service request message to the electronic device 1 The first electronic device 110 can provide contents to the user by displaying and displaying a screen according to the code according to the control of the application. As another example, the server 150 may establish a communication session for the messaging service and route the message transmission / reception between the plurality of electronic devices 110, 120, 130, 140 through the established communication session. As another example, the server 150 may provide social network services to the electronic devices 110, 120, 130, 140. In another example, the servers 150 and 160 may provide live streaming services to a plurality of electronic devices 110, 120, 130, and 140.

도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 하나의 전자 기기에 대한 예로서 전자 기기 1(110), 그리고 하나의 서버에 대한 예로서 서버(150)의 내부 구성을 설명한다. 다른 전자 기기들(120, 130, 140)이나 서버(160)뿐만 아니라 도 1을 통해 설명한 네트워크 환경에 포함될 수 있는 또 다른 전자 기기들이나 또 다른 서버들에도 동일한 또는 유사한 내부 구성요소들이 적용될 수 있다.2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention. In FIG. 2, an internal configuration of the electronic device 1 (110) as an example of one electronic device and the server 150 as an example of one server will be described. The same or similar internal components may be applied to other electronic devices 120, 130, 140 or server 160 as well as other electronic devices or other servers that may be included in the network environment described with reference to FIG.

전자 기기 1(110)과 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기 1(110)에 설치되어 구동되는 브라우저나 상술한 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 드라이브 메커니즘(drive mechanism)을 이용하여 메모리(211, 221)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로 상술한 서버(160))이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221)에 로딩될 수 있다.The electronic device 1 110 and the server 150 may include memories 211 and 221, processors 212 and 222, communication modules 213 and 223 and input / output interfaces 214 and 224. The memories 211 and 221 may be a computer-readable recording medium and may include a permanent mass storage device such as a random access memory (RAM), a read only memory (ROM), and a disk drive. The memory 211 and 221 may store an operating system and at least one program code (for example, a code for a browser installed in the electronic device 1 (110) or the above-described application). These software components may be loaded from a computer readable recording medium separate from the memories 211 and 221 using a drive mechanism. Such a computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD / CD-ROM drive, and a memory card. In other embodiments, the software components may be loaded into memory 211, 221 via communication modules 213, 223 rather than a computer readable recording medium. For example, at least one program may be a program installed by a file distribution system (for example, the server 160 described above) that distributes installation files of developers or applications, May be loaded into the memory 211, 221 based on the application described above.

프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다. 예를 들어 프로세서(212, 222)는 메모리(211, 221)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.Processors 212 and 222 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input / output operations. The instructions may be provided to the processors 212 and 222 by the memories 211 and 221 or the communication modules 213 and 223. For example, the processor 212, 222 may be configured to execute a command received in accordance with a program code stored in a recording device, such as the memory 211, 221.

통신 모듈(213, 223)은 네트워크(170)를 통해 전자 기기 1(110)과 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 전자 기기(일례로 전자 기기 2(120)) 또는 다른 서버(일례로 서버(160))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청(일례로 컨텐츠에 대한 스트리밍 서비스 요청)이 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(170)를 거쳐 전자 기기 1(110)의 통신 모듈(213)을 통해 전자 기기 1(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기 1(110)가 더 포함할 수 있는 저장 매체로 저장될 수 있다.The communication modules 213 and 223 may provide functions for the electronic device 1 110 and the server 150 to communicate with each other through the network 170 and may provide functions for communicating with other electronic devices (for example, the electronic device 2 120) Or to communicate with another server (e.g., server 160). For example, when the processor 212 of the electronic device 1 110 receives a request (e.g., a streaming service request for the content) generated in accordance with a program code stored in a recording device such as the memory 211, To the server 150 via the network 170 in accordance with the &lt; / RTI &gt; Conversely, control signals, commands, contents, files, and the like provided under the control of the processor 222 of the server 150 are transmitted to the communication module 223 of the electronic device 110 via the communication module 223 and the network 170 213 to the electronic device 1 (110). For example, control signals and commands of the server 150 received through the communication module 213 may be transmitted to the processor 212 or the memory 211, May be stored as a storage medium that may further include a &lt; RTI ID = 0.0 &gt;

입출력 인터페이스(214, 224)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 어플리케이션의 통신 세션을 표시하기 위한 디스플레이와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)의 프로세서(212)는 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 전자 기기 2(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.The input / output interfaces 214 and 224 may be means for interfacing with the input / output device 215. For example, the input device may include a device such as a keyboard or a mouse, and the output device may include a device such as a display for displaying a communication session of the application. As another example, the input / output interface 214 may be a means for interfacing with a device having integrated functions for input and output, such as a touch screen. More specifically, the processor 212 of the electronic device 1 (110) uses the data provided by the server 150 or the electronic device 2 (120) in processing commands of the computer program loaded in the memory 211 A service screen or contents can be displayed on the display through the input / output interface 214. [

또한, 다른 실시예들에서 전자 기기 1(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Also, in other embodiments, electronic device 1 110 and server 150 may include more components than the components of FIG. However, there is no need to clearly illustrate most prior art components. For example, electronic device 1 110 may be implemented to include at least a portion of input / output devices 215 described above, or may be implemented with other components such as a transceiver, Global Positioning System (GPS) module, camera, Elements.

도 3은 본 발명의 일실시예에 있어서, 라이브 스트리밍 서비스를 위한 전체 시스템 환경의 예를 도시한 도면이다. 도 3은 미디어 스트리밍 서버(310), 패킷타이징 서버(320), 딜리버리 서버(330), 인덱스 서버(340), 전자 기기(350) 및 복수의 피어들(360)을 도시하고 있다. 3 is a diagram illustrating an example of an overall system environment for a live streaming service in an embodiment of the present invention. 3 illustrates a media streaming server 310, a packetizing server 320, a delivery server 330, an index server 340, an electronic device 350, and a plurality of peers 360.

미디어 스트리밍 서버(310), 패킷타이징 서버(320), 딜리버리 서버(330) 및 인덱스 서버(340) 각각은 도 1 및 도 2를 통해 설명한 서버(150)와 동일한 또는 유사한 내부 구성요소들을 갖는 장치일 수 있다. 또한, 복수의 피어들(360) 각각과 전자 기기(350)는 도 1 및 도 2를 통해 설명한 전자 기기 1(110)과 동일한 또는 유사한 내부 구성요소들을 갖는 장치일 수 있다. 도 3에서는 미디어 스트리밍 서버(310), 패킷타이징 서버(320), 딜리버리 서버(330) 및 인덱스 서버(340)를 각각 하나씩 도시하고 있으나, 각각 복수의 서버 그룹의 형태로 구현될 수도 있다. 예를 들어, 프로야구 경기를 생중계함에 있어서, 4개의 경기가 진행되는 경우, 4개의 경기에 대해 4개의 미디어 소스를 위한 4 개의 미디어 스트리밍 서버들의 그룹이 존재할 수 있고, 각각의 미디어 소스를 위해 4 개의 패킷타이징 서버들의 그룹이 존재할 수 있다. 이와 유사하게 딜리버리 서버(330) 및 인덱스 서버(340)도 필요에 따라 복수의 서버 그룹으로 구현될 수 있다. 예를 들어, 딜리버리 서버(330) 및 인덱스 서버(340)는 동시 접속자수와 같은 성능 이슈에 따라 요구되는 서버의 수가 결정될 수 있다.Each of the media streaming server 310, the packetizing server 320, the delivery server 330 and the index server 340 is a device having the same or similar internal components as the server 150 described with reference to FIGS. Lt; / RTI &gt; In addition, each of the plurality of peers 360 and the electronic device 350 may be devices having the same or similar internal components as those of the electronic device 110 described with reference to Figs. 1 and 2. In FIG. 3, the media streaming server 310, the packetizing server 320, the delivery server 330, and the index server 340 are shown as one, respectively, but they may be implemented in a plurality of server groups. For example, in a live broadcast of a professional baseball game, there may be four groups of four media streaming servers for four media sources, four for each of four matches, and four There may be a group of packetizing servers. Similarly, the delivery server 330 and the index server 340 may be implemented as a plurality of server groups as needed. For example, the delivery server 330 and the index server 340 can determine the number of servers required according to performance issues such as the number of concurrent users.

미디어 스트리밍 서버(310)는 라이브 스트림 데이터를 제공하는 인코더(미도시)를 포함하는 미디어 소스 장치일 수 있다. 패킷타이징 서버(120)는 이러한 미디어 스트리밍 서버(310)로부터 라이브 스트림 데이터를 수신할 수 있으며 수신된 라이브 스트림 데이터를 P2P 서비스를 통해 제공하기 위해 수신된 라이브 스트림 데이터를 피스(piece)로 패킷타이징(또는 인덱싱)할 수 있다. 스트림 데이터를 피스로 패킷타이징(또는 인덱싱)하는 방법은 이미 알려진 다양한 방법들 중 하나를 이용할 수 있다.The media streaming server 310 may be a media source device that includes an encoder (not shown) that provides live stream data. The packetizing server 120 can receive live stream data from the media streaming server 310 and transmits the received live stream data as a piece of packet tie to provide the received live stream data through the P2P service. (Or indexed). The method of packetizing (or indexing) stream data to pieces may use one of various methods already known.

딜리버리 서버(330)는 패킷타이징 서버(320)로부터 패킷타이징된(또는 인덱싱된) 피스를 수신하고, 이를 버퍼링할 수 있으며, P2P 서비스의 피어(peer)로부터의 요청에 따라 요청된 라이브 스트림 데이터에 대한 피스를 해당 피어로 전송할 수 있다. 여기서 피어는 P2P 서비스를 이용한 라이브 스트리밍 서비스에서의 클라이언트를 의미할 수 있으며, 각각 하나의 전자 기기로 구현될 수 있다. 피어를 구현하는 전자 기기는 도 3에 도시된 전자 기기(350)를 포함하며, 앞서 설명한 바와 같이 도 1 및 도 2를 통해 설명한 전자 기기 1(110)과 동일한 또는 유사한 내부 구성요소들을 갖는 장치일 수 있다.The delivery server 330 may receive the packet-tied (or indexed) pieces from the packet-tensing server 320 and may buffer the packets, and in response to a request from a peer of the P2P service, You can send a piece of data to that peer. Here, the peer may refer to a client in a live streaming service using a P2P service, and each of the peers may be implemented as one electronic device. The electronic device implementing the peer includes the electronic device 350 shown in FIG. 3 and is a device having the same or similar internal components as the electronic device 110 described with reference to FIGS. 1 and 2 .

인덱스 서버(340)는 피어의 목록을 유지하고 피어의 요청에 따른 검색 결과를 제공할 수 있다.Index server 340 may maintain a list of peers and may provide search results in response to a request from the peer.

피어를 구현하는 전자 기기(350)에는 스트리밍 클라이언트(351)와 같은 어플리케이션이 설치 및 구동될 수 있다. 이때, 전자 기기(350)는 구동된 스트리밍 클라이언트(351)의 제어에 따라, 딜리버리 서버(330)로부터 피스를 수신하거나 또는 다른 피어들(도 3의 복수의 피어들(360))을 구현하는 다른 전자 기기들로부터 피스를 수신할 수 있다.An application such as the streaming client 351 may be installed and driven in the electronic device 350 implementing the peer. At this time, the electronic device 350 receives a piece from the delivery server 330 or receives another piece of peer (the plurality of peers 360 in FIG. 3), under the control of the driven streaming client 351 And receive the piece from the electronic devices.

또한, 전자 기기(350)에서 구동된 스트리밍 클라이언트(351)는 전자 기기(350)에 설치 및 구동된 다른 어플리케이션인 플레이어(352)와 전자 기기(350)에서 내부적으로 통신하여 플레이어(352)로 라이브 스트림 데이터를 전송할 수 있다. 이때, 스트리밍 클라이언트(351)가 플레이어(352)로 제공하는 라이브 스트림 데이터는 딜리버리 서버(330) 또는 복수의 피어들(360) 중 적어도 일부로부터 수신한 피스에 기반하여 조합된 데이터일 수 있다.The streaming client 351 driven by the electronic device 350 internally communicates with the player 352 and other applications installed and driven in the electronic device 350 by the electronic device 350, Stream data can be transmitted. The live stream data provided by the streaming client 351 to the player 352 may be data based on pieces received from at least a part of the delivery server 330 or the plurality of peers 360. [

이 경우, 플레이어(352)는 스트리밍 클라이언트(351)가 제공하는 라이브 스트림 데이터를 재생할 수 있고, 이에 따라, 미디어 스트리밍 서버(310)가 제공하는 라이브 스트림 데이터가 전자 기기(350)에서 재생되어 전자 기기(350)의 사용자에게 제공될 수 있다.In this case, the player 352 can reproduce the live stream data provided by the streaming client 351, whereby the live stream data provided by the media streaming server 310 is reproduced in the electronic device 350, (350). &Lt; / RTI &gt;

1. 타임머신 기능의 개요1. Overview of Time Machine Function

피어를 구현하는 전자 기기(일례로, 도 3의 전자 기기(350))에 설치 및 구동되는 스트리밍 클라이언트(일례로, 도 3의 스트리밍 클라이언트(351))는 전자 기기의 사용자에게 라이브 스트림 데이터에 대한 타임머신 기능을 제공할 수 있다. 앞서 설명한 바와 같이 종래기술에서는 각 스트리밍 프로토콜 별로 타임머신 기능을 위한 제어 세션을 구현해야 했던 반면, 본 발명의 실시예들에서는 타임머신 제어 프로토콜이 타임머신 기능에 대한 제어 역할만을 담당하고, 스트리밍 클라이언트와 플레이어간의 스트리밍 프로토콜은 플레이어에서 지원하는 스트리밍 규격을 그대로 이용할 수 있도록 구현할 수 있다. 이러한 실시예들을 통해 OS나 플레이어에 상관없이 동일한 규격을 이용하여 타임머신 기능을 제어할 수 있어 스트리밍 클라이언트의 플레이어에 대한 종속성을 제거할 수 있다. 만약, 플레이어에서 타임머신 제어 프로토콜이 지원되지 않는다면, 사용자는 플레이어를 통해 기존 플레이어에서 사용하고 있는 스트리밍 프로토콜을 이용하여 라이브 영상만을 시청할 수 있다.A streaming client (for example, streaming client 351 in FIG. 3) installed and driven in an electronic device (e. G., Electronic device 350 in FIG. 3) that implements the peer provides the user of the electronic device with Time machine function can be provided. As described above, in the prior art, a control session for the time machine function has to be implemented for each streaming protocol. However, in the embodiments of the present invention, the time machine control protocol only plays the role of controlling the time machine function, The protocol can be implemented so that the streaming standard supported by the player can be used as it is. Through these embodiments, it is possible to control the time machine function using the same standard regardless of the OS or the player, thereby eliminating the dependency on the player of the streaming client. If the time machine control protocol is not supported by the player, the user can view only the live video using the streaming protocol used in the existing player through the player.

2. 용어 정리2. Terminology summary

스트리밍 클라이언트는 라이브 스트리밍 서비스에서 이용되는 어플리케이션으로서 도 3에서는 전자 기기(350)에 포함된 스트리밍 클라이언트(351)를 예로서 도시하고 있으나, 이미 설명한 바와 같이 실질적으로는 본 발명의 실시예들에 따른 라이브 스트리밍 서비스를 제공받고자 하는 피어들 각각에 설치 및 구동될 수 있다.Although the streaming client is an application used in the live streaming service as an example, the streaming client 351 included in the electronic device 350 is shown in FIG. 3 as an example. However, the live client according to embodiments of the present invention And can be installed and operated in each of the peers to receive the streaming service.

타임머신 기능을 위한 제어 세션은 라이브 스트림 데이터를 제공하기 위한 스트리밍 세션과는 별도로 플레이어(352)와 스트리밍 클라이언트(351)간에 맺어지는 논리적인 연결을 의미할 수 있다. 플레이어(352)와 스트리밍 클라이언트(351)간의 TCP(Transmission Control Protocol) 연결과는 관계가 없으며, TCP 연결이 끊어지더라도 제어 세션 연결은 끊어지지 않으며, 역으로 TCP 연결이 계속 유지되더라도 이후 자세히 설명될 채널에 대한 요청이 없는 경우에는 제어 세션 연결이 끊어지도록 구현될 수 있다.The control session for the time machine function may refer to a logical connection between the player 352 and the streaming client 351 separately from the streaming session for providing live stream data. (Transmission Control Protocol) connection between the player 352 and the streaming client 351, and even if the TCP connection is broken, the control session connection is not disconnected. On the contrary, even if the TCP connection is maintained, In the absence of a request for a channel, the control session connection may be broken.

시프트(이하 'shift')는 타임머신 기능을 이용함에 있어서, 얼마나 과거의 데이터를 재생하는가에 대한 상대적인 지표로서 사용될 수 있다. shift의 값은 최신 라이브 영상을 0으로 하고, 0보다 크면 과거로 이동한 것을 나타낼 수 있어, shift의 값이 클수록 상대적으로 더 과거의 영상을 재생하고 있음을 의미할 수 있다. shift의 값의 단위는 일례로, 밀리초(millisecond, msec)를 이용할 수 있다.The shift (hereinafter, "shift") can be used as a relative indicator of how much data is reproduced in the past by using the time machine function. If the value of shift is 0, the latest live image is set to 0. If the value is larger than 0, it means that it has moved to the past. If the value of shift is larger, it means that the previous image is being reproduced relatively. The unit of the shift value is, for example, millisecond (msec).

최대 시프트 가능 시간(max shift, 이하 'mshift')는 방송에 대해 설정된 타임머신 가능한 최대 시간을 나타내는 지표로서 사용될 수 있다. 최대 시프트 가능 시간인 mshift의 값이 큰 방송일수록 상대적으로 더 긴 타임머신 영상 데이터를 제공할 수 있음을 의미할 수 있다.The maximum shift time (mshift) may be used as an index indicating the maximum time available for the broadcast. It can be said that a broadcast having a value of mshift which is the maximum shiftable time can provide a relatively long time-machine video data.

현재 시프트 가능 시간(available shift, 이하, 'ashift')는 사용자가 과거의 영상을 돌려서 볼 수 있는 최대 시간을 의미하는 지표일 수 있다. The current available shift ('ashift') may be an indicator that indicates the maximum time the user can view the past image.

현재 시프트 시간(current shift, 이하, 'cshift')는 사용자가 현재 어느 정도 과거의 영상을 재생하고 있는가를 나타내는 지표일 수 있다.The present shift time (hereinafter referred to as 'cshift') may be an index indicating how much the user is currently reproducing the past image.

이러한 shift, mshift, ashift 및 cshift에 대해서는 이후 더욱 자세히 설명한다.These shifts, mshift, ashift, and cshift are discussed in more detail below.

3. 타임머신 세션 기본 정보3. Time Machine Session Basic Information

3.1. 메시지 인증3.1. Message authentication

메시지를 교환하기 위한 제어 세션을 사용하기 위해서는 인증이 요구된다. 플레이어는 제어 세션의 시작을 위해 인증 요청("/auth")을 스트리밍 클라이언트로 전송하고, 스트리밍 클라이언트에서 인증이 성공하면 스트리밍 클라이언트는 인증 요청에 대한 응답에 해당 플레이어에서 사용할 키(key) 정보를 전송한다. 이때, 키 정보는 "/auth" 요청의 응답에만 포함될 수 있다. 이 키는 플레이어가 스트리밍 클라이언트로 전송하는 다음 타임머신 제어 요청에 파라미터의 형태로 포함될 수 있다. 예를 들어, 키는 "k=" query와 같은 문자열의 형태로 포함되어 스트리밍 될 수 있다. 이때, "k=" query 문자열이 잘못되었거나 이 query 문자열이 없을 경우 스트리밍 클라이언트는 인증되지 않았음을 알리기 위한 응답(일례로, HTTP 에서의 401 응답코드)을 플레이어로 전송한다. 이 키는 해당 플레이어에서 영상이 계속 재생되는 동안 유효하며, 다른 플레이어에서 동일한 채널에 대해 연결 요청이 발생하면 무효가 될 수 있다. 이때, 무효가 된 세션에서 들어오는 요청에 대해서 스트리밍 클라이언트는 인증되지 않았음을 알리기 위한 응답(일례로, HTTP 에서의 401 응답코드)을 전송할 수 있다. 이 조건은 서로 다른 브라우저에서 동일한 채널에 접속하든, 같은 브라우저 내의 다른 창에서 동일한 채널에 접속하든 같은 채널에 대한 요청에 대해서 동일하게 적용될 수 있다. 이때 각 플레이어가 다른 채널에 접속하는 경우에는 적용되지 않을 수 있다. query 문자열의 순서는 바뀌어도 무관하다.Authentication is required to use a control session to exchange messages. The player sends an authentication request ("/ auth") to the streaming client for the start of the control session, and when the authentication is successful in the streaming client, the streaming client transmits the key information to be used in the player in response to the authentication request do. At this time, the key information may be included only in the response of the "/ auth" request. This key may be included in the form of parameters in the next time machine control request that the player sends to the streaming client. For example, the key may be streamed as a string such as "k =" query. At this time, when the "k =" query string is invalid or there is no query string, the streaming client transmits a response (for example, 401 response code in HTTP) to the player to inform that it is not authenticated. This key is valid while the video continues to play in that player, and may be invalid if a connection request is made to the same channel in another player. At this time, the streaming client can transmit a response (e.g., a 401 response code in HTTP) to inform that it is not authenticated for a request coming in from an invalid session. This condition can be applied equally to requests for the same channel, whether connecting to the same channel in different browsers, or accessing the same channel in different windows in the same browser. At this time, it may not be applied when each player accesses another channel. The order of query strings may be changed.

도 4는 본 발명의 일실시예에 있어서, 제어 세션의 인증 과정의 예를 도시한 도면이다. 도 4는 스트리밍 클라이언트(410), 플레이어 1(420) 및 플레이어 2(430)를 도시하고 있다. 일례로, 스트리밍 클라이언트(410), 플레이어 1(420) 및 플레이어 2(430)는 하나의 전자 기기에 설치 및 구동되는 각각의 어플리케이션들일 수 있다.4 is a diagram showing an example of a process of authentication of a control session in an embodiment of the present invention. 4 shows a streaming client 410, a player 1 420 and a player 2 430. FIG. For example, the streaming client 410, player 1 420 and player 2 430 may be respective applications installed and driven in one electronic device.

제1 점선박스(441)은 플레이어 1(420)이 스트리밍 클라이언트(410)로 인증 요청(/auth)을 하고, 스트리밍 클라이언트(410)가 플레이어 1(420)을 인증함에 따라 응답(HTTP 에서의 200 OK 응답코드)과 함께 키 <key1>를 플레이어 1(420)로 전송하는 과정을 나타내고 있다. 인증 요청(/auth)에 대해서는 이후 더욱 자세히 설명한다. 키 정보로서 표시된 {"key": <key1>}는 키로서 <key1>가 제공됨을 의미할 수 있다.The first dashed box 441 indicates that the player 1 420 requests authentication (/ auth) to the streaming client 410 and the response (200 in HTTP) as the streaming client 410 authenticates the player 1 420 OK response code) to the player 1 (420) together with the key < key 1 >. Authentication requests (/ auth) are described in more detail below. {"Key": <key1>} displayed as key information may mean that <key1> is provided as a key.

제2 점선박스(442)는 플레이어 1(420)이 획득한 키(<key1>)를 이용하여 스트리밍 클라이언트(410)로 재생 요청(/play)을 하고, 스트리밍 클라이언트(410)로가 플레이어 1(420)로 응답(HTTP 에서의 200 OK 응답코드)을 전송하는 과정을 나타내고 있다. 이처럼 플레이어 1(420)은 인증 요청(/auth)을 통해 획득한 키(<key1>)를 이용하여 타임머신 기능을 위한 제어 요청들을 스트리밍 클라이언트(410)로 전송할 수 있고, 스트리밍 클라이언트(410)는 스트리밍 클라이언트(410)가 발급한 키(<key1>)를 통해 플레이어 1(420)의 제어 요청들을 인증할 수 있다.The second dotted line box 442 requests the streaming client 410 to reproduce the content using the key <key1> acquired by the player 1 420 and transmits the request to the streaming client 410 via the player 1 420) and transmits a response (a 200 OK response code in HTTP). As described above, the first player 420 may transmit control requests for the time machine function to the streaming client 410 using the key <key1> obtained through the authentication request (/ auth), and the streaming client 410 may transmit streaming And can authenticate the control requests of the player 1 420 through the key <key 1> issued by the client 410.

제3 점선박스(443)는 플레이어 2(430)가 스트리밍 클라이언트(410)로 인증 요청(/auth)을 하고, 스트리밍 클라이언트(410)가 플레이어 2(430)를 인증함에 따라 응답(HTTP 에서의 200 OK 응답코드)과 함께 키 <key2>를 플레이어 2(430)로 전송하는 과정을 나타내고 있다. 앞서 설명한 바와 같이, 다른 플레이어에서 동일한 채널에 대해 연결 요청이 발생하였기 때문에 먼저 발급된 키 <key1>은 무효화될 수 있다.A third dashed box 443 indicates that the second player 430 requests authentication (/ auth) to the streaming client 410 and the response (200 in HTTP) as the streaming client 410 authenticates the second player 430 OK response code) to the player 2 (430) together with the key < key 2 >. As described above, since the connection request has occurred for the same channel in another player, the key <key1> issued first can be invalidated.

제4 점선박스(444)는 플레이어 1(420)이 키 <key1>을 이용하여 탐색 요청(/seek)을 스트리밍 클라이언트(410)로 전송하는 예를 나타내고 있다. 이때, 키 <key1>는 플레이어 2(430)의 키 <key2>의 발급에 따라 무효화되었기 때문에 스트리밍 클라이언트(410)는 탐색 요청(/seek)에 대해 인증되지 않았음을 나타내는 응답(HTTP 에서의 401 응답코드)을 플레이어 1(420)로 전송할 수 있다. 탐색 요청(/seek)에 대해서는 이후 더욱 자세히 설명한다.The fourth dotted line box 444 shows an example in which Player 1 420 transmits a search request (/ seek) to the streaming client 410 using the key <key 1>. At this time, since the key <key 1> has been invalidated according to the issuance of the key <key 2> of the player 2 430, the streaming client 410 transmits a response indicating the authentication Response code) to the player 1 420. [ The seek request (/ seek) will be described in more detail later.

제5 점선박스(445)는 플레이어 2(430)가 키 <key2>를 이용하여 탐색 요청(/seek)을 스트리밍 클라이언트(410)로 전송하는 예를 나타내고 있다. 키 <key2>는 아직 유효하기 때문에 스트리밍 클라이언트(410)는 플레이어 2(430)의 탐색 요청(/seek)을 처리함에 따른 응답(HTTP에서의 200 OK 응답코드)을 플레이어 2(430)로 전송할 수 있다.The fifth dotted line box 445 shows an example in which the player 2 430 transmits a seek request / seek to the streaming client 410 using the key <key 2>. Since the key <key2> is still valid, the streaming client 410 can send a response (200 OK response code in HTTP) to player 2 430 as it processes the seek request (/ seek) have.

제6 점선박스(446)는 플레이어 1(420)이 다시 키 <key1>을 이용하여 정보 획득 및 세션 유지 요청(/maxshift)을 스트리밍 클라이언트(410)로 전송하는 예를 나타내고 있다. 키 <key1>는 플레이어 2(430)의 키 <key2>의 발급에 따라 무효화되었기 때문에 스트리밍 클라이언트(410)는 정보 획득 및 세션 유지 요청(/maxshift)에 대해 인증되지 않았음을 나타내는 응답(HTTP 에서의 401 응답코드)을 플레이어 1(420)로 전송할 수 있다. 정보 획득 및 세션 유지 요청(/maxshift)에 대해서는 이후 더욱 자세히 설명한다.The sixth dotted line box 446 shows an example in which Player 1 420 transmits information acquisition and session maintenance request (/ maxshift) to the streaming client 410 again using the key <key 1>. Since the key <key 1> has been invalidated upon issuance of the key <key 2> of the player 2 430, the streaming client 410 receives a response indicating that the streaming client 410 has not been authenticated for information acquisition and / (E.g., a 401 response code of &quot; 401 &quot; Information acquisition and session maintenance requests (/ maxshift) are discussed in more detail below.

3.2. 세션 유지3.2. Session maintenance

브라우저(또는 플레이어)와 스트리밍 클라이언트간의 TCP 연결은 언제든지 종료될 수 있다(예를 들어, HTTP 1.0). 다시 말해, TCP 연결을 계속 유지하는 것이 아니기 때문에, 사용자가 해당 채널을 계속 사용하고 있는지 여부를 스트리밍 클라이언트가 파악할 수 있도록, 플레이어는 일정 시간 내에 사용자가 보고 있는 채널에 대한 타임머신 제어 요청을 스트리밍 클라이언트로 전송해야 한다. 이러한 세션 유지(및 타임머신 세션의 정보 획득)를 위해 정보 획득 및 세션 유지 요청(/maxshift)이 이용될 수 있다. /maxshift는 인증이 성공한 뒤 사용자가 채널을 통해 스트림 데이터를 시청하고 있는 동안, 타임머신 세션의 정보를 획득하기 위해 언제든 호출될 수 있다. 이때, /maxshift 역시 타임머신 제어 요청의 하나로서 /maxshift의 전송에 따라 스트리밍 클라이언트는 해당 플레이어와의 세션을 유지할 수 있다. 타임머신의 제어 세션은 기설정된 최대 유효 시간을 가질 수 있다. 따라서 스트리밍 클라이언트는 기설정된 최대 유효 시간동안 해당 플레이어로부터 아무런 타임머신 제어 요청이 수신되지 않는 경우 타임머신 제어 세션을 종료할 수 있다. 따라서 플레이어는 타임머신 제어 세션의 유지를 위해 최대 유효 시간보다 짧은 호출 간격으로 /maxshift를 스트리밍 클라이언트로 전송할 수 있다.The TCP connection between the browser (or player) and the streaming client can be terminated at any time (for example, HTTP 1.0). In other words, since the TCP connection is not maintained, the player can send a time machine control request for the channel the user is viewing to the streaming client within a certain time so that the streaming client can know whether the user is still using the channel Should be transmitted. Information acquisition and session maintenance requests (/ maxshift) may be used for such session maintenance (and information acquisition of the time machine session). / maxshift can be invoked at any time to obtain information about a time machine session while the user is viewing stream data over the channel after successful authentication. At this time, / maxshift is also one of the time machine control requests, and the streaming client can maintain a session with the corresponding player according to the transmission of / maxshift. The control session of the time machine may have a predetermined maximum valid time. Accordingly, the streaming client can terminate the time machine control session when no time machine control request is received from the corresponding player for a predetermined maximum valid time. Thus, the player can send / maxshift to the streaming client at a shorter call interval than the maximum valid time for maintaining the time machine control session.

3.3. HTTP query 문자열3.3. HTTP query string

타임머신 제어 요청들 각각은 타임머신 제어 세션의 인증을 위해 요청과 함께 query 문자열이 추가될 수 있다. query 문자열은 아래 표 1과 같이 정의될 수 있다.Each of the time machine control requests can be added with a query string for authentication of the time machine control session. The query string can be defined as shown in Table 1 below.

KeyKey value refref 플레이어에서 채널에 접속하기 위해 사용하는 URL(URL 인코딩(encoding) 적용)The URL that the player uses to access the channel (applying URL encoding) kk 인증 요청(/auth)에 대한 성공 응답에 포함된 키(일례로, 상술한 <key1> 및 <key2>)The keys (e.g., <key1> and <key2> described above) included in the success response to the authentication request (/ auth)

모든 타임머신 제어 요청은 ref query 문자열을 포함할 수 있으며, ref query 문자열이 포함되지 않은 요청은 모두 인증되지 않은 요청으로 간주될 수 있다. 또한, 인증 요청(/auth)을 제외한 모든 타임머신 제어 요청은 k query 문자열을 포함할 수 있으며, k query 문자열이 포함되지 않은 요청은 모두 인증되지 않은 요청으로 간주될 수 있다. k query 문자열의 값은 인증 요청(/auth)에 대한 성공 응답에 포함되어 플레이어로 전송되는 키 값을 포함할 수 있으며, 다른 키 값(유효하지 않은 키 값)이 포함된 타임머신 제어 요청 역시 인증되지 않은 요청으로 간주될 수 있다.All time machine control requests can contain a ref query string, and requests that do not contain a ref query string can be considered unauthenticated requests. In addition, all time machine control requests except the authentication request (/ auth) may include a k query string, and all requests not including the k query string may be considered as unauthenticated requests. The value of the k query string may include the key value that is included in the success response to the authentication request (/ auth) and sent to the player, and the time machine control request containing the other key value (invalid key value) It can be regarded as a request.

4. 제어를 위한 메시지4. Messages for control

상술한 타임머신 제어 요청으로서 플레이어로부터 스트리밍 클라이언트로 전송되는 메시지는 HTTP를 이용할 수 있다. 모든 메시지는 앞서 설명한 바와 같이 현재 재생하고 있는 URL 정보를 명시한 ref query 문자열을 포함할 수 있다. 또한, 인증 요청(/auth) 메시지 이외의 모든 메시지는 인증 요청(/auth)에 대한 성공 응답에 포함되어 전송된 키 값을 명시한 k query 문자열을 더 포함할 수 있다. query 문자열이 포함되지 않은 요청 메시지는 부적절한 요청(인증되지 않은 요청)으로 간주될 수 있다. 재생과 관련이 있는 응답은 200 OK 메시지의 내용에 JSON 포맷을 이용하여 스트리밍 클라이언트로부터 플레이어로 전송될 수 있다. 재생 완료 요청(/stop)을 제외한 다른 요청에 대한 결과 확인은 스트리밍 클라이언트가 전송하는 응답의 내용을 확인해야 한다.A message transmitted from the player to the streaming client as the above-mentioned time machine control request can use HTTP. All messages may contain a ref query string that specifies the URL information currently being played, as described above. In addition, all messages other than the authentication request (/ auth) message may further include a k query string specifying the transmitted key value included in the success response to the authentication request (/ auth). A request message that does not contain a query string can be considered an improper request (an unauthenticated request). The response associated with the playback may be sent from the streaming client to the player using the JSON format in the content of the 200 OK message. The result confirmation for other requests except for the stop request (/ stop) should check the contents of the response sent by the streaming client.

4.1. 메시지 개괄 4.1. Message Overview

타임머신 제어 요청을 위해 플레이어에서 스트리밍 클라이언트로 전송되는 메시지(요청)는 아래 표 2와 같이 정의될 수 있다.The message (request) sent from the player to the streaming client for the time machine control request can be defined as shown in Table 2 below.

요청request 기능function 전송 시점Transmission point 인증 요청 (/auth)Authentication request (/ auth) 연결 인증Connection Authentication 최초 세션 연결 시When connecting the first session 정보 획득 및 세션 유지 요청 (/maxshift)Acquire information and request session maintenance (/ maxshift) 타임머신 정보 획득 및 세션 유지Acquire time machine information and maintain session 재생 요청 (/play)을 보낸 이후, 제어 세션이 유지되는 동안 언제든 전송 가능After sending a play request (/ play), it can be sent at any time while the control session is being held 상태 변경 요청 (/change)Status change request (/ change) 타임머신 활성화 상태 변경Change time machine activation state 인증 이후 제어 세션의 연결이 종료되기 전 언제든 전송 가능Can be transmitted at any time before the end of the connection of the control session after authentication 재생 요청 (/play)Playback request (/ play) 재생 요청Playback request 스트리밍 프로토콜로 요청을 보내기 전에 반드시 전송해야 함. 스트리밍 진행 가능 여부를 메시지 응답을 통해 확인해야 함.Must be transmitted before sending request to streaming protocol. You need to acknowledge the progress of the streaming through the message response. 재개 요청 (/resume)Resume request (/ resume) 이어서 재생하기Then play back 재생 요청 (/play)에 의해 정상적으로 재생이 시작된 이후 재생 완료 요청 (/stop)으로 연결이 종료되기 전까지 언제든 전송 가능It can be transmitted at any time until the connection is terminated by a play completion request (/ stop) after normal playback is started by a playback request (/ play) 탐색 요청 (/seek)Seek request (/ seek) 재생 위치 이동하기Moving the playback position 일시 중지 요청 (/pause)Pause request (/ pause) 일시 중지Pause 재생 완료 요청 (/stop)Request to complete playback (/ stop) 재생 종료End playback 재생을 완료할 때When you finish playing

4. 2. 연결 인증(/auth)4. 2. Connection Authentication (/ auth)

인증 요청(/auth)은 앞서 설명한 바와 같이, 타임머신 기능을 사용하기 위해 처음 연결을 맺을 때, 플레이어가 전송하는 요청으로, 스트리밍 클라이언트는 인증 요청(/auth)을 전송하는 플레이어가 적절한 플레이어인지 확인하기 위해 인증 요청(/auth)에 추가된 파라미터를 이용할 수 있다. 인증 요청(/auth)은 플레이어에서 스트리밍 클라이언트로 연결을 맺는 하나의 타임머신 제어 세션에 대해 최초 1회만 전송될 수 있다.As described above, the authentication request (/ auth) is a request transmitted by the player when the first connection is made to use the time machine function. When the streaming client confirms that the player transmitting the authentication request (/ auth) The parameters added to the authentication request (/ auth) can be used. The authentication request (/ auth) can only be sent once for the first time machine control session that establishes a connection from the player to the streaming client.

인증 요청은 아래 표 3과 같이 정의될 수 있다.The authentication request can be defined as shown in Table 3 below.

요청request 파라미터parameter /auth/ auth ref=<대표 URL>&authKey=<인증 key>

ref: 플레이어에서 채널에 접속하기 위해 사용하는 URL(URL encoding 적용).
authKey: 플레이어의 인증을 위한 인증 키, /auth의 성공 응답이 포함하는 키와는 별도의 키.
ref = <representative URL>& authKey = <authentication key>

ref: The URL that the player will use to connect to the channel (with URL encoding applied).
authKey: A key that is separate from the key that contains the authentication key for authentication of the player, and the success response of / auth.

인증 키(authKey) 생성 방식의 예시: ref query 문자열에 명시한 "대표 URL"의 SHA-1(Secure Hash Algorithm 1) 반환 값을 베이스 64(base 64)의 인코딩 방법으로 인코딩한 값을 인증 키로 생성. 이때, 베이스 64에서 사용하는 ':', '=', '/' 는 URL query에서 사용하는 ':', '=', '/'와 구별하기 위해 각각 URL 인코딩한 "%3A", "%3D", "%2F"로 변경하여 사용함.Example of how to generate an authentication key (authKey): Creates a value obtained by encoding the return value of SHA-1 (Secure Hash Algorithm 1) of "representative URL" specified in the ref query string using the base 64 (base 64) encoding method as an authentication key. At this time, ':', '=', and '/' used in base 64 are URL-encoded "% 3A" and "%", respectively, to distinguish them from ':', '=' 3D ", and"% 2F ".

보다 구체적인 예로, 플레이어에서 "URL://127.0.0.1:7085/live?cid=49"에 접속하고자 하는 경우, 인증 키(authKey)는 다음과 같은 과정을 통해 생성될 수 있다.As a more specific example, when the player wants to access "URL: //127.0.0.1: 7085 / live? Cid = 49", the authentication key (authKey) can be generated through the following process.

1. SHA-1(Secure Hash Algorithm 1)을 이용하여 URL의 해쉬값 생성(16 진수): EA B0 AC AD 34 F2 86 B2 0F B1 58 54 33 AA D9 69 4E 7F 5C 241. Generate the hash value of the URL using SHA-1 (Secure Hash Algorithm 1) (Hexadecimal): EA B0 AC AD 34 F2 86 B2 0F B1 58 54 33 AA D9 69 4E 7F 5C 24

(이 값은 참고값이며, 해당 문자열을 인코딩하는 것이 아니라, 바이너리 값을 베이스 64의 인코딩 방법으로 인코딩함.)(This value is a reference value and does not encode the string, but encodes the binary value in base 64 encoding.)

2. 베이스 64의 인코딩 방법으로 인코딩: 6rCsrTTyhrIPsVhUM6rZaU5/XCQ=2. Encode by encoding method of base 64: 6rCsrTTyhrIPsVhUM6rZaU5 / XCQ =

3. 인증 키(authKey): 6rCsrTTyhrIPsVhUM6rZaU5%2FXCQ%3D3. Authentication key (authKey): 6rCsrTTyhrIPsVhUM6rZaU5% 2FXCQ% 3D

('/', '='를 각각 "%2F", "%3D"로 변경하였음.)(Changed '/' and '=' to "% 2F" and "% 3D" respectively.)

이처럼 인증 요청(/auth)을 위한 인증 키(authKey)는 "6rCsrTTyhrIPsVhUM6rZaU5%2FXCQ%3D"이 되고, 실제 요청은 다음 표 4와 같이 생성될 수 있다.Thus, the authentication key (authKey) for the authentication request (/ auth) becomes "6rCsrTTyhrIPsVhUM6rZaU5% 2FXCQ% 3D ", and the actual request can be generated as shown in Table 4 below.

/authref=rtmp%3A%2F%2F127.0.0.1%3A7085%2Flive%3Fcid%3D49&authKey=6rCsrTTyhrIPsVhUM6rZaU5%2FXCQ%3D / auth ref = rtmp% 3A% 2F% 2F127.0.0.1% 3A7085% 2Flive% 3Fcid% 3D49 & authKey = 6rCsrTTyhrIPsVhUM6rZaU5% 2FXCQ% 3D

인증 요청(/auth)이 성공하는 경우 스트리밍 클라이언트의 응답은 다음 표 5와 같이 나타날 수 있다.If the authentication request (/ auth) is successful, the response of the streaming client may be as shown in Table 5 below.

KeyKey 설명Explanation value keykey 채널 재생을 위해 플레이어가 사용해야 하는 keyThe key that the player must use to play the channel key 값을 나타내는 문자열a string representing the key value

표 5의 키(key)는 스트리밍 클라이언트가 해당 타임머신 제어 세션에 대해 부여한 고유 값이며, 클라이언트(플레이어)에서 인증을 위해 스트리밍 클라이언트로 전송하는 인증 키(authKey)와는 다른 키(다른 값)이다.The keys in Table 5 are unique values given by the streaming client for the corresponding time machine control session and are different from the authentication key (authKey) transmitted from the client (player) to the streaming client for authentication (different value).

인증 요청(/auth)이 실패하는 경우 스트리밍 클라이언트는 별도의 메시지 내용 없이 "401 Unauthorized" 응답코드를 플레이어로 전송할 수 있다.If the authentication request (/ auth) fails, the streaming client can send a "401 Unauthorized" response code to the player without any separate message content.

인증 요청(/auth)이 성공하는 경우, 스트리밍 클라이언트의 응답 메시지에는 {"key": "12345678"}와 같이 키의 값이 포함될 수 있다. "12345678"은 문자열일 수 있다. 키를 수신한 플레이어의 이후 요청은 일례로 아래 표 6과 같은 형태가 될 수 있다.If the authentication request (/ auth) is successful, the response message of the streaming client may contain the value of the key, such as {"key": "12345678"}. "12345678" may be a string. The subsequent request of the player who has received the key may be, for example, as shown in Table 6 below.

/maxshift?ref=rtmp%3A%2F%2F127.0.0.1%3A7085%2Flive%3Fcid%3D49&k=12345678 / maxshift ? ref = rtmp% 3A% 2F% 2F127.0.0.1% 3A7085% 2Flive% 3Fcid% 3D49 & k = 12345678

4.3. 제공 가능한 최대 타임머신 시간 정보 요청 및 HTTP 세션 유지4.3. Request maximum time machine time information and maintain HTTP session

플레이어는 정보 획득 및 세션 유지 요청(/maxshift)을 통해 스트리밍 클라이언트에서 제공할 수 있는 타임머신 최대 시간 정보를 가져올 수 있다. 스트리밍 클라이언트는 현재 상태만 응답할 수 있고, 스트리밍 클라이언트의 상태 변화(타임머신 기능 온(on) 상태/타임머신 기능 오프(off) 상태)는 없다. 이미 설명한 바와 같이 /maxshift는 재생 요청(/play)에 대한 성공 응답을 받은 이후, 제어 세션을 유지하기 위한 언제든 호출될 수 있다.The player can obtain the time machine maximum time information that the streaming client can provide through information acquisition and session maintenance request (/ maxshift). The streaming client can only respond to the current state, and there is no change in the state of the streaming client (the time machine function is turned on or the time machine function is turned off). As already explained, / maxshift can be invoked at any time to maintain a control session after receiving a success response to a playback request (/ play).

정보 획득 및 세션 유지 요청(/maxshift)은 아래 표 7과 같이 정의될 수 있다.Information acquisition and session maintenance requests (/ maxshift) can be defined as shown in Table 7 below.

요청request 파라미터parameter /maxshift/ maxshift ref=<대표 URL>&k=<key>

ref: 플레이어에서 채널에 접속하기 위해 사용하는 URL(URL encoding 적용).
k: 인증 요청(/auth)의 성공 응답에 포함되어 플레이어로 전송된 키.
ref = <representative URL>& k = <key>

ref: The URL that the player will use to connect to the channel (with URL encoding applied).
k: Key sent to the player included in the success response of the authentication request (/ auth).

정보 획득 및 세션 유지 요청(/maxshift)의 성공 시에 스트리밍 클라이언트가 전송하는 응답이 포함할 수 있는 정보는 아래 표 8과 같이 정의될 수 있다.Information that a streaming client sends in response to information acquisition and / or session maintenance requests (/ maxshift) may be defined as shown in Table 8 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result successsuccess mshiftmShift 최대 시프트 가능 시간Maximum shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) ashiftashift 현재 시프트 가능한 시간Current shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) cshiftcshift 스트리밍 클라이언트에서 시프트 해서 재생하고 있는 시간The time that the streaming client is shifting and playing 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) onaironair 채널이 방송 중인지의 여부Whether the channel is broadcasting 0 혹은 1 (0 : 방송 중이 아님, 1: 방송 중)0 or 1 (0: not broadcasting, 1: broadcasting) timemachinetimemachine 타임머신을 사용 중인지 여부Whether you are using a time machine "on" 혹은 "off""on" or "off"

예를 들어, 최대 시프트 가능 시간이 5분이고, 스트리밍 클라이언트에서 3분 시프트된 데이터를 전송하고 있는 경우, 정보 획득 및 세션 유지 요청(/maxshift)의 성공에 따른 스트리밍 클라이언트의 응답은 아래 내용을 포함할 수 있다.For example, if the maximum shiftable time is 5 minutes and the streaming client is transmitting 3 minutes of shifted data, the streaming client's response to the success of the information acquisition and session maintenance request (/ maxshift) .

{"result":"success", "mshift":300000, "ashift":200000, "cshift":180000}{"result": "success", "mshift": 300000, "ashift": 200000, "cshift": 180000}

또한, 정보 획득 및 세션 유지 요청(/maxshift)의 실패 시에 스트리밍 클라이언트가 전송하는 응답이 포함할 수 있는 정보는 아래 표 9와 같이 정의될 수 있다.In addition, the information that the streaming client transmits in response to information acquisition and / or session failures (/ maxshift) may be defined as shown in Table 9 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result failfail errorerror 에러 코드Error code 에러 발생 정보에 대한 코드값Code value for error occurrence information

예를 들어, 정보 획득 및 세션 유지 요청(/maxshift)이 실패했고, 에러 코드가 3인 경우, 스트리밍 클라이언트의 응답은 아래 내용을 포함할 수 있다.For example, if the information acquisition and session maintenance request (/ maxshift) fails and the error code is 3, the response of the streaming client may include:

{"result":"fail", "error":3}{"result": "fail", "error": 3}

4.4. 타임머신 활성화 상태 변경4.4. Change time machine activation state

사용자가 임의로 타임머신 기능의 사용 상태를 변경할 수도 있다. 예를 들어 타임머신 기능을 사용 가능한 실시간 중계 방송을 보는 도중에 디스크의 용량 문제가 발생하였을 때, 사용자는 임의로 타임머신 기능을 비활성화하여 더 이상 타임머신 정보를 기록하지 않도록 할 수 있다. 타임머신 기능이 비활성화된 경우 사용자는 더 이상 타임머신 기능을 사용할 수 없다. 그러나, 플레이어에서는 정보 획득 및 세션 유지 요청(/maxshift)을 지속적으로 호출할 수 있다.The user may arbitrarily change the use state of the time machine function. For example, when a capacity problem of a disk occurs during the viewing of a real-time relay broadcast capable of using a time machine function, the user can arbitrarily disable the time machine function so that the time machine information is no longer recorded. If the time machine function is disabled, the user can no longer use the time machine function. However, the player can invoke the information acquisition and session maintenance request (/ maxshift) continuously.

타임머신 기능에 대한 상태 변경 요청(/change)은 아래 표 10과 같이 정의될 수 있다.The status change request (/ change) for the time machine function can be defined as shown in Table 10 below.

요청request 파라미터parameter /change/ change ref=<대표 URL>&k=<key>&enable=<0 또는 1>

ref: 플레이어에서 채널에 접속하기 위해 사용하는 URL(URL encoding 적용).
k: 인증 요청(/auth)의 성공 응답에 포함되어 플레이어로 전송된 키.
Enable: 타임머신 기능 사용 여부(0: 타임머신 기능을 사용하지 않음, 1: 타임머신 기능을 사용함).
ref = <representative URL>& k = <key>& enable = <0 or 1>

ref: The URL that the player will use to connect to the channel (with URL encoding applied).
k: Key sent to the player included in the success response of the authentication request (/ auth).
Enable: Enable time machine function (0: disable time machine function, 1: use time machine function).

상태 변경 요청(/change)이 성공하는 경우, 스트리밍 클라이언트는 별도의 메시지 내용 없이 200 OK와 같은 응답코드를 플레이어로 전송할 수 있다. 또한, 상태 변경 요청(/change)이 실패하는 경우, 스트리밍 클라이언트는 별도의 메시지 내용 없이 500 Internal Server Error와 같은 응답코드를 플레이어로 전송할 수 있다.If the status change request (/ change) is successful, the streaming client can send a response code such as 200 OK to the player without any separate message content. In addition, when the status change request (/ change) fails, the streaming client can send a response code such as 500 Internal Server Error to the player without a separate message content.

4.5. 재생 요청하기4.5. Request playback

재생 요청(/play)은 플레이어가 스트리밍 클라이언트에 라이브 스트림 데이터의 재생 시작을 요청할 때 전송될 수 있다. 스트리밍 클라이언트에서 재생 요청(/play)을 수신하면, 스트리밍 클라이언트는 해당 방송(재생 요청(/play)에 포함된 URL에 대응하는 방송)의 최신 라이브 스트림 데이터를 플레이어로 전송하여 해당 방송이 재생되도록 할 수 있다. 사용자가 채널을 바꾼 경우에도 재생 요청(/play)이 채널이 바뀌었음을 스트리밍 클라이언트로 알리기 위해 사용될 수 있으며, 스트리밍 클라이언트는 바뀐 채널의 방송(새로운 재생 요청(/play)의 URL에 대응하는 방송)의 최신 라이브 스트림 데이터를 플레이어로 전송하여 해당 방송이 재생되도록 할 수 있다. 방송 키는 라이브 스트리밍 서비스의 플랫폼에서 발급한 방송 키일 수 있다. 타임머신 기능을 사용한 재생을 위해서도 재생 요청(/play)이 스트리밍 클라이언트로 전송될 수 있다.The playback request (/ play) may be transmitted when the player requests the streaming client to start playback of the live stream data. Upon receiving the reproduction request (/ play) from the streaming client, the streaming client transmits the latest live stream data of the corresponding broadcast (the broadcast corresponding to the URL included in the reproduction request (/ play)) to the player so that the broadcast is reproduced . Even if the user changes the channel, the playback request (/ play) can be used to notify the streaming client that the channel has changed, and the streaming client can be used to broadcast the changed channel (broadcast corresponding to the URL of the new playback request / play) It is possible to transmit the latest live stream data to the player and reproduce the broadcast. The broadcast key may be a broadcast key issued by the platform of the live streaming service. A playback request (/ play) can also be sent to the streaming client for playback using the time machine function.

재생 요청(/play)은 아래 표 11과 같이 정의될 수 있다.The play request (/ play) can be defined as shown in Table 11 below.

요청request 파라미터parameter /play/ play ref=<대표 URL>&k=<key>&programKey=<방송 키>&useTM=<0 또는 1>&shiftTime=<처음 재생할 위치>&pauseStart=<0 또는 1>

((필수 파라미터))
ref: 플레이어에서 채널에 접속하기 위해 사용하는 URL(URL encoding 적용).
k: 인증 요청(/auth)의 성공 응답에 포함되어 플레이어로 전송된 키.
programKey: 라이브 스트리밍 서비스의 플랫폼에서 발급한 방송 키.

((옵션 파라미터))
useTM: 타임머신 기능의 사용 여부. 이 파라미터가 명시되지 않은 경우, 타임머신 기능을 사용하는 것을 기본으로 함(0: 타임머신 기능을 사용하지 않음, 1: 타임머신 기능을 사용함).
shiftTime: 처음 재생을 시작할 위치(값이 음수일 경우 가장 오래된 영상부터 재생을 시작함). 이 값이 없으면 최신 위치에서 재생하는 것을 기본으로 함.
pauseStart: 채널을 일시 중지(pause) 상태로 시작할지 여부. 일시 중지 상태에서 화질 전환을 하거나, 채널을 일시 중지 상태로 시작하고자 하는 경우에 사용할 수 있음(0, 일반적인 재생 모드로 시작, 1: 일시 중지 상태로 시작).
& refT = <Representative URL>& k = <key>& programKey = <Broadcast Key>& useTM = <0 or 1>& shiftTime = <First Play>& pauseStart = <0 or 1>

((Required parameter))
ref: The URL that the player will use to connect to the channel (with URL encoding applied).
k: Key sent to the player included in the success response of the authentication request (/ auth).
programKey: Broadcast key issued by the platform of the live streaming service.

((Optional parameter))
useTM: Whether to use the time machine function. If this parameter is not specified, it is based on using time machine function (0: no time machine function, 1: use time machine function).
shiftTime: The position at which to start playback (if the value is negative, playback starts from the oldest video). If this value is not present, it is based on playback from the latest position.
pauseStart: Whether to start the channel in a pause state. Available when you want to change the picture quality from the paused state, or start the channel to the paused state (0, start with normal playback mode, 1: start with pause).

재생 요청(/play)에 대한 성공 시 응답이 포함할 수 있는 정보는 아래 표 12와 같이 정의될 수 있다.The information that the response may contain in the success response to the play request (/ play) may be defined as shown in Table 12 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result successsuccess mshiftmShift 최대 시프트 가능 시간Maximum shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) ashiftashift 현재 시프트 가능한 시간Current shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) cshiftcshift 스트리밍 클라이언트에서 시프트 해서 재생하고 있는 시간The time that the streaming client is shifting and playing 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) onaironair 채널이 방송 중인지의 여부Whether the channel is broadcasting 0 혹은 1 (0 : 방송 중이 아님, 1: 방송 중)0 or 1 (0: not broadcasting, 1: broadcasting) timemachinetimemachine 타임머신을 사용 중인지 여부Whether you are using a time machine "on" 혹은 "off""on" or "off"

재생 요청(/play)에 대한 실패 시 응답이 포함할 수 있는 정보는 아래 표 13과 같이 정의될 수 있다.The information that the response may contain in the case of a failure to play request (/ play) can be defined as shown in Table 13 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result failfail errorerror 에러 코드Error code 에러 발생 정보에 대한 코드값Code value for error occurrence information

가장 처음으로 라이브 스트리밍을 시작할 때 플레이어가 재생 요청(/play)을 전송하면, 최대 시프트 가능 시간에 대한 정보를 얻기 위한 동작으로 인해 응답이 약간 늦어질 수 있다. 재생 요청(/play)을 전송하지 않고, 스트리밍 프로토콜을 이용하여 재생 요청을 보내는 경우 스트리밍 클라이언트는 타임머신 기능을 사용하지 않는 방송으로 간주하여 항상 최신 라이브 방송을 재생할 수 있고, 이후에 들어오는 타임머신 제어 요청은 모두 무시할 수 있다.If the player sends a play request (/ play) at the beginning of live streaming for the first time, the response may be slightly delayed due to the action to obtain information on the maximum shiftable time. When a playback request is sent using a streaming protocol without transmitting a playback request (/ play), the streaming client regards the time-machine function as a broadcast that does not use the time machine function and can always play the latest live broadcasting. All can be ignored.

4.6. 이전에 멈춘 위치에서 재생하기4.6. Playback from a previously stopped position

스트리밍 클라이언트는 일시 중지 요청(/pause)이 수신되면, 현재까지 재생한 위치(또는 현재까지 플레이어로 전송한 위치)를 기억(저장 및 관리)할 수 있다. 이 위치 정보는 스트리밍 클라이언트가 종료되거나 또는 타임머신 제어 세션이 끊어지지 않는 한 계속 유지될 수 있다. 재개 요청(/resume)은 스트리밍 클라이언트가 기억하고 있는 위치부터 재생을 시작하도록 요청하기 위해 플레이어에서 스트리밍 클라이언트로 전송될 수 있다.When the pause request (/ pause) is received, the streaming client can memorize (store and manage) the position reproduced up to now (or the position transmitted to the player so far). This location information can be maintained as long as the streaming client is terminated or the time machine control session is not terminated. A resume request (/ resume) may be sent from the player to the streaming client to request that the streaming client begin playback from a memory location.

재개 요청(/resume)은 아래 표 14와 같이 정의될 수 있다.The resume request (/ resume) can be defined as shown in Table 14 below.

요청request 파라미터parameter /resume/ resume ref=<대표 URL>&k=<key>

ref: 플레이어에서 채널에 접속하기 위해 사용하는 URL(URL encoding 적용).
k: 인증 요청(/auth)의 성공 응답에 포함되어 플레이어로 전송된 키.
ref = <representative URL>& k = <key>

ref: The URL that the player will use to connect to the channel (with URL encoding applied).
k: Key sent to the player included in the success response of the authentication request (/ auth).

재개 요청(/resume)에 대한 성공 시 응답이 포함할 수 있는 정보는 아래 표 15와 같이 정의될 수 있다.The information that may be included in a successful response to a resume request (/ resume) may be defined as shown in Table 15 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result successsuccess mshiftmShift 최대 시프트 가능 시간Maximum shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) ashiftashift 현재 시프트 가능한 시간Current shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) cshiftcshift 스트리밍 클라이언트에서 시프트 해서 재생하고 있는 시간The time that the streaming client is shifting and playing 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) onaironair 채널이 방송 중인지의 여부Whether the channel is broadcasting 0 혹은 1 (0 : 방송 중이 아님, 1: 방송 중)0 or 1 (0: not broadcasting, 1: broadcasting) timemachinetimemachine 타임머신을 사용 중인지 여부Whether you are using a time machine "on" 혹은 "off""on" or "off"

재개 요청(/resume)에 대한 실패 시 응답이 포함할 수 있는 정보는 아래 표 16과 같이 정의될 수 있다.The information that the response may contain in case of a failure to resume (/ resume) may be defined as shown in Table 16 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result failfail errorerror 에러 코드Error code 에러 발생 정보에 대한 코드값Code value for error occurrence information

4.7. 재생 위치 이동하기4.7. Moving the playback position

타임머신 기능을 사용하기 위해 스트리밍 클라이언트에 현재 재생 위치를 이동하도록 요청하기 위해 탐색 요청(/seek)이 사용될 수 있다. 탐색 요청 메시지는 재생이나 일시 중지 상태에 관계없이 전송 가능하며, 탐색 요청(/seek)의 수신 후에도 재생이나 일시 중지 상태는 동일하게 유지될 수 있다. 다시 말해, 스트리밍 클라이언트는 재생 도중에 탐색 요청(/seek)을 수신한 경우, 재생 위치를 이동한 후에 이동한 위치에서부터 계속 재생을 할 수 있다. 또한, 스트리밍 클라이언트는 일시 중지 상태에서 탐색 요청(/seek)을 수신한 경우, 재생 위치를 이동한 후에 일시 중지 상태를 계속 유지할 수 있다. 타임머신 기능을 이용한 재생을 시작한 이후의 재생 위치 변경은 탐색 요청(/seek)을 통해 이루어질 수 있다.A seek request (/ seek) may be used to request the streaming client to move the current playback location to use the time machine function. The search request message can be transmitted regardless of the playback or pause state, and the playback or pause state can be maintained even after receiving the seek request (/ seek). In other words, when a streaming client receives a seek request (/ seek) during playback, the streaming client can continue playback from the moved position after moving the playback position. In addition, when the streaming client receives the seek request (/ seek) in the suspended state, the streaming client can keep the suspended state after moving the playback position. The playback position change after starting playback using the time machine function can be made through a seek request (/ seek).

탐색 요청(/seek)은 아래 표 17과 같이 정의될 수 있다.The seek request (/ seek) can be defined as shown in Table 17 below.

요청request 파라미터parameter /seek/ seek ref=<대표 URL>&k=<key>&shift=<과거로 이동할 값(단위:밀리초(msec))>

ref: 플레이어에서 채널에 접속하기 위해 사용하는 URL(URL encoding 적용).
k: 인증 요청(/auth)의 성공 응답에 포함되어 플레이어로 전송된 키.
Shift: 최신 라이브 재생을 기준으로 얼마나 과거로 이동하는지를 나타내는 값으로, 0은 가장 최신의 라이브 스트림 데이터를 의미할 수 있음(이 값이 음수일 경우 가장 오래된 영상부터 재생을 시작함).

예시) 5분 과거 데이터로 이동하고자 할 경우,
/seek?ref=<대표 URL>&k=<key>&shift=300000
최신 라이브 스트림 데이터로 이동하고자 하는 경우,
/seek?ref=<대표 URL>&k=<key>&shift=0
ref = <representative URL>& k = <key>& shift = <value to move to past (unit: millisecond (msec))>

ref: The URL that the player will use to connect to the channel (with URL encoding applied).
k: Key sent to the player included in the success response of the authentication request (/ auth).
Shift: A value indicating how far into the past based on the latest live playback. A value of 0 means the most recent live stream data (if this value is negative, playback starts from the oldest video).

Example) 5 minutes If you want to move to past data,
/ seek? ref = <representative URL>& k = <key>& shift = 300000
If you want to move to the latest live stream data,
/ seek? ref = <representative URL>& k = <key>& shift = 0

탐색 요청(/seek)에 대한 성공 시 응답이 포함할 수 있는 정보는 아래 표 18과 같이 정의될 수 있다.Information that a response to a seek request (/ seek) may contain can be defined as shown in Table 18 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result successsuccess mshiftmShift 최대 시프트 가능 시간Maximum shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) ashiftashift 현재 시프트 가능한 시간Current shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) cshiftcshift 스트리밍 클라이언트에서 시프트 해서 재생하고 있는 시간The time that the streaming client is shifting and playing 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) onaironair 채널이 방송 중인지의 여부Whether the channel is broadcasting 0 혹은 1 (0 : 방송 중이 아님, 1: 방송 중)0 or 1 (0: not broadcasting, 1: broadcasting) timemachinetimemachine 타임머신을 사용 중인지 여부Whether you are using a time machine "on" 혹은 "off""on" or "off"

탐색 요청(/seek)에 대한 실패 시 응답이 포함할 수 있는 정보는 아래 표 19와 같이 정의될 수 있다.Information that a response to a search request (/ seek) may contain may be defined as shown in Table 19 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result failfail errorerror 에러 코드Error code 에러 발생 정보에 대한 코드값Code value for error occurrence information

4.8. 일시 중지4.8. Pause

일시 중지 요청(/pause)은 현재 스트리밍 클라이언트가 전송하고 있는 위치에서 재생을 일시 중지하기 위해 이용될 수 있다. 스트리밍 클라이언트는 타임머신 기능을 위한 제어 세션이 종료되지 않는 한 이 위치를 기억하고, 재개 요청(/resume)에 따라 기억된 위치에서부터 다시 재생을 시작할 수 있다.A pause request (/ pause) can be used to pause playback at a location that the current streaming client is transmitting. The streaming client may remember this location as long as the control session for the time machine function is not terminated, and may start playback from the stored location in response to a resume request (/ resume).

일시 중지 요청(/pause)은 아래 표 20과 같이 정의될 수 있다.The pause request (/ pause) can be defined as shown in Table 20 below.

요청request 파라미터parameter /pause/ pause ref=<대표 URL>&k=<key>

ref: 플레이어에서 채널에 접속하기 위해 사용하는 URL(URL encoding 적용).
k: 인증 요청(/auth)의 성공 응답에 포함되어 플레이어로 전송된 키.
ref = <representative URL>& k = <key>

ref: The URL that the player will use to connect to the channel (with URL encoding applied).
k: Key sent to the player included in the success response of the authentication request (/ auth).

일시 중지 요청(/pause)에 대한 성공 시 응답이 포함할 수 있는 정보는 아래 표 21과 같이 정의될 수 있다.Information that a response to a successful pause request (/ pause) may contain can be defined as shown in Table 21 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result successsuccess mshiftmShift 최대 시프트 가능 시간Maximum shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) ashiftashift 현재 시프트 가능한 시간Current shiftable time 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) cshiftcshift 스트리밍 클라이언트에서 시프트 해서 재생하고 있는 시간The time that the streaming client is shifting and playing 0보다 큰 정수이며, 단위는 밀리초(msec)An integer greater than 0, in units of milliseconds (msec) onaironair 채널이 방송 중인지의 여부Whether the channel is broadcasting 0 혹은 1 (0 : 방송 중이 아님, 1: 방송 중)0 or 1 (0: not broadcasting, 1: broadcasting) timemachinetimemachine 타임머신을 사용 중인지 여부Whether you are using a time machine "on" 혹은 "off""on" or "off"

일시 중지 요청(/pause)에 대한 실패 시 응답이 포함할 수 있는 정보는 아래 표 22와 같이 정의될 수 있다.The information that the response may include in case of a failure to pause (/ pause) can be defined as shown in Table 22 below.

KeyKey 설명Explanation value resultresult 처리 결과Processing result failfail errorerror 에러 코드Error code 에러 발생 정보에 대한 코드값Code value for error occurrence information

4.9. 세션 종료4.9. End session

플레이어를 종료하는 경우, 스트리밍 클라이언트에서 모든 정보를 삭제하도록 재생 완료 요청(/stop)이 이용될 수 있다.When terminating the player, a playback completion request (/ stop) may be used to delete all information from the streaming client.

재생 완료 요청(/stop)은 아래 표 23과 같이 정의될 수 있다.The request to complete the playback (/ stop) can be defined as shown in Table 23 below.

요청request 파라미터parameter /stop/ stop ref=<대표 URL>&k=<key>

ref: 플레이어에서 채널에 접속하기 위해 사용하는 URL(URL encoding 적용).
k: 인증 요청(/auth)의 성공 응답에 포함되어 플레이어로 전송된 키.
ref = <representative URL>& k = <key>

ref: The URL that the player will use to connect to the channel (with URL encoding applied).
k: Key sent to the player included in the success response of the authentication request (/ auth).

스트리밍 클라이언트는 재생 완료 요청(/stop)에 따른 성공/실패와 상관 없이 내용없는 200 OK 응답코드를 플레이어로 전송할 수 있다.The streaming client can transmit the contentless 200 OK response code to the player irrespective of success / failure according to the playback completion request (/ stop).

도 5는 본 발명의 일실시예에 있어서, 시프트 값들을 설명하기 위한 예를 도시한 도면이다. 도 5는 방송의 타임머신 시간으로서 최대 시프트 가능 시간이 5분으로 설정되고, 방송이 시작되고 4분이 지난 상태에서 사용자가 1분 전 영상을 보고 있는 경우에 타임머신 제어 요청의 결과값으로 전달되는 최대 시프트 가능 시간(mshift), 현재 시프트 가능 시간(ashift) 및 현재 시프트 시간(cshift)간의 관계를 나타내고 있다.5 is a diagram illustrating an example for explaining shift values in an embodiment of the present invention. FIG. 5 shows a case where a maximum shiftable time is set to 5 minutes as a time machine time of a broadcast, and when a user watches an image one minute before the start of broadcasting and four minutes later, The possible time (mshift), the current shiftable time (ashift) and the current shift time (cshift).

최대 시프트 가능 시간(mshift)는 방송에 대해 설정된 타임머신 가능 시간으로 본 예시에서는 5분으로 고정될 수 있다. 이때 최대 시프트 가능 시간(mshift)이 5분이지만, 방송이 시작된 후 경과 시간이 4분으로 5분보다 짧기 때문에 4분 이상의 타임머신 기능은 제공될 수 없다. 이처럼 최대 시프트 가능 시간과는 별도로 현 시점에서의 시프트 가능 시간을 알리기 위해 현재 시프트 가능 시간(ashift)가 이용될 수 있다. 다시 말해 현재 시프트 가능 시간(ashift)는 스트리밍 클라이언트가 현재 제공할 수 있는 타임머신 가능 시간의 최대 시간을 나타낼 수 있고, 현재 시프트 가능 시간(ashift)보다 더 과거의 방송을 제공할 수는 없다. 만약, 방송 시작 후의 경과 시간이 타임머신 가능 시간보다 커지는 경우, 최대 시프트 가능 시간(mshift)과 현재 시프트 가능 시간(ashift)의 값은 동일해진다. 또한, 현재 시프트 시간(cshift)이 1분이라는 것은 사용자가 최신 라이브에 비해 1분 전 영상을 보고 있음을 나타낼 수 있다. 현재 시프트 시간(cshift)은 최신 라이브 방송이 진행중이고 사용자가 재생 위치를 이동하지 않는 한 바뀌지 않는다. 다시 말해 도 5에서 사용자는 실제 방송 시점과 계속 1분의 시차를 두고 영상을 보게 된다.The maximum shiftable time (mshift) can be fixed to 5 minutes in this example, which is the time machine capable time set for the broadcast. At this time, although the maximum shiftable time (mshift) is 5 minutes, since the elapsed time after the start of broadcasting is shorter than 5 minutes by 4 minutes, the time machine function of 4 minutes or more can not be provided. As such, the present shiftable time (ashift) can be used to inform the shiftable time at the present time separately from the maximum shiftable time. In other words, the current shift time (ashift) can represent the maximum time of the time machine available time that the streaming client can currently provide, and can not provide the past broadcast more than the current shift time (ashift). If the elapsed time after the start of broadcasting becomes larger than the time machine available time, the value of the maximum shiftable time (mshift) and the current shiftable time (ashift) become equal. In addition, the present shift time (cshift) is 1 minute, which indicates that the user is watching the video 1 minute before the latest live. The current shift time (cshift) is not changed unless the latest live broadcast is in progress and the user does not move the playback position. In other words, in FIG. 5, the user sees an image with a lag time of 1 minute continuously from the actual broadcasting time point.

6. 방송 종료 처리6. Broadcast termination processing

생중계 중인 방송이 종료되었을 때, 사용자가 타임머신을 이용하여 과거의 영상을 보고 있는 상태에서 플레이어가 즉시 방송 종료 처리를 할 경우, 사용자는 마지막 중계 영상을 보지 못하게 된다. 예를 들어 사용자가 도 5에서 실제 방송 시점과 1분의 시차를 두고 영상을 보고 있는 상태에서 생중계 중인 방송이 종료됨에 따라 플레이어가 즉시 방송 종료 처리를 한다면, 사용자는 마지막 1분간의 영상을 보지 못하게 된다. 따라서, 실제 방송이 종료된 이후에도 일정 시간 방송 종료 처리를 지연시킬 필요가 있다.When the live broadcast is terminated, if the user immediately performs the broadcast end process while the user is watching the past video using the time machine, the user will not see the last relay video. For example, when the user is watching the video with a time lag of one minute and the actual broadcast time in Fig. 5, if the player immediately performs the broadcast end process as the live broadcast ends, the user can not view the last one minute of the video do. Therefore, it is necessary to delay the broadcast end processing for a certain period of time after the actual broadcast ends.

타임머신 세션에서는 타임머신 제어 요청에 대한 응답에 "onair"를 포함하여, "onair"의 값과 "cshift"의 조합으로 방송 종료 시점에 대한 정보를 제공할 수 있다.In the time machine session, "onair" is included in the response to the time machine control request, and information on the broadcast end time can be provided by a combination of "onair" value and "cshift".

- 방송 진행 중 타임머신 정보- Broadcasting time machine information

방송 진행 중의 "onair" 값은 1이고, 사용자가 타임머신을 이용하여 시프트된 라이브 영상을 보고 있을 경우, 'cshift' 값은 사용자가 과거로 이동한 시간을 나타내며, 0 보다 큰 값을 반환하게 된다. 또한, 방송 중 'cshift' 값은 사용자가 과거로 이동한 시간을 고정값으로 반환한다.The value of "onair" during broadcasting is 1, and when the user watches the shifted live video using the time machine, the value of 'cshift' indicates the time when the user has moved to the past and returns a value larger than 0. Also, 'cshift' value during broadcasting returns the fixed time when user moved to past time.

- 방송 종료 시 타임머신 정보- Time machine information at the end of broadcasting

방송이 종료되었을 경우 'onair' 값은 0이고, 재생이 진행될수록 'cshift' 값은 점점 0으로 줄어들게 된다. 이 값이 0이 되면 방송이 종료된 시점의 영상까지 전송이 완료되었음을 의미한다. 따라서, 'onair' 값과 'cshift' 값이 동시에 0이면 플레이어에서 더 이상 재생할 영상이 없음을 의미하므로 재생을 중단할 수 있다.The 'onair' value is 0 when the broadcast ends, and the 'cshift' value gradually decreases as the playback progresses. When this value is 0, it means that transmission to the video at the end of broadcasting is completed. Therefore, if the 'onair' value and the 'cshift' value are 0 at the same time, the player can stop playback because it means that there is no more image to be played back.

예를 들어, 사용자가 최신 라이브 영상을 보고 있었다면 'cshift' 값은 0이 반환되므로, 'onair' 값이 0으로 바뀌는 시점에 방송을 즉시 종료할 수 있다. 한편, 사용자가 1분 시프트(cshift 값이 60000 밀리초) 된 영상을 보고 있었다면, 'onair'가 0으로 바뀌는 시점부터 'cshift' 값은 60000에서 실시간으로 감소하게 된다. 이때, 1분이 지나면 'cshift' 는 0이 되며, 플레이어는 방송을 종료할 수 있다.For example, if the user is viewing the latest live video, 'cshift' will return 0, so the broadcast can be terminated immediately when the 'onair' value changes to zero. On the other hand, if the user was watching a 1-minute shift (cshift value of 60000 milliseconds), the value of 'cshift' would decrease from 60000 in real time when 'onair' At this time, 'cshift' becomes 0 after one minute, and the player can terminate the broadcasting.

도 6은 본 발명의 일실시예에 있어서, 최초 재생 요청 및 재생 완료 요청을 처리하는 과정의 예를 도시한 흐름도이다. 도 6은 플레이어(610)와 스트리밍 클라이언트(620)간의 메시지 흐름을 나타내고 있다. 이때, 스트리밍 클라이언트(620)는 도 6에 도시된 바와 같이, 제어 세션(621), RTMP 세션(622) 및 엔진(623)을 포함할 수 있다. 제어 세션(621)은 타임머신 기능을 제공하기 위한 타임머신 제어 프로토콜을 이용하여 플레이어(610)와 스트리밍 클라이언트(620)간에 통신하기 위해 설정된 세션일 수 있고, RTMP 세션(622)은 실제 스트리밍 서비스를 위한 스트리밍 프로토콜을 이용하여 플레이어(610)와 스트리밍 클라이언트(620)간에 통신하기 위해 설정된 세션일 수 있다. 실질적으로 제어 세션(621)은 제어 세션(621)을 통해 타임머신 기능을 제공하기 위한 스트리밍 클라이언트(620)의 소프트웨어적 기능(function)일 수 있고, RTMP 세션(622)은 스트리밍 서비스를 제공하기 위한 스트리밍 클라이언트(620)의 소프트웨어적 기능일 수 있다.6 is a flowchart illustrating an example of a process of processing an initial reproduction request and a reproduction completion request according to an embodiment of the present invention. FIG. 6 shows a message flow between the player 610 and the streaming client 620. At this point, the streaming client 620 may include a control session 621, an RTMP session 622, and an engine 623, as shown in FIG. The control session 621 may be a session established to communicate between the player 610 and the streaming client 620 using a time machine control protocol to provide a time machine function and the RTMP session 622 may be a stream configured for streaming for an actual streaming service May be a session established to communicate between the player 610 and the streaming client 620 using a protocol. The control session 621 may be a software function of the streaming client 620 to provide a time machine function through the control session 621 and the RTMP session 622 may be a streaming May be a software function of the client 620.

1. /auth?authKey=<인증 키> 과정은 플레이어(610)가 제어 세션(621)을 통해 스트리밍 클라이언트(620)으로 인증 요청(/auth)을 전송하는 과정일 수 있다. 이때, 인증 요청(/auth)은 인증 키(authKey)를 포함할 수 있다.1. The process / auth? AuthKey = <authentication key> may be a process in which the player 610 transmits an authentication request (/ auth) to the streaming client 620 via the control session 621. At this time, the authentication request (/ auth) may include an authentication key (authKey).

2. 200 OK 과정은 스트리밍 클라이언트(620)가 제어 세션(621)을 통해 플레이어(610)로 인증 요청(/auth)에 대한 응답을 전송하는 과정일 수 있다. 스트리밍 클라이언트(620)는 인증 요청(/auth)에 포함된 인증 키(authKey)를 이용하여 플레이어(610)를 인증할 수 있다. 플레이어(610)의 인증에 성공한 경우, 스트리밍 클라이언트(620)는 성공 응답(200 OK 응답코드)을 플레이어(610)로 전송할 수 있다. 만약, 플레이어(610)의 인증에 실패한 경우, 스트리밍 클라이언트(620)는 실패 응답(401 Unauthorized 응답코드)을 플레이어(610)로 전송할 수 있다.2. The 200 OK process may be a process in which the streaming client 620 sends a response to the authentication request (/ auth) to the player 610 via the control session 621. The streaming client 620 can authenticate the player 610 using the authentication key (authKey) included in the authentication request (/ auth). If the authentication of the player 610 is successful, the streaming client 620 may send a success response (200 OK response code) to the player 610. If the authentication of the player 610 fails, the streaming client 620 may send a failure response (401 Unauthorized response code) to the player 610.

3. /play?programKey=<방송 키> 과정은 플레이어(610)가 제어 세션(621)을 통해 스트리밍 클라이언트(620)으로 재생 요청(/play)을 전송하는 과정일 수 있다. 방송 키(programKey)에 대해서는 이미 설명하였다. 재생 요청(/play)이 포함하는 URL은 생략되었다.3. The process / play? ProgramKey = <broadcast key> may be a process in which the player 610 transmits a playback request (/ play) to the streaming client 620 via the control session 621. The broadcast key (programKey) has already been described. The URL containing the play request (/ play) has been omitted.

4. Play<url, progID > 과정은 제어 세션(621)을 통해 수신된 재생 요청(/play)의 처리를 위해 스트리밍 클라이언트(620)의 내부적으로 엔진(623)으로 재생을 요청하는 과정일 수 있다. "url"은 재생 요청(/play)이 포함하는 URL에 대응할 수 있고, "progID"는 재생 요청(/play)이 포함하는 방송 키(programKey)에 대응할 수 있다.4. The Play <url, progID > process may be a process of requesting playback to the engine 623 of the streaming client 620 internally for processing of the playback request (/ play) received via the control session 621 . " url " may correspond to the URL included in the reproduction request (/ play), and " progID " may correspond to the broadcasting key (programKey) included in the reproduction request (/ play).

5. Create Channel 과정은 엔진(623)에서 요청된 방송을 위한 채널을 생성하는 과정일 수 있다. 예를 들어, 엔진(623)은 요청된 "url"에 접근하여 "progID"에 대응하는 라이브 스트림 데이터를 요청하도록 플레이어(610)와 스트리밍 클라이언트(620)를 포함하는 전자 기기를 제어할 수 있고, 라이브 스트림 데이터를 위한 채널을 생성할 수 있다.5. The Create Channel process may be a process of generating a channel for broadcasting requested by the engine 623. [ For example, engine 623 may control an electronic device, including player 610 and streaming client 620, to access the requested " url " to request live stream data corresponding to " progID & You can create channels for live stream data.

6. ret:< capacity_time, seekable _time> 과정은 엔진(623)이 제어 세션(621)으로 해당 라이브 스트림 데이터에 대한 최대 시프트 가능 시간(capacity_time)과 현재 시프트 가능 시간(seekable _time)을 전달하는 과정일 수 있다. "capacity _time"과 "seekable _time"은 제어 세션(621)에서 각각 "mshift"와 "ashift"로서 처리될 수 있다. 도 6에서는 생략되었으나 "cshift"에 대한 정보 역시 함께 전달될 수 있다. 6. ret: <capacity_time, seekable _time > process is the process of the engine 623 is transmitted to the maximum shift time (capacity_time) to the current time shift (seekable _time) for the live data stream to the control sessions 621 days . "_Time capacity" and "seekable _time" can be treated as respective "mshift" and "ashift" from the session control (621). Although omitted in FIG. 6, information on "cshift" can also be transmitted together.

7. 200 OK 과정은 스트리밍 클라이언트(620)가 제어 세션(621)을 통해 재생 요청(/play)에 대한 성공 응답을 전송하는 과정일 수 있다. 이때, 성공 응답에는 "mshift"와 "ashift"(그리고 "cshift")가 포함되어 전송될 수 있다.7. The 200 OK process may be a process in which the streaming client 620 transmits a success response to the playback request (/ play) through the control session 621. At this time, the success response may include "mshift" and "ashift" (and "cshift").

8. Play<url> 과정은 플레이어(610)가 스트리밍 프로토콜을 이용하여 RTMP 세선(622)을 통해 스트리밍 클라이언트(620)로 방송의 재생을 요청하는 과정일 수 있다.8. The Play < url > process may be a process in which the player 610 requests the streaming client 620 to play the broadcast through the RTMP thin line 622 using a streaming protocol.

9. Play<url> 과정은 RTMP 세션(622)을 통해 방송의 재생에 대한 요청이 엔진(623)으로 전달되는 과정일 수 있다.9. The Play < url > process may be a process in which a request for playback of the broadcast is delivered to the engine 623 via the RTMP session 622. [

10. Send Media Data 과정 및 11. Send Media Data 과정은 엔진(623)이 RTMP 세선(622)을 통해 실제 스트리밍을 위한 데이터를 플레이어(620)로 전송하는 과정일 수 있다. 플레이어(620)는 수신된 데이터를 이용하여 방송을 재생할 수 있고, 재생된 방송이 전자 기기의 디스플레이를 통해 표시되도록 전자 기기를 제어할 수 있다.10. The Send Media Data process and 11. The Send Media Data process may be the process in which the engine 623 transmits the data for the actual streaming to the player 620 through the RTMP clear line 622. [ Player 620 can reproduce the broadcast using the received data and control the electronic device such that the reproduced broadcast is displayed through the display of the electronic device.

12. /stop 과정은 플레이어(610)가 제어 세션(621)을 통해 스트리밍 클라이언트(620)로 재생 완료 요청(/stop)을 전송하는 과정일 수 있다.12. The / stop process may be a process in which the player 610 transmits a playback completion request (/ stop) to the streaming client 620 via the control session 621. [

13. Cleanup Context 과정은 스트리밍 클라이언트(630)가 해당 세션을 위한 타임머신 정보를 모두 삭제하는 과정일 수 있다.13. The Cleanup Context process may be a process in which the streaming client 630 deletes all the time machine information for the session.

14. 200 OK 과정은 스트리밍 클라이언트(620)가 제어 세션(621)을 통해 플레이어(610)로 재생 완료 요청(/stop)에 대한 성공 응답을 전송하는 과정일 수 있다.14. The 200 OK process may be a process in which the streaming client 620 transmits a success response to the playback completion request (/ stop) to the player 610 via the control session 621. [

15. STOP 과정은 엔진(623)으로 재생 완료를 요청하는 과정일 수 있다.15. The STOP process may be a process of requesting the engine 623 to complete reproduction.

16. Close Session 과정은 플레이어(610)가 RTMP 세션(622)을 통해 스트리밍 클라이언트(620)로 실질적인 세션의 종료를 요청하는 과정일 수 있다.16. The Close Session process may be a process in which the player 610 requests the streaming client 620 to terminate a substantial session via the RTMP session 622. [

17. Close 과정은 스트리밍 클라이언트(620)가 스트리밍 프로토콜에 따라 엔진(623)으로 종료를 지시하는 과정일 수 있다.17. The Close process may be a process in which the streaming client 620 instructs the engine 623 to terminate according to a streaming protocol.

18. Close Channel 과정은 엔진(623)이 채널을 종료하는 과정일 수 있다.18. The Close Channel process may be the process by which the engine 623 terminates the channel.

이처럼 타임머신 제어 프로토콜과 스트리밍 프로토콜이 완전히 분리되어 처리되기 때문에, 스트리밍 클라이언트가 플레이어(610)가 지원하는 스트리밍 프로토콜과는 상관없이 타임머신 제어 프로토콜을 이용하여 타임머신 기능을 제공하는 것이 가능해진다.Since the time management control protocol and the streaming protocol are completely separated and processed, it is possible for the streaming client to provide the time machine function using the time machine control protocol regardless of the streaming protocol supported by the player 610.

도 7은 본 발명의 일실시예에 있어서, 재생 중에 탐색 요청을 처리하는 과정의 예를 도시한 흐름도이다.7 is a flowchart illustrating an example of a process of processing a search request during playback in an embodiment of the present invention.

1. /seek?shift=<이동할 시간> 과정은 플레이어(610)가 스트리밍 클라이언트(620)로 탐색 요청(/seek)을 전송하는 과정일 수 있다.1. / seek? Shift = <time to move> may be a process in which the player 610 transmits a seek request (/ seek) to the streaming client 620.

2. Seek:< url, time> 과정은 스트리밍 클라이언트(620)가 제어 세션(621)을 통해 엔진(623)에게 실질적인 탐색을 요청하는 과정일 수 있다.2. Seek: The process of < url, time> may be a process in which the streaming client 620 requests the engine 623 for a substantial search through the control session 621.

3. ret:< seek_time> 과정은 엔진(623)이 탐색 결과를 제공하는 과정일 수 있다. 여기서 "seek_time"은 "cshift"에 대응될 수 있다.3. ret: The < seek_time> process may be the process by which the engine 623 provides search results. Here, "seek_time" may correspond to "cshift &quot;.

4. 200 OK 과정은 스트리밍 클라이언트(620)가 제어 세션(621)을 통해 탐색 요청(/seek)에 대한 성공 응답을 플레이어(610)로 전송하는 과정일 수 있다. 이때, "seek_time"에 대응하는 "cshift"가 성공 응답에 포함되어 플레이어(610)로 전송될 수 있다.4. The 200 OK process may be a process in which the streaming client 620 transmits a success response to the seek request (/ seek) to the player 610 through the control session 621. At this time, "cshift" corresponding to "seek_time" may be included in the success response and transmitted to the player 610.

5. Reset Media Data 과정은 엔진(623)이 RTMP 세션(622)을 통해 재생 위치가 이동된 부분부터 재생하기 위해 스트림 데이터를 재설정하는 과정일 수 있다.5. The Reset Media Data process may be a process in which the engine 623 resets stream data to reproduce from the portion where the playback position has been moved through the RTMP session 622. [

6. Send Media Data 과정 및 7. Send Media Data 과정은 엔진(623)이 재설정된 재생 위치부터 데이터를 플레이어(610)로 전송하는 과정일 수 있다.6. Send Media Data process and 7. Send Media Data process may be a process in which the engine 623 transmits data to the player 610 from the replayed position.

이러한 도 7의 실시예에서도 이처럼 타임머신 제어 프로토콜과 스트리밍 프로토콜이 완전히 분리되어 처리됨을 알 수 있다.Also in the embodiment of FIG. 7, it can be seen that the time machine control protocol and the streaming protocol are completely separated and processed.

도 8은 본 발명의 일실시예에 있어서, 일시 중지 요청 및 재개 요청을 처리하는 과정의 예를 도시한 흐름도이다.8 is a flowchart illustrating an example of a process of processing a suspend request and a resume request according to an exemplary embodiment of the present invention.

1. /pause 과정은 플레이어(610)가 재생 중인 방송에 대한 일시 중지 요청(/pause)을 제어 세션(621)을 통해 스트리밍 클라이언트(620)로 전송하는 과정일 수 있다.1. The / pause process may be a process in which the player 610 transmits a pause request (/ pause) for the broadcast being reproduced to the streaming client 620 through the control session 621. [

2. Pause 과정은 스트리밍 클라이언트(620)가 엔진(623)으로 일시 중지를 지시하는 과정일 수 있다.2. The pause process may be a process in which the streaming client 620 instructs the engine 623 to suspend.

3. ret:<cur_time> 과정은 엔진(623)이 일시 중지 요청(/pause)에 대한 처리 결과를 제공하는 과정일 수 있다. 여기서 "cur_time"은 현재 일시 중지된 재생 위치를 시간으로 표시한 값일 수 있다. 제어 세션은 "cur_time"을 저장 및 관리할 수 있다.3. ret: The <cur_time> process may be a process in which the engine 623 provides a processing result for a pause request (/ pause). Here, " cur_time " may be a value indicating the currently paused playback position in terms of time. The control session can store and manage " cur_time &quot;.

4. 200 OK는 스트리밍 클라이언트(620)가 일시 중지 요청(/pause)에 대한 성공 응답을 제어 세션(621)을 통해 플레이어(610)로 전송하는 과정일 수 있다.4. 200 OK may be the process by which the streaming client 620 sends a success response to the pause request (/ pause) to the player 610 via the control session 621.

5. Close Channel 과정은 엔진(623)이 채널을 종료하는 과정일 수 있다. 채널이 연결되어 있는 경우 일시 중지 상태에서도 데이터가 지속적으로 수신될 수 있고, 이는 모바일에서 네트워크 데이터 사용량에 영향을 미칠 수 있다. 따라서 본 실시예에서는 채널을 종료하여 데이터의 수신을 막을 수 있다.5. The Close Channel process may be the process by which the engine 623 terminates the channel. If the channel is connected, data can still be received in the paused state, which can affect network data usage on the mobile. Therefore, in this embodiment, the channel can be terminated to prevent reception of data.

6. Pause 과정은 플레이어(610)가 RTMP 세션(622)을 통해 스트리밍 프로토콜에 따라 스트리밍 클라이언트로 일시 중지를 요청하는 과정일 수 있다.6. The pause process may be a process in which the player 610 requests the streaming client to suspend through the RTMP session 622 according to the streaming protocol.

7. /resume 과정은 플레이어(610)가 일시 정지 중인 방송에 대해 재개 요청(/resume)을 제어 세션(621)을 통해 스트리밍 클라이언트(620)로 전송하는 과정일 수 있다.7. The resume process may be a process in which the player 610 transmits a resume request (/ resume) to the streaming client 620 via the control session 621 for the broadcast being paused.

8. Resume:< url, time> 과정은 제어 세션(621)에서 엔진(623)으로 "cur_time"에서부터 재생을 재개할 것을 요청하는 과정일 수 있다. "url"은 일시 중지가 요청된 방송의 URL에 대응될 수 있고, "time"은 제어 세션(621)이 저장 및 관리하는 "cur_time"에 대응될 수 있다.8. The Resume: < url, time > procedure may be a process of requesting the engine 623 to resume playback from " cur_time "" url " may correspond to the URL of the broadcast requested to be suspended, and " time " may correspond to " cur_time " stored and managed by the control session 621.

9. Create Channel 과정은 엔진(623)이 방송을 다시 재개하기 위해 채널을 생성하는 과정일 수 있다.9. The Create Channel process may be the process by which the engine 623 creates a channel to resume broadcasting.

10. ret:< resume_time> 과정은 엔진(623)이 재개 요청(/resume)에 대한 처리 결과를 제공하는 과정일 수 있다. 여기서 "resume_time"은 방송이 재개된 재생 위치에 대한 값을 나타낼 수 있다.10. ret: The < resume_time> process may be a process in which the engine 623 provides a processing result for a resume request (/ resume). Here, " resume_time " may represent a value for the playback position where the broadcast is resumed.

11. 200 OK 과정은 스트리밍 클라이언트(620)가 제어 세션(621)을 통해 재개 요청(/resume)에 대한 성공 응답을 플레이어(610)로 전송하는 과정일 수 있다. "resume _time"는 "cshift"에 대응될 수 있다.11. The 200 OK process may be a process in which the streaming client 620 transmits a success response to the resume request (/ resume) to the player 610 through the control session 621. [ "Resume _time" may correspond to "cshift".

12. Play<url> 과정은 플레이어(610)가 스트리밍 프로토콜을 이용하여 RTMP 세션(622)을 통해 스트리밍 클라이언트(620)로 방송의 재생을 요청하는 과정일 수 있다. 또한, 13. Create Channel 과정은 RTMP 세션(622)이 엔진(623)으로 채널을 생성할 것을 요청하는 과정일 수 있다.12. The Play < url > process may be a process in which the player 610 requests the streaming client 620 to play the broadcast through the RTMP session 622 using the streaming protocol. Also, the 13. Create Channel procedure may be a process in which the RTMP session 622 requests the engine 623 to create a channel.

도 9는 본 발명의 일실시예에 있어서, 딜리버리 서버의 내부 구성을 설명하기 위한 도면이다. 딜리버리 서버(330)는 앞서 설명한 바와 같이 패킷타이징 서버(320)로부터 피스들을 수신하여 피어들(스트리밍 클라이언트(351)를 포함하는 전자 기기들)로 전달할 수 있다. 또한, 딜리버리 서버(330)는 프로그램 관리 서버(950)로부터 프로그램 스케쥴을 수신하고, 수신한 프로그램 스케쥴에 따라 동작할 수 있다. 이를 위해, 딜리버리 서버(330)는 프로그램 모니터(910), 프로그램 매니저(920) 및 스트림 매니저(930)를 포함할 수 있다.9 is a diagram for explaining an internal configuration of a delivery server according to an embodiment of the present invention. The delivery server 330 can receive the pieces from the packetizing server 320 and deliver the pieces to the peers (electronic devices including the streaming client 351) as described above. In addition, the delivery server 330 may receive the program schedule from the program management server 950, and may operate according to the received program schedule. To this end, the delivery server 330 may include a program monitor 910, a program manager 920, and a stream manager 930.

프로그램 모니터(910)는 프로그램 관리 서버(950)로부터 방송 프로그램에 대한 스케쥴 정보로서 프로그램 스케쥴을 수집할 수 있다.The program monitor 910 can collect program schedules from the program management server 950 as schedule information for the broadcast programs.

프로그램 매니저(920)는 프로그램 스케쥴을 분석하여 특정 채널 또는 특정 방송 프로그램에 대해 타임머신 버퍼의 동작 여부를 결정할 수 있다. The program manager 920 may analyze program schedules to determine whether a time machine buffer is operational for a particular channel or for a particular broadcast program.

스트림 매니저(930)는 프로그램 매니저(920)의 분석 결과에 기반하여 특정 채널 또는 특정 방송 프로그램에 대한 타임머신 버퍼를 관리할 수 있다.The stream manager 930 can manage a time machine buffer for a specific channel or a specific broadcast program based on the analysis result of the program manager 920. [

예를 들어, 프로그램 매니저(920)는 현재 생중계 중인 방송 프로그램 A에 대한 타임머신 버퍼 B를 관리할 것을 스트림 매니저(930)로 요청할 수 있다. 이때, 스트림 매니저(930)는 패킷타이징 서버(320)가 전송하는 피스들 중 방송 프로그램 A에 대한 피스를 타임머신 버퍼 B에 저장하여 관리할 수 있다.For example, the program manager 920 may request the stream manager 930 to manage the time machine buffer B for the broadcast program A currently being broadcast. At this time, the stream manager 930 can store pieces of the program A among the pieces transmitted by the packetizing server 320 in the time machine buffer B and manage the pieces.

따라서 이러한 타임머신 버퍼 B에 저장된 피스들을 이용하여 스트리밍 클라이언트(351)는 방송 프로그램 A에 대한 타임머신 기능을 안정적으로 제공할 수 있게 된다. 또한, 딜리버리 서버(330) 관점에서는 모든 방송 프로그램이나 모든 채널들에 대한 타임머신 버퍼를 관리할 필요 없이, 현재 생중계 중이거나 타임머신 기능을 제공하고자 하는 방송 프로그램에 대해서만 타임머신 버퍼를 활용하여 보다 효율적으로 라이브 스트림 데이터를 관리할 수 있게 된다.Therefore, the streaming client 351 can stably provide the time machine function for the broadcast program A by using the pieces stored in the time machine buffer B. Also, from the viewpoint of the delivery server 330, it is not necessary to manage the time machine buffers for all the broadcast programs or all the channels, and only the live programs or the broadcast programs which are to provide the time machine functions are streamed to the live stream Data can be managed.

또한, 프로그램 매니저(920)에서 방송 프로그램에 대한 타임머신 버퍼의 동작 여부를 결정하고, 타임머신 버퍼를 사용하는 방송 프로그램에 대한 정보를 스트리밍 클라이언트(351)로 전송할 수 있다. 예를 들어, 프로그램 매니저(920)는 앞서 설명한 방송 키(programKey)를 스트리밍 클라이언트(351)로 전송하여 타임머신 버퍼를 활용 중인 방송 프로그램에 대한 정보를 사용자들에게 제공할 수 있게 된다.In addition, the program manager 920 determines whether or not the time machine buffer is operated for the broadcast program, and transmits the information about the broadcast program using the time machine buffer to the streaming client 351. For example, the program manager 920 may transmit the program key (programKey) to the streaming client 351 to provide information on a program in use to the time machine buffer to the users.

도 10은 본 발명의 일실시예에 있어서, 타임머신 버퍼의 활용 예를 도시한 도면이다. 도 10의 타임머신 버퍼들(1010 및 1020)은 하나의 타임머신 버퍼에서 복수의 프로그램들(프로그램 1, 2, 3)에 대한 스트림 데이터를 저장 및 관리하는 예를 나타내고 있다. 이때, 딜리버리 서버(330)는 하나의 타임머신 버퍼를 위한 스트림 데이터(피스들)를 앞서 설명한 프로그램 스케쥴에 기반하여 방송 프로그램 별로, 그리고 스트림별로 구분하여 저장 및 관리할 수 있다. 예를 들어 특정 방송 프로그램의 스트림 데이터들이 해당 방송 프로그램의 방송 키(programKey)에 매칭되어 저장될 수 있다.10 is a diagram illustrating an example of utilization of a time machine buffer in an embodiment of the present invention. The time machine buffers 1010 and 1020 in FIG. 10 illustrate an example of storing and managing stream data for a plurality of programs (programs 1, 2 and 3) in one time machine buffer. At this time, the delivery server 330 can store and manage the stream data (pieces) for one time machine buffer separately for each program and stream based on the program schedule described above. For example, stream data of a specific broadcast program may be matched to a broadcast key (programKey) of the corresponding broadcast program.

예를 들어, 일반적인 경우의 타임머신 버퍼(1010)는 프로그램 스케쥴에 기반하여(일례로 방송 시간 등) 프로그램 1을 위한 스트림 데이터와 프로그램 2를 위한 스트림 데이터를 구분할 수 있다. 따라서 일반적인 경우의 타임머신 버퍼(1010) 내의 스트림 데이터들 중 어느 스트림 데이터들이 프로그램 2에 대한 스트림 데이터들인지를 구분할 수 있고, 따라서 타임머신 기능을 이용하여 프로그램 2에 대해 과거의 어느 시점까지 재생 위치를 이동할 수 있는지를 명확히 파악할 수 있게 된다.For example, the time machine buffer 1010 in a general case can distinguish stream data for program 1 and stream data for program 2 based on a program schedule (e.g., broadcast time). Therefore, it is possible to distinguish which stream data among the stream data in the time machine buffer 1010 in the general case is stream data for the program 2, so that the playback position can be shifted to any point in the past for the program 2 by using the time machine function Or the like.

또한, 네트워크 상황에 따라 스트림 연결이 끊기거나 하는 경우, 예외적인 경우의 타임머신 버퍼(1020)와 같이 하나의 방송 프로그램에 대한 스트림 데이터가 복수의 스트림을 통해 제공되는 경우가 존재하게 된다. 예를 들어, 예외적인 경우의 타임머신 버퍼(1020)에서 프로그램 2는 재생 위치에 따라 각각 서로 다른 스트림인 스트림 1, 스트림 2 및 스트림 3을 통해 제공될 수 있다. 여기서 서로 다른 스트림은 서로 다른 채널에 대응될 수 있다. 따라서 프로그램 2에 대한 타임머신 기능에 따라 스트림 데이터를 제공할 때, 재생 위치에 따라 서로 다른 스트림으로 스트림 데이터를 제공할 수 있어야 한다. 본 실시예에 따른 타임머신 버퍼들(1010 및 1020)은 스트림 데이터(피스들)를 앞서 설명한 프로그램 스케쥴에 기반하여 방송 프로그램 별로, 그리고 스트림별로 구분하여 저장 및 관리할 수 있기 때문에 방송 프로그램별로 그리고 스트림별로 스트림 데이터를 정확하게 특정지을 수 있게 된다.Also, in the case where the stream connection is disconnected depending on the network situation, there is a case where stream data for one broadcast program is provided through a plurality of streams, such as the time machine buffer 1020 in an exceptional case. For example, in an exceptional case in the time machine buffer 1020, program 2 may be provided through stream 1, stream 2 and stream 3, respectively, which are different streams depending on the playback position. Here, different streams may correspond to different channels. Therefore, when providing the stream data according to the time machine function for the program 2, it is necessary to be able to provide the stream data to different streams according to the playback position. Since the time machine buffers 1010 and 1020 according to the present embodiment can store and manage stream data (pieces) on a program-by-stream and stream-by-stream basis based on the program schedule described above, The stream data can be precisely specified.

스트리밍 클라이언트(351)의 관점에서는 딜리버리 서버(330)로 요청하고자 하는 특정 방송 프로그램의 데이터 스트림 또는 특정 채널의 프로그램에 대한 데이터 스트림을 하나의 타임머신 버퍼로부터 정확하게 수신할 수 있게 된다.From the viewpoint of the streaming client 351, it is possible to correctly receive the data stream of the specific broadcast program requested by the delivery server 330 or the data stream of the program of the specific channel from one time machine buffer.

도 11은 본 발명의 일실시예에 있어서, 타임머신 기능을 이용하여 탐색을 진행하는 경우 미리보기 기능을 제공하는 화면의 예를 도시한 도면이다. 도 11은 라이브 스트리밍 서비스를 위한 디스플레이 화면(1100)의 예를 도시하고 있다. 디스플레이 화면(1100)에는 스트리밍되는 방송 프로그램에 대한 영상 화면(1110)이 제공될 수 있다. 디스플레이 화면(1100)의 바(1120)는 타임머신 기능에서 재생 위치를 지정하기 위한 사용자 인터페이스일 수 있다. 사용자가 바(1120)에서 특정 위치를 선택(일례로, PC 환경에서 바의 특정 위치에 마우스 오버)하는 경우, 선택된 위치와 관련된 미리보기 영상(1130)이 제공될 수 있다. 미리보기 영상(1130)은 선택된 프레임의 스냅샷 형태로 제공될 수 있다.11 is a view illustrating an example of a screen providing a preview function when a search is performed using a time machine function in an embodiment of the present invention. 11 shows an example of a display screen 1100 for a live streaming service. The display screen 1100 may be provided with a video screen 1110 for a broadcast program to be streamed. The bar 1120 of the display screen 1100 may be a user interface for designating a playback position in the time machine function. When the user selects a specific position in the bar 1120 (e.g., mouse over a specific position of the bar in the PC environment), a preview image 1130 related to the selected position may be provided. The preview image 1130 may be provided in the form of a snapshot of the selected frame.

이때 바(1120)의 영역은 복수의 구간들로 미리 분류될 수 있고, 미리보기 영상(1130)은 특정 위치를 포함하는 구간의 프레임들 중 첫 번째 프레임에 대응할 수 있다. 예를 들어 스트리밍 클라이언트는 사용자에 의해 선택된 위치가 바(1120)에 미리 설정된 복수의 구간들 중 특정 구간(1140)에 포함된 경우, 해당 위치에 정확하게 매칭하는 프레임을 찾는 것이 아니라, 특정 구간(1140)에 해당하는 프레임들 중 첫 번째 프레임인 프레임 1을 미리보기 영상(1130)으로서 제공할 수 있다. 따라서 생중계되는 방송 프로그램에서 타임머신 기능을 제공함에 있어서 이미 지나간 특정 프레임을 정확하게 찾을 필요 없이, 상대적으로 찾기 쉬운 구간의 첫 번째 프레임을 찾아 제공함으로써 연산량을 줄일 수 있게 된다.At this time, the area of the bar 1120 may be classified into a plurality of sections in advance, and the preview image 1130 may correspond to a first one of frames of a section including a specific position. For example, when the location selected by the user is included in the specific section 1140 among a plurality of sections preset in the bar 1120, the streaming client does not search for a frame that exactly matches the location, As a preview image 1130. In this case, as shown in FIG. Therefore, in providing a time machine function in a live broadcast program, it is possible to reduce the amount of calculation by finding and providing a first frame of a section that is relatively easy to find, without searching for a specific frame that has already been past.

도 12는 본 발명의 일실시예에 따른 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 도면이고, 도 13은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 타임머신 기능 제공 방법의 예를 도시한 흐름도이다.FIG. 12 is a diagram illustrating an example of components that a processor of an electronic device according to an embodiment of the present invention can include; FIG. 13 is a time machine function Fig. 2 is a flowchart showing an example of a method for providing a service;

도 12에 도시된 바와 같이 전자 기기 1(110)의 프로세서(212)는 구성요소들로서 스트리밍 세션 설정부(1210), 라이브 스트림 데이터 전송부(1220), 타임머신 제어 세션 설정부(1230) 및 타임머신 제어 요청 수신부(1240)를 포함할 수 있다. 이러한 프로세서(212) 및 프로세서(212)의 구성요소들은 도 13의 타임머신 기능 제공 방법이 포함하는 단계들(1310 내지 1360)을 수행하도록 전자 기기 1(110)을 제어할 수 있다. 이때, 프로세서(212) 및 프로세서(212)의 구성요소들은 메모리(211)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(212)의 구성요소들은 프로세서(212)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(212)가 상술한 명령에 따라 스트리밍 세션을 설정하도록 전자 기기 1(110)을 제어하는 동작의 기능적 표현으로서 스트리밍 세션 설정부(1210)가 사용될 수 있다.12, the processor 212 of the electronic device 110 includes components such as a streaming session setting unit 1210, a live stream data transmitting unit 1220, a time machine control session setting unit 1230, And a request receiving unit 1240. The components of the processor 212 and the processor 212 may control the first electronic device 110 to perform the steps 1310 to 1360 included in the method of providing the time machine function of FIG. At this time, the components of the processor 212 and the processor 212 may be implemented to execute instructions according to the code of the operating system and the code of at least one program that the memory 211 contains. Here, the components of the processor 212 may be representations of different functions performed by the processor 212. For example, the streaming session establisher 1210 may be used as a functional representation of the operation of the processor 212 to control the electronic device 1 (110) to establish a streaming session in accordance with the above-described command.

단계(1310)에서 프로세서(212)는 타임머신 기능 제공 방법을 위한 프로그램의 파일에 저장된 프로그램 코드를 메모리(211)에 로딩할 수 있다. 예를 들어, 전자 기기 1(110)에 설치된 프로그램이 구동되는 경우, 프로세서(212)는 프로그램의 파일로부터 프로그램 코드를 메모리(211)에 로딩하도록 전자 기기 1(110)을 제어할 수 있다.In step 1310, the processor 212 may load the program code stored in the file of the program for the time machine function providing method into the memory 211. [ For example, when the program installed in the electronic device 1 (110) is driven, the processor 212 can control the electronic device 1 (110) to load the program code from the file of the program into the memory 211.

이때, 프로세서(212) 및 프로세서(212)가 포함하는 스트리밍 세션 설정부(1210), 라이브 스트림 데이터 전송부(1220), 타임머신 제어 세션 설정부(1230) 및 타임머신 제어 요청 수신부(1240) 각각은 메모리(211)에 로딩된 프로그램 코드 중 대응하는 부분(대응하는 명령)을 실행하여 이후 단계들(1320 및 1360)을 실행할 수 있다. 단계들(1320 및 1360)의 실행을 위해, 프로세서(212) 및 프로세서(212)의 구성요소들은 전자 기기 1(110)을 제어할 수도 있다. 예를 들어, 프로세서(212)는 전자 기기 1(110)이 포함하는 통신 모듈(213)을 제어하여 전자 기기 1(110)이 다른 전자 기기나 다른 서버와 통신하도록 전자 기기 1(110)을 제어할 수 있다.The streaming session setting unit 1210, the live stream data transmitting unit 1220, the time machine control session setting unit 1230 and the time machine control request receiving unit 1240 included in the processor 212 and the processor 212 are connected to the memory (Corresponding command) of the program code loaded in the memory 211 to execute subsequent steps 1320 and 1360. [ For the execution of steps 1320 and 1360, the components of processor 212 and processor 212 may control electronic device 1 110. For example, the processor 212 controls the communication module 213 included in the electronic device 1 (110) to control the electronic device 1 (110) so that the electronic device 1 (110) communicates with another electronic device or another server can do.

단계(1320)에서 스트리밍 세션 설정부(1210)는 라이브 스트리밍 서비스를 제공하기 위해 전자 기기 1(110)에 설치된 스트리밍 클라이언트와 전자 기기 1(110)에 설치된 플레이어와의 스트리밍 세션을 설정할 수 있다. 스트리밍 클라이언트와 플레이어는 각각 어플리케이션으로서 전자 기기 1(110)에 설치 및 구동될 수 있다.The streaming session setting unit 1210 may set a streaming session between the streaming client installed in the first electronic device 110 and the player installed in the first electronic device 110 to provide a live streaming service in step 1320. [ The streaming client and the player can be installed and driven in the electronic device 1 (110) as an application, respectively.

단계(1330)에서 라이브 스트림 데이터 전송부(1220)는 스트리밍 클라이언트의 제어에 따라 네트워크를 통해 수신된 라이브 스트림 데이터를 스트리밍 세션을 통해 순차적으로 플레이어로 전송할 수 있다.In step 1330, the live stream data transmitting unit 1220 may transmit the live stream data received through the network to the player sequentially through the streaming session under the control of the streaming client.

단계(1340)에서 타임머신 제어 세션 설정부(1230)는 스트리밍 클라이언트와 플레이어간의 타임머신 제어 세션을 설정할 수 있다.In step 1340, the time machine control session establishment unit 1230 may establish a time machine control session between the streaming client and the player.

단계(1350)에서 타임머신 제어 요청 수신부(1240)는 스트리밍 클라이언트의 제어에 따라 타임머신 제어 세션을 통해 플레이어로부터 타임머신 제어 요청을 수신할 수 있다.In step 1350, the time machine control request receiving unit 1240 may receive a time machine control request from the player through the time machine control session under the control of the streaming client.

단계(1360)에서 라이브 스트림 데이터 전송부(1220)는 스트리밍 클라이언트의 제어에 따라 타임머신 제어 요청 중 재생 위치 정보를 포함하는 타임머신 제어 요청에 대응하는 채널의 라이브 스트림 데이터를 재생 위치 정보를 통해 특정되는 재생 위치부터 순차적으로 스트리밍 세션을 통해 플레이어로 전송할 수 있다.In step 1360, the live stream data transmitting unit 1220 transmits the live stream data of the channel corresponding to the time machine control request including the playback position information during the time machine control request under the control of the streaming client, And can be transmitted to the player through the streaming session sequentially from the position.

스트리밍 세션을 통한 상기 스트리밍 클라이언트와 플레이어간의 데이터 전송과 타임머신 제어 세션을 통한 스트리밍 클라이언트와 플레이어간의 데이터 전송은 서로 다른 별도의 프로토콜들에 따라 각각 진행될 수 있다.The data transmission between the streaming client and the player through the streaming session and the data transmission between the streaming client and the player through the time machine control session may be performed in accordance with different separate protocols.

다른 실시예에서 타임머신 기능 제공 방법은, 스트리밍 클라이언트에서 플레이어로부터 타임머신 제어 세션을 통해 인증 요청을 수신할 수 있다. 이때, 인증 요청은 라이브 스트림 데이터 또는 채널을 특정하기 위한 정보 및 인증 키를 포함할 수 있다. 이 경우, 타임머신 기능 제공 방법은, 인증 키를 이용하여 플레이어를 인증하고, 플레이어의 인증이 성공하는 경우, 타임머신 제어 세션에 대해 부여된 고유 값을 세션 키로서 인증 요청에 대한 응답에 포함하여 플레이어로 전송할 수 있다. 또한, 타임머신 기능 제공 방법은, 스트리밍 클라이언트에서 타임머신 제어 요청이 세션 키를 포함하는지 여부를 확인하여 타임머신 제어 요청을 인증할 수 있다. 또한, 타임머신 기능 제공 방법은, 스트리밍 클라이언트에서 전자 기기에 설치된 다른 플레이어로부터의 인증 요청에 따라 다른 플레이어가 인증되는 경우, 다른 플레이어와 설정된 타임머신 제어 세션에 대해 부여된 고유 값을 포함하는 세션 키를 상기 다른 플레이어로 전송하고, 기존 플레이어의 세션 키를 무효화할 수 있다.In another embodiment, a method for providing a time machine function may receive an authentication request from a player through a time machine control session in a streaming client. At this time, the authentication request may include information for specifying the live stream data or the channel, and an authentication key. In this case, the time machine function providing method includes the steps of authenticating the player using the authentication key and, when the player's authentication is successful, including a unique value given for the time machine control session as a session key in a response to the authentication request, Lt; / RTI &gt; In addition, the time machine function providing method may authenticate the time machine control request by checking whether the time machine control request includes the session key in the streaming client. Also, a method of providing a time machine function may further include the step of, when a streaming client authenticates another player based on an authentication request from another player installed in the electronic device, transmitting a session key including an eigenvalue assigned to the set time- To another player, and invalidate the session key of the existing player.

또 다른 실시예에서 타임머신 기능 제공 방법은, 스트리밍 클라이언트에서 플레이어로부터 타임머신 제어 세션을 통해 정보 획득 및 세션 유지 요청을 수신하고, 스트리밍 클라이언트에서 스트리밍 세션을 통해 플레이어로 제공중인 라이브 스트림 데이터에 대한 타임머신 시간 정보를 상기 정보 획득 및 세션 유지 요청에 대한 응답에 포함시켜 타임머신 세션을 통해 플레이어로 전송할 수 있다. 이때, 타임머신 시간 정보는, 라이브 스트림 데이터의 최신 데이터를 기준으로 과거 데이터를 탐색 가능한 정도를 나타내는 지표로서 라이브 스트림 데이터별로 기설정된 최대 시프트 가능 시간, 최신 데이터를 기준으로 현 시점에서 과거 데이터를 탐색 가능한 정도를 나타내는 지표인 현재 시프트 가능 시간 및 최신 데이터를 기준으로 타임머신 기능을 통해 현재 재생중인 과거 데이터를 특정하는 지표인 현재 시프트 시간을 포함할 수 있다.In yet another embodiment, a method for providing a time machine capability includes receiving information from a player over a time machine control session from a streaming client and receiving a session maintenance request, generating time machine time information for live stream data being provided by the streaming client to the player via a streaming session May be included in the response to the information acquisition and session maintenance request and transmitted to the player through the time machine session. At this time, the time machine time information is an indicator indicating the degree to which past data can be searched on the basis of the latest data of the live stream data, the maximum shiftable time predetermined for each live stream data, Which is an index indicating the degree of the current shift, and the current shift time, which is an index for specifying past data currently being reproduced through the time machine function based on the latest data.

또 다른 실시예에서 타임머신 기능 제공 방법은, 스트리밍 클라이언트에서 채널 식별 정보, 채널 식별 정보를 통해 식별되는 채널의 라이브 스트림 데이터 중 특정 방송의 라이브 스트림 데이터를 식별하기 위한 방송 키를 포함하는 재생 요청을 타임머신 제어 세션을 통해 수신할 수 있고, 스트리밍 클라이언트에서 채널 식별 정보를 통해 식별되는 채널의 라이브 스트림 데이터 중 방송 키를 통해 식별되는 라이오 스트림 데이터를 순차적으로 스트리밍 세션을 통해 플레이어로 전송할 수 있다. 이때, 라이브 스트림 데이터는 딜리버리 서버로부터 네트워크를 통해 전자 기기로 전송될 수 있고, 딜리버리 서버가 포함하는 타임머신 버퍼에서 라이브 스트림 데이터가 채널 식별 정보 및 방송 키를 이용하여 채널별로 그리고 방송별로 매칭되어 저장될 수 있다. 또한, 재생 요청은 타임머신 기능의 사용 여부, 식별된 라이브 스트림 데이터의 처음 재생 시작 위치, 채널을 일시 중지(pause) 상태로 시작할지 여부 중 적어도 하나에 대한 정보를 더 포함할 수 있다.According to another embodiment of the present invention, there is provided a method of providing a time machine function, the method comprising: providing a streaming client with a playback request including a channel identification information, a broadcast key for identifying live stream data of a specific broadcast among live stream data of a channel identified through channel identification information, And the streaming client can sequentially transmit the lyo stream data identified through the broadcasting key among the live stream data of the channel identified through the channel identification information to the player through the streaming session. At this time, the live stream data can be transmitted from the delivery server to the electronic device through the network, and the live stream data in the time machine buffer included in the delivery server is stored by being matched for each channel and for each broadcast using the channel identification information and the broadcast key . In addition, the playback request may further include information on at least one of whether or not to use the time machine function, an initial playback start position of the identified live stream data, and whether to start the channel in a pause state.

또 다른 실시예에서 타임머신 기능 제공 방법은, 스트리밍 클라이언트에서 일시 중지 요청을 타임머신 제어 세션을 통해 수신함에 따라 라이브 스트림 데이터에서 현재까지 재생된 위치를 저장하고, 라이브 스트림 데이터의 전송을 중지할 수 있고, 스트리밍 클라이언트에서 재개 요청을 타임머신 제어 세션을 통해 수신함에 따라 저장된 위치부터 라이브 스트림 데이터를 순차적으로 플레이어로 전송할 수 있다. 이때, 일시 중지 요청에 따라 상기 채널의 연결이 종료되고, 재개 요청에 따라 상기 채널의 연결이 다시 생성될 수 있다.In another embodiment, a method of providing a time machine function may include storing a position reproduced from the live stream data up to the present time, stopping transmission of live stream data as the streaming client receives a pause request through a time machine control session, As the streaming client receives the resume request through the time machine control session, the live stream data can be sequentially transmitted to the player from the stored location. At this time, the connection of the channel is terminated according to the pause request, and the connection of the channel can be regenerated according to the resume request.

또 다른 실시예에서 타임머신 기능 제공 방법은, 스트리밍 클라이언트에서 상기 타임머신 제어 요청에 대한 응답으로 라이브 스트림 데이터가 현재 방송 중인지 여부에 대한 온에어 정보 및 라이브 스트림 데이터의 최신 데이터를 기준으로 타임머신 기능을 통해 현재 재생중인 과거 데이터를 특정하는 지표인 현재 시프트 시간을 타임머신 제어 요청에 대한 응답으로 타임머신 제어 세션을 통해 상기 플레이어로 전송할 수 있다. 이때, 플레이어에서 온에어 정보 및 현재 시프트 시간의 조합을 통해 방송 종료 시점을 결정할 수 있다.In still another embodiment, a method for providing a time machine function includes the steps of: determining whether a live stream data is currently broadcasted in response to the time machine control request in a streaming client, The current shift time, which is an index that specifies the past data being transmitted, to the player via the time machine control session in response to the time machine control request. At this time, the player can determine the broadcasting end point through the combination of the on-air information and the current shift time.

도 12 및 도 13에서 생략된 내용은 도 1 내지 도 11을 참조할 수 있다.The contents omitted in FIGS. 12 and 13 can be referred to FIG. 1 to FIG.

이처럼 본 발명의 실시예들에 따르면, 타임머신 제어 프로토콜이 타임머신 기능에 대한 제어 역할만을 담당하고, 스트리밍 클라이언트와 플레이어간의 스트리밍 프로토콜은 플레이어에서 지원하는 스트리밍 규격을 그대로 이용할 수 있도록 구현할 수 있다. 또한, OS나 플레이어에 상관없이 동일한 규격을 이용하여 타임머신 기능을 제어할 수 있어 스트리밍 클라이언트의 플레이어에 대한 종속성을 제거할 수 있다.As described above, according to the embodiments of the present invention, the time machine control protocol only plays a role of controlling the time machine function, and the streaming protocol between the streaming client and the player can be implemented so that the streaming standard supported by the player can be used as it is. In addition, the time machine function can be controlled using the same standard regardless of the OS or the player, thereby eliminating the dependency on the player of the streaming client.

이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or apparatus described above may be implemented as a hardware component, a software component or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device As shown in FIG. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI &gt; or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (16)

전자 기기를 구현하는 컴퓨터와 결합하여 타임머신 기능 제공 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램에 있어서,
상기 타임머신 기능 제공 방법은,
라이브 스트리밍 서비스를 제공하기 위해 상기 전자 기기에 설치된 스트리밍 클라이언트가, 상기 전자 기기에 더 설치된 플레이어와의 스트리밍 세션을 설정하는 단계;
네트워크를 통해 상기 전자 기기가 수신한 라이브 스트림 데이터를, 상기 스트리밍 클라이언트가, 상기 스트리밍 세션을 통해 순차적으로 상기 플레이어로 전송하는 단계;
상기 스트리밍 클라이언트가, 상기 플레이어와의 타임머신 제어 세션을 설정하는 단계;
상기 스트리밍 클라이언트가, 상기 플레이어로부터 타임머신 제어 요청을 상기 타임머신 제어 세션을 통해 수신하는 단계; 및
상기 스트리밍 클라이언트가, 상기 타임머신 제어 요청 중 재생 위치 정보를 포함하는 타임머신 제어 요청에 대응하는 채널의 라이브 스트림 데이터를, 상기 재생 위치 정보를 통해 특정되는 재생 위치부터 순차적으로 상기 스트리밍 세션을 통해 상기 플레이어로 전송하는 단계
를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
A computer program stored in a computer-readable recording medium for executing a method of providing a time machine function in combination with a computer embodying an electronic apparatus,
The time machine function providing method includes:
A streaming client installed in the electronic device for providing a live streaming service establishes a streaming session with a player further installed in the electronic device;
Transmitting, by the streaming client, live stream data received by the electronic device through the network to the player sequentially through the streaming session;
The streaming client establishing a time machine control session with the player;
The streaming client receiving a time machine control request from the player through the time machine control session; And
The streaming client transmits live stream data of a channel corresponding to a time machine control request including playback position information during the time machine control request to the player through the streaming session sequentially from a playback position specified through the playback position information Steps to transfer
And a computer program product.
제1항에 있어서,
상기 스트리밍 세션을 통한 상기 스트리밍 클라이언트와 상기 플레이어간의 데이터 전송과 상기 타임머신 제어 세션을 통한 상기 스트리밍 클라이언트와 상기 플레이어간의 데이터 전송은 서로 다른 별도의 프로토콜들에 따라 각각 진행되는 것을 특징으로 하는 컴퓨터 프로그램.
The method according to claim 1,
Wherein data transmission between the streaming client and the player through the streaming session and data transmission between the streaming client and the player through the time machine control session are performed according to different separate protocols.
제1항에 있어서,
상기 타임머신 기능 제공 방법은,
상기 스트리밍 클라이언트가, 상기 플레이어로부터 상기 타임머신 제어 세션을 통해 정보 획득 및 세션 유지 요청을 수신하는 단계; 및
상기 스트리밍 클라이언트가, 상기 스트리밍 세션을 통해 상기 플레이어로 제공중인 라이브 스트림 데이터에 대한 타임머신 시간 정보를 상기 정보 획득 및 세션 유지 요청에 대한 응답에 포함시켜 상기 타임머신 제어 세션을 통해 상기 플레이어로 전송하는 단계
를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
The method according to claim 1,
The time machine function providing method includes:
The streaming client receiving information acquisition and session maintenance requests from the player through the time machine control session; And
The streaming client includes time machine time information on live stream data being provided to the player through the streaming session in response to the information acquisition and session maintenance request and transmitting the time machine time information to the player through the time machine control session
And a computer program product.
제3항에 있어서,
상기 타임머신 시간 정보는, 상기 라이브 스트림 데이터의 최신 데이터를 기준으로 과거 데이터를 탐색 가능한 정도를 나타내는 지표로서 상기 라이브 스트림 데이터별로 기설정된 최대 시프트 가능 시간, 상기 최신 데이터를 기준으로 현 시점에서 과거 데이터를 탐색 가능한 정도를 나타내는 지표인 현재 시프트 가능 시간 및 상기 최신 데이터를 기준으로 타임머신 기능을 통해 현재 재생중인 과거 데이터를 특정하는 지표인 현재 시프트 시간을 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
The method of claim 3,
The time machine time information includes a predetermined maximum shift allowable time for each of the live stream data as an index indicating a degree to which past data can be searched based on the latest data of the live stream data, A current shift time which is an index indicating an extent of searchability, and a current shift time which is an index that specifies past data currently being played back through the time machine function based on the latest data.
제1항에 있어서,
상기 타임머신 기능 제공 방법은,
상기 스트리밍 클라이언트가, 채널 식별 정보, 상기 채널 식별 정보를 통해 식별되는 채널의 라이브 스트림 데이터 중 특정 방송의 라이브 스트림 데이터를 식별하기 위한 방송 키를 포함하는 재생 요청을 상기 타임머신 제어 세션을 통해 수신하는 단계; 및
상기 스트리밍 클라이언트가, 상기 채널 식별 정보를 통해 식별되는 채널의 라이브 스트림 데이터 중 상기 방송 키를 통해 식별되는 라이오 스트림 데이터를 순차적으로 상기 스트리밍 세션을 통해 상기 플레이어로 전송하는 단계
를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
The method according to claim 1,
The time machine function providing method includes:
The streaming client receiving a playback request through the time machine control session, the playback request including channel identification information and a broadcast key for identifying live stream data of a specific broadcast among live stream data of a channel identified through the channel identification information; ; And
The streaming client sequentially transmitting the lyo stream data identified through the broadcasting key among the live stream data of the channel identified through the channel identification information to the player through the streaming session
&Lt; / RTI &gt;
제5항에 있어서,
상기 라이브 스트림 데이터는 딜리버리 서버로부터 네트워크를 통해 상기 전자 기기로 전송되고,
상기 딜리버리 서버가 포함하는 타임머신 버퍼에서 상기 라이브 스트림 데이터가 상기 채널 식별 정보 및 상기 방송 키를 이용하여 채널별로 그리고 방송별로 매칭되어 저장되는 것을 특징으로 하는 컴퓨터 프로그램.
6. The method of claim 5,
Wherein the live stream data is transmitted from the delivery server to the electronic device via a network,
Wherein the live stream data in the time machine buffer included in the delivery server is stored for each channel and for each broadcast using the channel identification information and the broadcast key.
제5항에 있어서,
상기 재생 요청은 타임머신 기능의 사용 여부, 식별된 라이브 스트림 데이터의 처음 재생 시작 위치, 채널을 일시 중지(pause) 상태로 시작할지 여부 중 적어도 하나에 대한 정보를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
6. The method of claim 5,
Wherein the playback request further comprises information on at least one of whether to use the time machine function, the first playback start position of the identified live stream data, and whether to start the channel in a pause state.
제1항에 있어서,
상기 타임머신 기능 제공 방법은,
상기 스트리밍 클라이언트가, 일시 중지 요청을 상기 타임머신 제어 세션을 통해 수신함에 따라 상기 라이브 스트림 데이터에서 현재까지 재생된 위치를 저장하고, 상기 라이브 스트림 데이터의 전송을 중지하는 단계; 및
상기 스트리밍 클라이언트가, 재개 요청을 상기 타임머신 제어 세션을 통해 수신함에 따라 상기 저장된 위치부터 상기 라이브 스트림 데이터를 순차적으로 상기 플레이어로 전송하는 단계
를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
The method according to claim 1,
The time machine function providing method includes:
Storing the reproduced position in the live stream data as the streaming client receives the pause request through the time machine control session and stopping transmission of the live stream data; And
The streaming client sequentially transmitting the live stream data from the stored location to the player as the streaming client receives the resume request through the time machine control session
&Lt; / RTI &gt;
제8항에 있어서,
상기 일시 중지 요청에 따라 상기 채널의 연결이 종료되고, 상기 재개 요청에 따라 상기 채널의 연결이 다시 생성되는 것을 특징으로 하는 컴퓨터 프로그램.
9. The method of claim 8,
The connection of the channel is terminated according to the suspend request, and the connection of the channel is regenerated according to the resume request.
제1항에 있어서,
상기 타임머신 기능 제공 방법은,
상기 스트리밍 클라이언트에서 상기 타임머신 제어 요청에 대한 응답으로 상기 라이브 스트림 데이터가 현재 방송 중인지 여부에 대한 온에어 정보 및 상기 라이브 스트림 데이터의 최신 데이터를 기준으로 타임머신 기능을 통해 현재 재생중인 과거 데이터를 특정하는 지표인 현재 시프트 시간을 상기 타임머신 제어 요청에 대한 응답으로 상기 타임머신 제어 세션을 통해 상기 플레이어로 전송하는 단계
를 더 포함하고,
상기 플레이어에서 상기 온에어 정보 및 상기 현재 시프트 시간의 조합을 통해 방송 종료 시점을 결정하는 것을 특징으로 하는 컴퓨터 프로그램.
The method according to claim 1,
The time machine function providing method includes:
Wherein the streaming client determines whether or not the live stream data is currently being broadcasted in response to the time machine control request and an indicator for specifying past data currently being reproduced through the time machine function based on the latest data of the live stream data Transmitting a current shift time to the player via the time machine control session in response to the time machine control request
Further comprising:
Wherein the player determines a broadcast end point through a combination of the on-air information and the current shift time.
컴퓨터로 구현된 전자 기기의 타임머신 기능 제공 방법에 있어서,
라이브 스트리밍 서비스를 제공하기 위해 상기 전자 기기에 설치된 스트리밍 클라이언트가, 상기 전자 기기에 더 설치된 플레이어와의 스트리밍 세션을 설정하는 단계;
네트워크를 통해 상기 전자 기기가 수신한 라이브 스트림 데이터를, 상기 스트리밍 클라이언트가, 상기 스트리밍 세션을 통해 순차적으로 상기 플레이어로 전송하는 단계;
상기 스트리밍 클라이언트가, 상기 플레이어와의 타임머신 제어 세션을 설정하는 단계;
상기 스트리밍 클라이언트가, 상기 플레이어로부터 타임머신 제어 요청을 상기 타임머신 제어 세션을 통해 수신하는 단계; 및
상기 스트리밍 클라이언트가, 상기 타임머신 제어 요청 중 재생 위치 정보를 포함하는 타임머신 제어 요청에 대응하는 채널의 라이브 스트림 데이터를, 상기 재생 위치 정보를 통해 특정되는 재생 위치부터 순차적으로 상기 스트리밍 세션을 통해 상기 플레이어로 전송하는 단계
를 포함하는 것을 특징으로 하는 타임머신 기능 제공 방법.
A method of providing a time machine function of a computer-implemented electronic device,
A streaming client installed in the electronic device for providing a live streaming service establishes a streaming session with a player further installed in the electronic device;
Transmitting, by the streaming client, live stream data received by the electronic device through the network to the player sequentially through the streaming session;
The streaming client establishing a time machine control session with the player;
The streaming client receiving a time machine control request from the player through the time machine control session; And
The streaming client transmits live stream data of a channel corresponding to a time machine control request including playback position information during the time machine control request to the player through the streaming session sequentially from a playback position specified through the playback position information Steps to transfer
The method comprising the steps of:
제11항에 있어서,
상기 스트리밍 세션을 통한 상기 스트리밍 클라이언트와 상기 플레이어간의 데이터 전송과 상기 타임머신 제어 세션을 통한 상기 스트리밍 클라이언트와 상기 플레이어간의 데이터 전송은 서로 다른 별도의 프로토콜들에 따라 각각 진행되는 것을 특징으로 하는 타임머신 기능 제공 방법.
12. The method of claim 11,
Wherein the data transmission between the streaming client and the player through the streaming session and the data transmission between the streaming client and the player through the time machine control session are performed according to different separate protocols, .
제11항에 있어서,
상기 스트리밍 클라이언트가, 상기 플레이어로부터 상기 타임머신 제어 세션을 통해 정보 획득 및 세션 유지 요청을 수신하는 단계; 및
상기 스트리밍 클라이언트가, 상기 스트리밍 세션을 통해 상기 플레이어로 제공중인 라이브 스트림 데이터에 대한 타임머신 시간 정보를 상기 정보 획득 및 세션 유지 요청에 대한 응답에 포함시켜 상기 타임머신 제어 세션을 통해 상기 플레이어로 전송하는 단계
를 포함하는 것을 특징으로 하는 타임머신 기능 제공 방법.
12. The method of claim 11,
The streaming client receiving information acquisition and session maintenance requests from the player through the time machine control session; And
The streaming client includes time machine time information on live stream data being provided to the player through the streaming session in response to the information acquisition and session maintenance request and transmitting the time machine time information to the player through the time machine control session
The method comprising the steps of:
제11항에 있어서,
상기 스트리밍 클라이언트가, 채널 식별 정보, 상기 채널 식별 정보를 통해 식별되는 채널의 라이브 스트림 데이터 중 특정 방송의 라이브 스트림 데이터를 식별하기 위한 방송 키를 포함하는 재생 요청을 상기 타임머신 제어 세션을 통해 수신하는 단계; 및
상기 스트리밍 클라이언트가, 상기 채널 식별 정보를 통해 식별되는 채널의 라이브 스트림 데이터 중 상기 방송 키를 통해 식별되는 라이오 스트림 데이터를 순차적으로 상기 스트리밍 세션을 통해 상기 플레이어로 전송하는 단계
를 더 포함하는 것을 특징으로 하는 타임머신 기능 제공 방법.
12. The method of claim 11,
The streaming client receiving a playback request through the time machine control session, the playback request including channel identification information and a broadcast key for identifying live stream data of a specific broadcast among live stream data of a channel identified through the channel identification information; ; And
The streaming client sequentially transmitting the lyo stream data identified through the broadcasting key among the live stream data of the channel identified through the channel identification information to the player through the streaming session
The method of claim 1, further comprising:
제11항에 있어서,
상기 스트리밍 클라이언트가, 일시 중지 요청을 상기 타임머신 제어 세션을 통해 수신함에 따라 상기 라이브 스트림 데이터에서 현재까지 재생된 위치를 저장하고, 상기 라이브 스트림 데이터의 전송을 중지하는 단계; 및
상기 스트리밍 클라이언트가, 재개 요청을 상기 타임머신 제어 세션을 통해 수신함에 따라 상기 저장된 위치부터 상기 라이브 스트림 데이터를 순차적으로 상기 플레이어로 전송하는 단계
를 더 포함하는 것을 특징으로 하는 타임머신 기능 제공 방법.
12. The method of claim 11,
Storing the reproduced position in the live stream data as the streaming client receives the pause request through the time machine control session and stopping transmission of the live stream data; And
The streaming client sequentially transmitting the live stream data from the stored location to the player as the streaming client receives the resume request through the time machine control session
The method of claim 1, further comprising:
제11항에 있어서,
상기 스트리밍 클라이언트가, 상기 타임머신 제어 요청에 대한 응답으로 상기 라이브 스트림 데이터가 현재 방송 중인지 여부에 대한 온에어 정보 및 상기 라이브 스트림 데이터의 최신 데이터를 기준으로 타임머신 기능을 통해 현재 재생중인 과거 데이터를 특정하는 지표인 현재 시프트 시간을 상기 타임머신 제어 요청에 대한 응답으로 상기 타임머신 제어 세션을 통해 상기 플레이어로 전송하는 단계
를 더 포함하고,
상기 플레이어에서 상기 온에어 정보 및 상기 현재 시프트 시간의 조합을 통해 방송 종료 시점을 결정하는 것을 특징으로 하는 타임머신 기능 제공 방법.
12. The method of claim 11,
Wherein the streaming client transmits on-air information on whether the live stream data is currently broadcasted in response to the time machine control request and an indicator for specifying past data currently being reproduced through the time machine function based on the latest data of the live stream data To the player via the time machine control session in response to the time machine control request
Further comprising:
Wherein the player determines a broadcast end point through a combination of the on-air information and the current shift time.
KR1020160164303A 2016-12-05 2016-12-05 Method and system for providing time machine function in live broadcast KR101783723B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160164303A KR101783723B1 (en) 2016-12-05 2016-12-05 Method and system for providing time machine function in live broadcast

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160164303A KR101783723B1 (en) 2016-12-05 2016-12-05 Method and system for providing time machine function in live broadcast

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020150174153A Division KR101722673B1 (en) 2015-12-08 2015-12-08 Method and system for providing time machine function in live broadcast

Publications (2)

Publication Number Publication Date
KR20170067654A KR20170067654A (en) 2017-06-16
KR101783723B1 true KR101783723B1 (en) 2017-10-11

Family

ID=59278569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160164303A KR101783723B1 (en) 2016-12-05 2016-12-05 Method and system for providing time machine function in live broadcast

Country Status (1)

Country Link
KR (1) KR101783723B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102089854B1 (en) * 2018-05-24 2020-03-16 주식회사 알로이스 Multimedia device and method for providing time machine function of broadcast stream using over the top service

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101192966B1 (en) * 2012-06-05 2012-10-19 (주)티비스톰 A user interface rendering apparatus for playing broadcast programs and the method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101192966B1 (en) * 2012-06-05 2012-10-19 (주)티비스톰 A user interface rendering apparatus for playing broadcast programs and the method thereof

Also Published As

Publication number Publication date
KR20170067654A (en) 2017-06-16

Similar Documents

Publication Publication Date Title
KR101722673B1 (en) Method and system for providing time machine function in live broadcast
US8190683B2 (en) Synchronizing multiple user remote content playback
US11350139B2 (en) Video live broadcast method and apparatus
US8239546B1 (en) Global access control for segmented streaming delivery
US10326662B2 (en) System and method for managing playback of streaming digital content
EP3323246B1 (en) Using temporary credentials in guest mode
JP2004013283A (en) Method and apparatus for distributing content
US20140137168A1 (en) Transmitting apparatus, control method for transmitting apparatus, control program, and recording medium
KR20210047933A (en) Video screen projection method and apparatus, computer equipment, and storage media
CN101427316A (en) Multicasting multimedia content distribution system
US20210289255A1 (en) Synchronization of media content across multiple participant devices
CN104811773A (en) Hotlinking prevention-based channel playing implementation method, system and equipment
TR201815759T4 (en) Manage playback of non-stop digital content.
KR101899576B1 (en) Timing synchronization method and timing synchronization system for remote controlling of multimedia content
CN109996024A (en) A kind of exchange method and device
EP3085063B1 (en) Managing streaming in home media network having a home gateway and a plurality of devices
US20050240676A1 (en) Method for playing multimedia data and a system of enabling the method
KR101783723B1 (en) Method and system for providing time machine function in live broadcast
KR20170067448A (en) Method and system for managing sliding window for time machine function
CN113129933A (en) Terminal display control method, device, equipment and computer readable storage medium
JP5973683B1 (en) Authentication server, user terminal, content server, control method therefor, and computer program
KR101949494B1 (en) Method and system for providing remote operation tool for multimedia content
US11870830B1 (en) Embedded streaming content management
KR101865627B1 (en) Method and system for providing remote operation tool for multimedia content
KR101859560B1 (en) Timing synchronization method and timing synchronization system for remote controlling of multimedia content

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant