KR102287429B1 - 스트리밍 서비스를 통한 동영상 출력 방법 및 장치 - Google Patents
스트리밍 서비스를 통한 동영상 출력 방법 및 장치 Download PDFInfo
- Publication number
- KR102287429B1 KR102287429B1 KR1020200012766A KR20200012766A KR102287429B1 KR 102287429 B1 KR102287429 B1 KR 102287429B1 KR 1020200012766 A KR1020200012766 A KR 1020200012766A KR 20200012766 A KR20200012766 A KR 20200012766A KR 102287429 B1 KR102287429 B1 KR 102287429B1
- Authority
- KR
- South Korea
- Prior art keywords
- segment
- server
- video
- playlist
- user terminal
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000004891 communication Methods 0.000 description 12
- 230000003139 buffering effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
스트리밍 서비스를 이용하여 동영상을 출력하기 위해, 제1 세그먼트의 다음 세그먼트인 제2 세그먼트의 파일 이름을 결정하고, 제2 세그먼트의 파일 이름에 기초하여 제2 세그먼트의 요청 메시지를 동영상을 제공하는 서버로 전송하고, 제2 세그먼트를 서버로부터 수신하고, 동영상의 제1 부분의 출력이 종료된 경우, 제2 세그먼트에 기초하여 동영상의 제2 부분을 출력한다.
Description
아래의 실시예들은 사용자 단말에서 동영상을 출력하는 기술에 관한 것으로, 구체적으로 스트리밍 서비스를 통해 동영상을 출력하는 기술에 관한 것이다.
스트리밍 서비스는 재생 지연 시간을 줄이기 위해 서버가 동영상의 전체 파일을 한번에 사용자 단말로 전송하기 않고, 동영상의 일부 구간에 대한 세그먼트들을 연속적으로 전송하는 서비스를 의미한다. 스트리밍 서비스에서는 주기적으로 세그먼트들을 전송하기 위해, 다소 데이터 레이트의 손실이 있더라도 실시간으로 전송할 수 있는 프로토콜이 요구된다. 대표적으로 HTTP 기반 프로토콜(예를 들어, HLS, MPEG-DASH, CMAF)이 있다.
스트리밍 프로토콜을 이용하여 서버와 사용자 단말 간에 데이터를 교환하기 위해서는 동영상 출력에 필요한 셋업을 해야 하고, 셋업을 마친 다음 세그먼트가 사용자 단말로 전송되는 과정을 거친다. 이후, 버퍼링이 수행되고, 세그먼트에 기초하여 동영상이 재생된다.
일 실시예는 세그먼트에 기초하여 동영상을 출력하는 방법 및 장치를 제공할 수 있다.
일 실시예는 세그먼트의 파일 이름에 기초하여 서버에 세그먼트를 요청하고, 이에 기초하여 동영상을 출력하는 방법 및 장치를 제공할 수 있다.
일 측면에 따른, 사용자 단말에 의해 수행되는 스트리밍 서비스를 이용하여 동영상을 출력하는 방법은, 제1 세그먼트에 기초하여 상기 동영상의 제1 부분을 출력하는 단계, 상기 제1 세그먼트의 다음 세그먼트인 제2 세그먼트의 파일 이름을 결정하는 단계, 미리 설정된 시각에 상기 제2 세그먼트의 파일 이름에 기초하여 상기 제2 세그먼트의 요청 메시지를 상기 동영상을 제공하는 서버로 전송하는 단계, 상기 제2 세그먼트를 상기 서버로부터 수신하는 단계, 및 상기 동영상의 제1 부분의 출력이 종료된 경우, 상기 제2 세그먼트에 기초하여 상기 동영상의 제2 부분을 출력하는 단계를 포함한다.
상기 제1 세그먼트의 상기 제1 부분은 0.5 초 이내일 수 있다.
상기 동영상 출력 방법은, 상기 동영상에 대한 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계, 상기 플레이리스트를 상기 서버로부터 수신하는 단계, 상기 플레이리스트에 기초하여 상기 제1 세그먼트의 요청 메시지를 상기 서버로 전송하는 단계, 및 상기 제1 세그먼트를 상기 서버로부터 수신하는 단계를 더 포함할 수 있다.
상기 플레이리스트는 가장 최근에 생성된 세그먼트의 파일 이름을 포함할 수 있다.
상기 플레이리스트는 미리 설정된 개수의 세그먼트의 파일 이름들을 포함할 수 있다.
상기 동영상에 대한 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계는, 상기 제1 세그먼트의 수신이 실패한 경우, 상기 동영상에 대한 갱신된 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계를 포함할 수 있다.
상기 동영상 출력 방법은, 상기 제2 세그먼트를 수신한 후 상기 제2 세그먼트 보다 최신인 제3 세그먼트가 존재하는지 여부를 상기 서버를 통해 확인하는 단계, 상기 제3 세그먼트가 존재하는 경우 상기 제3 세그먼트의 요청 메시지를 상기 서버로 전송하는 단계, 상기 제3세그먼트를 상기 서버로부터 수신하는 단계, 및 상기 제3 세그먼트에 기초하여 상기 동영상의 제3 부분을 출력하는 단계를 더 포함할 수 있다.
다른 일 측면에 따른, 사용자 단말은, 스트리밍 서비스를 이용하여 동영상을 출력하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 제1 세그먼트에 기초하여 상기 동영상의 제1 부분을 출력하는 단계, 상기 제1 세그먼트의 다음 세그먼트인 제2 세그먼트의 파일 이름을 결정하는 단계, 미리 설정된 시각에 상기 제2 세그먼트의 파일 이름에 기초하여 상기 제2 세그먼트의 요청 메시지를 상기 동영상을 제공하는 서버로 전송하는 단계, 상기 제2 세그먼트를 상기 서버로부터 수신하는 단계, 및 상기 동영상의 제1 부분의 출력이 종료된 경우, 상기 제2 세그먼트에 기초하여 상기 동영상의 제2 부분을 출력하는 단계를 수행한다.
상기 제1 세그먼트의 상기 제1 부분은 0.5 초 이내일 수 있다.
상기 프로그램은, 상기 동영상에 대한 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계, 상기 플레이리스트를 상기 서버로부터 수신하는 단계, 상기 플레이리스트에 기초하여 상기 제1 세그먼트의 요청 메시지를 상기 서버로 전송하는 단계, 및 상기 제1 세그먼트를 상기 서버로부터 수신하는 단계를 더 수행할 수 있다.
상기 플레이리스트는 가장 최근에 생성된 세그먼트의 파일 이름을 포함할 수 있다.
상기 플레이리스트는 미리 설정된 개수의 세그먼트의 파일 이름들을 포함할 수 있다.
상기 동영상에 대한 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계는, 상기 제1 세그먼트의 수신이 실패한 경우, 상기 동영상에 대한 갱신된 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계를 포함할 수 있다.
상기 프로그램은, 상기 제2 세그먼트를 수신한 후 상기 제2 세그먼트 보다 최신인 제3 세그먼트가 존재하는지 여부를 상기 서버를 통해 확인하는 단계, 상기 제3 세그먼트가 존재하는 경우 상기 제3 세그먼트의 요청 메시지를 상기 서버로 전송하는 단계, 상기 제3세그먼트를 상기 서버로부터 수신하는 단계, 및 상기 제3 세그먼트에 기초하여 상기 동영상의 제3 부분을 출력하는 단계를 더 수행할 수 있다.
도 1은 일 예에 따른 스트리밍 서비스를 제공하는 시스템의 구성도이다.
도 2는 일 실시예에 따른 사용자 단말의 구성도이다.
도 3은 일 실시예에 따른 동영상을 출력하는 방법의 흐름도이다.
도 4는 일 예에 따른 동영상에 대한 복수의 세그먼트들을 도시한다.
도 5는 일 예에 따른 플레이리스트에 기초하여 서버로부터 세그먼트를 수신하는 방법의 흐름도이다.
도 6은 일 예에 따른 최신 세그먼트가 존재하는지 여부를 확인하고, 이에 기초하여 동영상을 출력하는 방법의 흐름도이다.
도 2는 일 실시예에 따른 사용자 단말의 구성도이다.
도 3은 일 실시예에 따른 동영상을 출력하는 방법의 흐름도이다.
도 4는 일 예에 따른 동영상에 대한 복수의 세그먼트들을 도시한다.
도 5는 일 예에 따른 플레이리스트에 기초하여 서버로부터 세그먼트를 수신하는 방법의 흐름도이다.
도 6은 일 예에 따른 최신 세그먼트가 존재하는지 여부를 확인하고, 이에 기초하여 동영상을 출력하는 방법의 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 예에 따른 스트리밍 서비스를 제공하는 시스템의 구성도이다.
사용자에게 스트리밍 서비스를 제공하는 시스템은 서버(110) 및 사용자 단말(120)을 포함한다. 서버(110)는 스트리밍 서비스를 통해 동영상을 사용자 단말(120)로 제공하기 위해 동영상에 대한 복수의 세그먼트들을 생성한다. 예를 들어, 스포츠 중계와 같은 실시간 동영상을 제공하기 위해 미리 설정된 시간에 대한 새로운 세그먼트가 계속적으로 생성될 수 있다. 서버(110)는 사용자 단말(120)로 새로운 세그먼트를 전송하고, 사용자 단말(120)은 새로운 세그먼트를 수신함으로써 새로운 세그먼트에 대응하는 실시간 동영상을 출력할 수 있다.
일 측면에 따르면, 서버(110)는 생성된 하나 이상의 세그먼트들의 파일 이름들을 포함하는 플레이리스트를 사용자 단말(120)로 제공하고, 사용자 단말(120)은 플레이리스트에 기초하여 타겟 세그먼트의 전송을 요청할 수 있다. 예를 들어, 타겟 세그먼트는 플레이리스트의 가장 최신의 세그먼트 또는 그 이전의 세그먼트일 수 있다.
동영상을 연속적으로 출력하기 위해, 사용자 단말(120)이 새로운 세그먼트를 서버로(110)로 요청해야 하는데, 이 과정에서 반복적으로 플레이리스트의 교환이 수행된다. 플레이리스트의 교환이 최소화 또는 생략될 수 있다면, 동영상 출력의 지연 시간이 감소될 수 있다.
아래에서 도 2 내지 도 6을 참조하여, 플레이리스트의 교환을 최소화 또는 생략하는 동영상 출력 방법이 상세히 설명된다.
도 2는 일 실시예에 따른 사용자 단말의 구성도이다.
사용자 단말(200)은 통신부(210), 프로세서(220) 및 메모리(230)를 포함한다. 예를 들어, 사용자 단말(200)는 도 1을 참조하여 설명된 사용자 단말(120)일 수 있다. 사용자 단말(120)은 개인용 컴퓨터(personal computer: PC) 및 스마트 폰(smart phone)과 이동 단말을 포함할 수 있고, 기재된 실시예로 한정되지 않는다.
통신부(210)는 프로세서(220) 및 메모리(230)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.
통신부(210)는 사용자 단말(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 사용자 단말(200)과 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.
프로세서(220)는 통신부(210)가 수신한 데이터 및 메모리(230)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.
메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 동영상을 출력할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.
일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.
메모리(230)는 사용자 단말(200)을 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 사용자 단말(200)을 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.
통신부(210), 프로세서(220) 및 메모리(230)에 대해, 아래에서 도 3 내지 도 6을 참조하여 상세히 설명된다.
도 3은 일 실시예에 따른 동영상을 출력하는 방법의 흐름도이다.
아래의 단계들(310 내지 350)은 도 2를 참조하여 전술된 사용자 단말(200)에 의해 수행된다.
단계(310)에서, 사용자 단말(200)은 제1 세그먼트에 기초하여 동영상의 제1 부분을 출력한다. 제1 세그먼트는 동영상에 대해 생성된 복수의 세그먼트들 중 하나이고, 복수의 세그먼트들을 생성하는 서버(120)로부터 수신된 세그먼트일 수 있다. 예를 들어, 복수의 세그먼트들의 각각에 의해 출력되는 동영상의 일부분은 0.5초 이내일 수 있다.
일 측면에 따르면, 제1 세그먼트는 플레이리스트에 기초하여 사용자 단말(200)이 수신한 세그먼트일 수 있다. 플레이리스트에 기초하여 제1 세그먼트를 수신하는 방법에 대해, 아래에서 도 5를 참조하여 상세히 설명된다.
다른 일 측면에 따르면, 제1 세그먼트는 제1 세그먼트의 이전 세그먼트의 파일 이름에 기초하여 사용자 단말(200)이 수신한 세그먼트일 수 있다. 세그먼트의 파일 이름에 기초하여 세그먼트를 수신하는 방법에 관한 설명은 단계들(320 내지 340)을 참조하여 상세히 설명된다.
단계(320)에서, 사용자 단말(200)은 제1 세그먼트의 다음 세그먼트인 제2 세그먼트의 파일 이름을 결정한다. 예를 들어, 사용자 단말(200)은 최초에 수신한 플레이리스트에 포함된 세그먼트들의 파일 이름들에 기초하여 제2 세그먼트의 파일 이름을 결정할 수 있다.
일반적으로, 연속적인 세그먼트들은 일정한 규칙을 갖는 파일 이름들을 가질 수 있다. 예를 들어, 세그먼트들의 파일 이름들은 규칙적으로 증가하는 숫자를 포함할 수 있다. 이에 기초하여, 사용자 단말(200)은 제1 세그먼트의 다음 세그먼트인 제2 세그먼트의 파일 이름을 결정할 수 있다.
단계(330)에서, 사용자 단말(200)은 제2 세그먼트의 파일 이름에 기초하여 제2 세그먼트의 요청 메시지를 서버로 전송한다. 사용자 단말(200)은 서버와 플레이리스트를 교환하지 않고, 새로운 세그먼트인 제2 세그먼트를 서버로 요청할 수 있다.
사용자 단말(200)은 미리 설정된 시각에 제2 세그먼트의 요청 메시지를 서버로 전송할 수 있다. 예를 들어, 사용자 단말(200)은 동영상의 제1 부분의 출력이 종료되기 전에 제2 세그먼트의 요청 메시지를 서버로 전송할 수 있다.
단계(340)에서, 사용자 단말(200)은 제2 세그먼트를 서버로부터 수신한다.
단계(350)에서, 사용자 단말(200)은 동영상의 제1 부분의 출력이 종료된 경우 제2 세그먼트에 기초하여 동영상의 제2 부분을 출력한다.
일 측면에 따르면, 제1 부분의 남은 시간이 미리 설정된 이하임에도 제2 세그먼트가 수신되지 않은 경우, 제1 부분의 출력이 버퍼링을 위해 중단될 수 있다. 예를 들어, 제1 부분의 남은 시간이 0.01초 이하인 경우 버퍼링이 발생될 수 있다. 제2 세그먼트가 수신된 경우, 제1 부분의 남은 부분(예를 들어, 0.01초)이 출력되고, 연속적으로 제2 세그먼트에 대응하는 제2 부분이 출력될 수 있다.
버퍼링이 발생하지 않은 경우에는 제1 부분에 이어서 연속적으로 제2 부분이 출력될 수 있다.
단계들(310 내지 350)이 반복적으로 수행됨으로써 사용자 단말(200)은 다음 세그먼트들을 수신하고, 이에 기초하여 동영상을 연속적으로 출력할 수 있다. 사용자 단말(200) 및 서버 간의 플레이리스트 교환을 최소화함으로써 플레이리스트 교환에 의해 발생하는 시간 지연을 감소시킬 수 있다.
도 4는 일 예에 따른 동영상에 대한 복수의 세그먼트들을 도시한다.
실시간 동영상(400)은 복수의 세그먼트들(410, 420, 430)에 기초하여 제공될 수 있다. 복수의 세그먼트들(410, 420, 430) 중 세그먼트들(410 및 420)는 동영상의 과거 부분에 대응하고, 세그먼트(430)는 동영상의 현재 부분에 대응한다. 복수의 세그먼트들(410, 420, 430)의 각각은 미리 설정된 시간 구간에 대응하므로, 세그먼트(430)는 현재 시각이 미리 설정된 미래 시각에 도달된 경우 생성된다. 세그먼트(430)가 생성되기 전까지는 세그먼트(420)가 가장 최신의 세그먼트로 취급된다.
플레이리스트는 최신의 세그먼트를 포함하는 미리 설정된 개수의 세그먼트들의 파일 이름을 포함할 수 있다. 세그먼트(430)가 새롭게 생성된 경우, 세그먼트(430)의 파일 이름을 포함하도록 플레이리스트가 갱신될 수 있다.
도 3을 참조한 실시예에서, 사용자 단말(200)은 플레이리스트를 참조하지 않고도 세그먼트(420)(예를 들어, 제1 세그먼트)의 파일 이름에 기초하여 세그먼트(430)(예를 들어, 제2 세그먼트)의 파일 이름을 결정하고, 세그먼트(430)의 전송을 서버에 요청할 수 있다.
도 5는 일 예에 따른 플레이리스트에 기초하여 서버로부터 세그먼트를 수신하는 방법의 흐름도이다.
일 측면에 따른, 아래의 단계들(510 내지 540)은 도 3을 참조하여 전술된 단계(310)가 수행되기 전에 수행될 수 있다. 예를 들어, 단계들(510 내지 540)은 사용자 단말(200)이 동영상에 대한 세그먼트를 최초로 서버에 요청하기 위해 수행될 수 있다.
단계(510)에서, 사용자 단말(200)은 동영상에 대한 플레이리스트의 요청 메시지를 서버로 전송한다. 예를 들어, 서버가 실시간 동영상을 제공하고 있는 중간에, 사용자 단말(200)이 스트리밍 서비스를 요청하기 위해 동영상에 대한 플레이리스트의 요청 메시지를 서버로 전송할 수 있다.
단계(520)에서, 사용자 단말(200)은 플레이리스트를 서버로부터 수신한다.
단계(530)에서, 사용자 단말(200)은 플레이리스트에 기초하여 제1 세그먼트의 요청 메시지를 서버로 전송한다. 예를 들어, 제1 세그먼트는 가장 최신 세그먼트일 수 있다.
단계(540)에서, 사용자 단말(200)은 제1 세그먼트를 서버로부터 수신한다.
제1 세그먼트가 수신되지 않은 경우, 단계(510)가 재 수행될 수 있다.
단계(510)에서, 사용자 단말(200)은 제1 세그먼트의 수신이 실패한 경우, 동영상에 대한 갱신된 플레이리스트의 요청 메시지를 서버로 전송할 수 있다.
새롭게 생성된 세그먼트가 존재하는 경우, 플레이리스트는 갱신될 수 있고, 사용자 단말(200)은 제1 세그먼트로서 새롭게 생성된 세그먼트의 전송을 요청할 수 있다.
도 6은 일 예에 따른 최신 세그먼트가 존재하는지 여부를 확인하고, 이에 기초하여 동영상을 출력하는 방법의 흐름도이다.
일 측면에 따르면, 아래의 단계들(610 내지 640)은 도 3을 참조하여 전술된 단계(340)가 수행된 후 추가적으로 수행될 수 있다.
단계(610)에서, 사용자 단말(200)은 제2 세그먼트를 수신한 후 제2 세그먼트 보다 최신인 제3 세그먼트가 존재하는지 여부를 서버를 통해 확인한다.
단계(620)에서, 사용자 단말(200)은 제3 세그먼트가 존재하는 경우 제3 세그먼트의 요청 메시지를 서버로 전송한다.
단계(630)에서, 사용자 단말(200)은제3세그먼트를 서버로부터 수신한다.
단계(640)에서, 사용자 단말(200)은 제3 세그먼트에 기초하여 동영상의 제3 부분을 출력한다.
단계들(610 내지 630)은 세그멘트의 전송 지연 등에 의해 동영상의 출력이 지연되어, 사용자 단말(200)에 전송되지 않는 새로운 세그먼트들이 발생하는 경우, 동영상 출력의 실시간 성을 높이기 위해 수행될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
200: 사용자 단말
210: 통신부
220: 프로세서
230: 메모리
210: 통신부
220: 프로세서
230: 메모리
Claims (15)
- 사용자 단말에 의해 수행되는 스트리밍 서비스를 이용하여 동영상을 출력하는 방법은,
상기 동영상에 대한 플레이리스트의 요청 메시지를 서버로 전송하는 단계;
상기 플레이리스트를 상기 서버로부터 수신하는 단계;
상기 플레이리스트에 기초하여 제1 세그먼트의 요청 메시지를 상기 서버로 전송하는 단계; 및
상기 제1 세그먼트를 상기 서버로부터 수신하는 단계;
상기 제1 세그먼트에 기초하여 상기 동영상의 제1 부분을 출력하는 단계;
상기 제1 세그먼트의 다음 세그먼트인 제2 세그먼트의 파일 이름을 결정하는 단계 - 상기 제2 세그먼트의 파일 이름은 상기 서버로부터 수신한 상기 플레이리스트에 존재하지 않음 -;
미리 설정된 시각에 상기 제2 세그먼트의 파일 이름에 기초하여 상기 제2 세그먼트의 요청 메시지를 상기 동영상을 제공하는 서버로 전송하는 단계;
상기 제2 세그먼트를 상기 서버로부터 수신하는 단계; 및
상기 동영상의 제1 부분의 출력이 종료된 경우, 상기 제2 세그먼트에 기초하여 상기 동영상의 제2 부분을 출력하는 단계
를 포함하는,
동영상 출력 방법.
- 제1항에 있어서,
상기 제1 세그먼트의 상기 제1 부분은 0.5 초 이내인,
동영상 출력 방법.
- 삭제
- 제1항에 있어서,
상기 플레이리스트는 가장 최근에 생성된 세그먼트의 파일 이름을 포함하는,
동영상 출력 방법.
- 제1항에 있어서,
상기 플레이리스트는 미리 설정된 개수의 세그먼트의 파일 이름들을 포함하는,
동영상 출력 방법.
- 제1항에 있어서,
상기 동영상에 대한 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계는,
상기 제1 세그먼트의 수신이 실패한 경우, 상기 동영상에 대한 갱신된 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계
를 포함하는,
동영상 출력 방법.
- 제1항에 있어서,
상기 제2 세그먼트를 수신한 후 상기 제2 세그먼트 보다 최신인 제3 세그먼트가 존재하는지 여부를 상기 서버를 통해 확인하는 단계 - 상기 제3 세그먼트의 파일 이름은 상기 서버로부터 수신한 상기 플레이리스트에 존재하지 않음 -;
상기 제3 세그먼트가 존재하는 경우 상기 제3 세그먼트의 요청 메시지를 상기 서버로 전송하는 단계;
상기 제3 세그먼트를 상기 서버로부터 수신하는 단계; 및
상기 제3 세그먼트에 기초하여 상기 동영상의 제3 부분을 출력하는 단계
를 더 포함하는,
동영상 출력 방법.
- 제1항, 제2항 및 제4항 내지 제7항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
- 사용자 단말은,
스트리밍 서비스를 이용하여 동영상을 출력하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
상기 동영상에 대한 플레이리스트의 요청 메시지를 서버로 전송하는 단계;
상기 플레이리스트를 상기 서버로부터 수신하는 단계;
상기 플레이리스트에 기초하여 제1 세그먼트의 요청 메시지를 상기 서버로 전송하는 단계; 및
상기 제1 세그먼트를 상기 서버로부터 수신하는 단계;
상기 제1 세그먼트에 기초하여 상기 동영상의 제1 부분을 출력하는 단계;
상기 제1 세그먼트의 다음 세그먼트인 제2 세그먼트의 파일 이름을 결정하는 단계 - 상기 제2 세그먼트의 파일 이름은 상기 서버로부터 수신한 상기 플레이리스트에 존재하지 않음 -;
미리 설정된 시각에 상기 제2 세그먼트의 파일 이름에 기초하여 상기 제2 세그먼트의 요청 메시지를 상기 동영상을 제공하는 서버로 전송하는 단계;
상기 제2 세그먼트를 상기 서버로부터 수신하는 단계; 및
상기 동영상의 제1 부분의 출력이 종료된 경우, 상기 제2 세그먼트에 기초하여 상기 동영상의 제2 부분을 출력하는 단계
를 수행하는,
사용자 단말.
- 제9항에 있어서,
상기 제1 세그먼트의 상기 제1 부분은 0.5 초 이내인,
사용자 단말.
- 삭제
- 제9항에 있어서,
상기 플레이리스트는 가장 최근에 생성된 세그먼트의 파일 이름을 포함하는,
사용자 단말.
- 제9항에 있어서,
상기 플레이리스트는 미리 설정된 개수의 세그먼트의 파일 이름들을 포함하는,
사용자 단말.
- 제9항에 있어서,
상기 동영상에 대한 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계는,
상기 제1 세그먼트의 수신이 실패한 경우, 상기 동영상에 대한 갱신된 플레이리스트의 요청 메시지를 상기 서버로 전송하는 단계
를 포함하는,
사용자 단말.
- 제9항에 있어서,
상기 프로그램은,
상기 제2 세그먼트를 수신한 후 상기 제2 세그먼트 보다 최신인 제3 세그먼트가 존재하는지 여부를 상기 서버를 통해 확인하는 단계 - 상기 제3 세그먼트의 파일 이름은 상기 서버로부터 수신한 상기 플레이리스트에 존재하지 않음 -;
상기 제3 세그먼트가 존재하는 경우 상기 제3 세그먼트의 요청 메시지를 상기 서버로 전송하는 단계;
상기 제3 세그먼트를 상기 서버로부터 수신하는 단계; 및
상기 제3 세그먼트에 기초하여 상기 동영상의 제3 부분을 출력하는 단계
를 더 수행하는,
사용자 단말.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200012766A KR102287429B1 (ko) | 2020-02-03 | 2020-02-03 | 스트리밍 서비스를 통한 동영상 출력 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200012766A KR102287429B1 (ko) | 2020-02-03 | 2020-02-03 | 스트리밍 서비스를 통한 동영상 출력 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102287429B1 true KR102287429B1 (ko) | 2021-08-06 |
Family
ID=77315059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200012766A KR102287429B1 (ko) | 2020-02-03 | 2020-02-03 | 스트리밍 서비스를 통한 동영상 출력 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102287429B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140054400A (ko) * | 2011-08-31 | 2014-05-08 | 퀄컴 인코포레이티드 | 적응형 http 스트리밍을 위한 표현들 사이에서 개선된 스위칭을 제공하는 스위칭 시그널링 방법들 |
KR20160083675A (ko) * | 2015-01-02 | 2016-07-12 | 에스케이텔레콤 주식회사 | 라이브 스트리밍 컨텐츠 제공 방법, 이를 위한 라이브 스트리밍 캐시 장치 및 이를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체 |
KR20170051395A (ko) * | 2014-03-12 | 2017-05-11 | 경희대학교 산학협력단 | 가변 비트율 미디어 전송을 위한 보장 비트율 반환 방법 및 장치 |
KR20190067557A (ko) * | 2017-12-07 | 2019-06-17 | 네이버 주식회사 | 지연 생중계를 위한 방법 및 시스템 |
-
2020
- 2020-02-03 KR KR1020200012766A patent/KR102287429B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140054400A (ko) * | 2011-08-31 | 2014-05-08 | 퀄컴 인코포레이티드 | 적응형 http 스트리밍을 위한 표현들 사이에서 개선된 스위칭을 제공하는 스위칭 시그널링 방법들 |
KR20170051395A (ko) * | 2014-03-12 | 2017-05-11 | 경희대학교 산학협력단 | 가변 비트율 미디어 전송을 위한 보장 비트율 반환 방법 및 장치 |
KR20160083675A (ko) * | 2015-01-02 | 2016-07-12 | 에스케이텔레콤 주식회사 | 라이브 스트리밍 컨텐츠 제공 방법, 이를 위한 라이브 스트리밍 캐시 장치 및 이를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체 |
KR20190067557A (ko) * | 2017-12-07 | 2019-06-17 | 네이버 주식회사 | 지연 생중계를 위한 방법 및 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6490654B2 (ja) | 生放送でタイムマシン機能を提供する方法およびシステム | |
US9706371B2 (en) | Push notification middleware | |
US9769239B2 (en) | Systems and methods for user agent signaling request acceleration by transport accelerator | |
CN111309279B (zh) | 多屏互动显示方法及装置 | |
CN111954051B (zh) | 传输视频音频数据的方法、系统、云端服务器和存储介质 | |
US8824676B2 (en) | Streaming video to cellular phones | |
KR20200023485A (ko) | 프록시 기반 네트워크 통신들에서의 제어 데이터의 전송 | |
US20110138016A1 (en) | Dynamic local function binding apparatus and method | |
CN110401858B (zh) | 一种视频播放方法、装置、电子设备及存储介质 | |
US11757854B2 (en) | Secure stream buffer on network attached storage | |
US10609105B2 (en) | System and method for streaming music on mobile devices | |
US20200322659A1 (en) | Distributed transcoding method and distributed transcoding system | |
US20220167043A1 (en) | Method and system for playing streaming content | |
JP6587997B6 (ja) | タイムマシン機能のためのスライディングウィンドウ管理方法およびシステム | |
WO2020155961A1 (zh) | 视频请求方法、系统、计算机设备及计算机可读存储介质 | |
US10674188B2 (en) | Playback apparatus, method of controlling playback apparatus, playback method and server apparatus | |
KR102287429B1 (ko) | 스트리밍 서비스를 통한 동영상 출력 방법 및 장치 | |
US11838560B2 (en) | Method and system for playing back streaming content using local streaming server | |
KR102126018B1 (ko) | 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷 | |
CN112933611A (zh) | 云游戏进度分享方法、装置和电子设备 | |
EP2080322B1 (en) | Method and apparatus for command synchronization | |
KR102432376B1 (ko) | 콘텐츠 재생 방법 및 시스템 | |
US10547645B1 (en) | Public-private computing system | |
CN113905243A (zh) | 直播方法、装置、网络节点和存储介质 | |
KR20210065568A (ko) | 사용자 단말의 정보 수신 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |