KR20200119310A - 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들 - Google Patents

매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들 Download PDF

Info

Publication number
KR20200119310A
KR20200119310A KR1020207026227A KR20207026227A KR20200119310A KR 20200119310 A KR20200119310 A KR 20200119310A KR 1020207026227 A KR1020207026227 A KR 1020207026227A KR 20207026227 A KR20207026227 A KR 20207026227A KR 20200119310 A KR20200119310 A KR 20200119310A
Authority
KR
South Korea
Prior art keywords
segment
sequence number
request
url
identified
Prior art date
Application number
KR1020207026227A
Other languages
English (en)
Other versions
KR102428194B1 (ko
Inventor
트리스탄 쉬멜처
윌리엄 씨와이알
토마스 데위세
닐스 크란스토에버
매튜 칼슨
파웰 주르크지크
토마스 딩거
제프리 카로우
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020227026318A priority Critical patent/KR102643665B1/ko
Publication of KR20200119310A publication Critical patent/KR20200119310A/ko
Application granted granted Critical
Publication of KR102428194B1 publication Critical patent/KR102428194B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26291Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-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/4722End-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 additional data associated with the content
    • H04N21/4725End-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 additional data associated with the content using interactive regions of the image, e.g. hot spots
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • H04L65/4084
    • H04L65/4092
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing 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 involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들이 제공된다. 일부 실시예들에서, 그 방법은, 사용자 디바이스로부터, 복수의 포맷들로 제공되는 라이브 스트림의 포맷 ― 라이브 스트림은 복수의 포맷들 중 각각의 포맷을 위한 복수의 세그먼트들을 포함하고 복수의 세그먼트들 중 각각의 세그먼트는 각자의 시퀀스 번호를 포함함 ― 에 대응하는 URL에 대한 요청을 수신하는 단계; 요청된 URL에 기초하여 라이브 스트림의 특정 세그먼트에 대해 요청을 해결하는 단계 ― 해결하는 단계는, 그 URL에 기초하여 복수의 포맷들로부터 요청에 연관된 라이브 스트림의 포맷을 식별하는 단계; 그 URL에 기초하여 요청에 연관된 시퀀스 번호를 식별하는 단계; 및 복수의 세그먼트들 중 식별된 포맷에 대응하는 그리고 식별된 시퀀스 번호에 매칭되는 시퀀스 번호를 갖는 세그먼트를 식별하는 단계를 포함함 ―; 특정 세그먼트에 대응하는 세그먼트 파일을 로딩하는 단계; 및 요청에 응답하여 세그먼트 파일을 사용자 디바이스로 반환하는 단계를 포함한다.

Description

매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들
관련 출원에 대한 상호 참조
본 출원은 2018년 9월 17일자로 출원된 미국 특허 가출원 제62/732,567호를 우선권 주장하며, 이는 그 전부가 본 명세서에 참조로 포함된다.
기술분야
개시된 주제는 매니페스트리스(manifestless) 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들에 관한 것이다.
디지털 미디어 콘텐츠 공유 및 인터넷 네트워킹의 개발은 사용자 경험을 향상시키기 위해 많은 특징들을 가능하게 하였다. 예를 들어, 인터넷 상에서, 콘텐츠 호스팅 웹사이트들과 콘텐츠 공유 서비스들은 사용자들이 디지털 미디어 콘텐츠를 업로드, 관람, 및 공유하는 것을 허용하며, 디지털 미디어 콘텐츠는 오디오/음악 클립들, 비디오 클립들, 및 오디오 및 비디오 콘텐츠의 조합을 포함할 수 있다. 관람자가 콘텐츠 공유 서버로부터 관람 디바이스에 재생을 위해 스트리밍되는 미디어 콘텐츠를 볼 수 있다. 미디어 콘텐츠의 재생을 방해하는 버퍼링을 방지하기 위해, 콘텐츠는 HTTP 라이브 스트리밍(HTTP Live Streaming)(HLS)과 같이 적응적 비트레이트 프로토콜로 스트리밍될 수 있다.
HLS는 다양한 컴퓨팅 디바이스들 상에서의 재생을 위해 웹 서버로부터 HTTP를 통해 오디오 및 비디오를 스트리밍하기 위한 네트워크 프로토콜이며, 스트리밍 콘텐츠의 품질은 관람 디바이스의 네트워크 연결에 의존하여 변경될 수 있다. 그러나, 미디어를 스트리밍하기 위한 현존 HLS 기반 접근법들은 다수의 도전과제들에 직면한다. 하나의 도전과제는 높은 레이턴시이다. 예를 들어, 현존 HLS 기반 접근법들은 클라이언트 디바이스가 임의의 비디오 콘텐츠를 플레이할 수 있기 전에 콘텐츠 공유 서버에 대해 세 번의 라운드 트립들을 하는 것을 클라이언트 디바이스에 요구한다. 세 번의 라운드 트립들은 마스터 플레이리스트를 페치하기 위한 트립, 미디어 플레이리스트를 위한 다른 트립, 및 초기 미디어 세그먼트를 위한 또 다른 트립을 포함한다. 이러한 요건은 특히 라운드 트립 시간(round trip time)(RTT)이 이를테면 무선 네트워크들에서 높은 상황들에서 콘텐츠 재생을 위한 레이턴시를 실질적으로 증가시킨다.
HLS 또는 HTTP 통한 동적 적응적 스트리밍(Dynamic Adaptive Streaming over HTTP)(DASH)과 같은 스트리밍 미디어 재생을 위한 현존 접근법들은, 클라이언트에 의해 사용되는 미디어 플레이어가 스트림 선택을 지원하지 않을 때 스트림 선택에 걸쳐 클라이언트 제어가 또한 부족하다. 예를 들어, HLS 프로토콜을 사용하여 스트리밍 비디오를 위해 이러한 미디어 플레이어를 사용하는 클라이언트들이 어떤 미디어 세그먼트들을 페치할지와 언제 미디어 세그먼트들을 페치할지를 제어할 수 없다. 스트리밍 비디오가 다수의 비트레이트들 또는 해상도들에서 이용 가능하면, 클라이언트들은 마스터 플레이리스트 URL을 미디어 플레이어에 제공하는데 요구되며, 마스터 플레이리스트는 이용 가능한 모든 미디어 플레이리스트들을 포함하며, 미디어 플레이리스트들의 각각은 특정 비트레이트 또는 해상도의 스트리밍 비디오의 표현에 대응한다. 재생 동안, 미디어 플레이어는 재생을 위해 선택할 스트리밍 비디오의 표현을 결정한다.
더욱이, 스트리밍 비디오 콘텐츠 재생을 위한 현존 접근법들은 라이브 비디오 스트리밍을 지원하는데 효율적이지 않다. 스트리밍 미디어의 라이브 재생들 동안, 현존 HLS 기반 스트리밍 비디오 접근법들의 클라이언트는 새로운 미디어 세그먼트들에 대해 수 초마다 라이브 플레이리스트를 다시 페치하는 것이 요구된다. 특히, 이들 프로토콜들은 클라이언트들이 스트리밍 미디어의 새로운 미디어 세그먼트들을 발견하기 위해 주기적으로 다운로드해야만 하는 매니페스트 파일을 통합한다. 주기적 매니페스트 다운로드 및 세그먼트 사이즈는 이들 프로토콜들에서의 단 대 단 레이턴시 제한들의 예들이다.
따라서, 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 새로운 방법들, 시스템들, 및 매체들을 제공하는 것이 바람직하다.
매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들이 제공된다. ("매니페스트리스" 스트리밍 미디어 콘텐츠에 의하면 스트리밍 미디어 콘텐츠의 전달이 클라이언트가 매니페스트 파일을 다운로드할 필요 없이 유효하게 된다는 것을 의미한다.)
개시된 주제의 일부 실시예들에 따라, 라이브 스트리밍 콘텐츠를 전달하기 위한 방법이 제공되며, 그 방법은, 사용자 디바이스로부터, 복수의 포맷들로 제공되는 라이브 스트림의 포맷 ― 라이브 스트림은 복수의 포맷들 중 각각의 포맷을 위한 복수의 세그먼트들을 포함하고 복수의 세그먼트들 중 각각의 세그먼트는 각자의 시퀀스 번호를 포함함 ― 에 대응하는 URL에 대한 요청을 수신하는 단계; 요청된 URL에 기초하여 라이브 스트림의 특정 세그먼트에 대해 요청을 해결하는 단계 ― 해결하는 단계는, 요청된 URL에 기초하여 복수의 포맷들로부터 요청에 연관된 라이브 스트림의 포맷을 식별하는 단계; 요청된 URL에 기초하여 요청에 연관된 시퀀스 번호를 식별하는 단계; 및 복수의 세그먼트들 중 식별된 포맷에 대응하는 그리고 식별된 시퀀스 번호에 매칭되는 시퀀스 번호를 갖는 세그먼트를 식별하는 단계를 포함함 ―; 특정 세그먼트에 대응하는 세그먼트 파일을 로딩하는 단계; 및 요청에 응답하여 세그먼트 파일을 사용자 디바이스로 반환하는 단계를 포함한다.
일부 실시예들에서, URL은 기본 URL을 포함하고, 요청에 연관된 라이브 스트림의 포맷은 기본 URL에 기초하여 복수의 포맷들로부터 식별된다.
일부 실시예들에서, 세그먼트 파일은 식별된 시퀀스 번호를 나타내는 메타데이터를 포함한다.
일부 실시예들에서, 시퀀스 번호는 하나 이상의 세그먼트들의 재생에 이용 가능한 가장 최근의 세그먼트에 대한 현재 헤드 시퀀스 번호를 결정함으로써 식별되며, 식별된 시퀀스 번호는 현재 헤드 시퀀스 번호이고 식별된 세그먼트는 재생을 위해 이용 가능한 가장 최근의 세그먼트이다.
일부 실시예들에서, 시퀀스 번호는 URL에 기초하여 로딩하는데 이용 가능한 가장 최근 완료 세그먼트에 대한 시퀀스 번호보다 더 큰 요청에 연관된 시퀀스 번호를 식별함으로써 식별된다.
일부 실시예들에서, 그 방법은 세그먼트 파일의 하나 이상의 부분들이 생성되고 있을 때 하나 이상의 부분들을 반복적으로 로딩하는 단계; 및 단일 응답으로 생성된 하나 이상의 부분들을 사용자 디바이스에 반복적으로 반환하는 단계를 더 포함한다.
개시된 주제의 일부 실시예들에 따라, 라이브 스트리밍 콘텐츠를 전달하기 위한 시스템이 제공되며, 그 시스템은, 메모리; 및 메모리에 커플링되는 하드웨어 프로세서를 포함하며, 하드웨어 프로세서는, 사용자 디바이스로부터, 복수의 포맷들로 제공되는 라이브 스트림의 포맷 ― 라이브 스트림은 복수의 포맷들 중 각각의 포맷을 위한 복수의 세그먼트들을 포함하고 복수의 세그먼트들 중 각각의 세그먼트는 각자의 시퀀스 번호를 포함함 ― 에 대응하는 URL에 대한 요청을 수신하는 것; 요청된 URL에 기초하여 라이브 스트림의 특정 세그먼트에 대해 요청을 해결하는 것 ― 해결하는 것은, 요청된 URL에 기초하여 복수의 포맷들로부터 요청에 연관된 라이브 스트림의 포맷을 식별하는 것; 요청된 URL에 기초하여 요청에 연관된 시퀀스 번호를 식별하는 것; 및 복수의 세그먼트들 중 식별된 포맷에 대응하는 그리고 식별된 시퀀스 번호에 매칭되는 시퀀스 번호를 갖는 세그먼트를 식별하는 것을 포함함 ―; 특정 세그먼트에 대응하는 세그먼트 파일을 로딩하는 것; 및 요청에 응답하여 세그먼트 파일을 사용자 디바이스로 반환하는 것을 하도록 구성된다.
개시된 주제의 일부 실시예들에 따라, 비일시적 컴퓨터 판독가능 매체는 컴퓨터 실행가능 명령들을 포함하며, 컴퓨터 실행가능 명령들은, 프로세서에 의해 실행될 때, 프로세서로 하여금, 라이브 스트리밍 콘텐츠를 전달하기 위한 방법을 수행하게 하며, 그 방법은, 사용자 디바이스로부터, 복수의 포맷들로 제공되는 라이브 스트림의 포맷 ― 라이브 스트림은 복수의 포맷들 중 각각의 포맷을 위한 복수의 세그먼트들을 포함하고 복수의 세그먼트들 중 각각의 세그먼트는 각자의 시퀀스 번호를 포함함 ― 에 대응하는 URL에 대한 요청을 수신하는 단계; 요청된 URL에 기초하여 라이브 스트림의 특정 세그먼트에 대해 요청을 해결하는 단계 ― 해결하는 단계는, 요청된 URL에 기초하여 복수의 포맷들로부터 요청에 연관된 라이브 스트림의 포맷을 식별하는 단계; 요청된 URL에 기초하여 요청에 연관된 시퀀스 번호를 식별하는 단계; 및 복수의 세그먼트들 중 식별된 포맷에 대응하는 그리고 식별된 시퀀스 번호에 매칭되는 시퀀스 번호를 갖는 세그먼트를 식별하는 단계를 포함함 ―; 특정 세그먼트에 대응하는 세그먼트 파일을 로딩하는 단계; 및 요청에 응답하여 세그먼트 파일을 사용자 디바이스로 반환하는 단계를 포함한다. 개시된 주제의 추가의 실시예들에 따라, 컴퓨터 판독가능 매체가 제공되는데, 이는 일시적 컴퓨터 판독가능 매체 또는 비일시적 컴퓨터 판독가능 매체일 수 있다. 컴퓨터 판독가능 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금 라이브 스트리밍 콘텐츠를 전달하기 위한 임의의 양태 또는 실시예에 따른 방법을 수행하게 하는 컴퓨터 실행가능 명령들을 포함한다.
개시된 주제의 일부 실시예들에 따라, 라이브 스트리밍 콘텐츠를 전달하기 위한 시스템이 제공되며, 그 시스템은, 사용자 디바이스로부터, 복수의 포맷들로 제공되는 라이브 스트림의 포맷 ― 라이브 스트림은 복수의 포맷들 중 각각의 포맷을 위한 복수의 세그먼트들을 포함하고 복수의 세그먼트들 중 각각의 세그먼트는 각자의 시퀀스 번호를 포함함 ― 에 대응하는 URL에 대한 요청을 수신하는 수단; 요청된 URL에 기초하여 라이브 스트림의 특정 세그먼트에 대해 요청을 해결하는 수단 ― 해결하는 수단은, 요청된 URL에 기초하여 복수의 포맷들로부터 요청에 연관된 라이브 스트림의 포맷을 식별하는 수단; 요청된 URL에 기초하여 요청에 연관된 시퀀스 번호를 식별하는 수단; 및 복수의 세그먼트들 중 식별된 포맷에 대응하는 그리고 식별된 시퀀스 번호에 매칭되는 시퀀스 번호를 갖는 세그먼트를 식별하는 수단을 포함함 -; 특정 세그먼트에 대응하는 세그먼트 파일을 로딩하는 수단; 및 요청에 응답하여 세그먼트 파일을 사용자 디바이스로 반환하는 수단을 포함한다.
개시된 주제의 다양한 목적들, 특징들, 및 이점들은, 비슷한 참조 번호들이 비슷한 엘리먼트들을 식별하는 다음의 도면들에 관련하여 고려될 때, 개시된 주제의 다음의 상세한 설명을 참조하여 더 충분히 이해될 수 있다.
도 1은 개시된 주제의 일부 실시예들에 따라 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 정보 흐름도의 일 예를 도시한다.
도 2는 개시된 주제의 일부 실시예들에 따라 콘텐츠 스트림의 세그먼트에 대해 URL에 대한 요청을 해결하기 위한 프로세스의 일 예를 도시한다.
도 3은 개시된 주제의 일부 실시예들에 따라 콘텐츠 스트림의 매칭 세그먼트들을 전달하기 위한 정보 흐름도의 일 예를 도시한다.
도 4는 개시된 주제의 일부 실시예들에 따라 콘텐츠 스트림의 이력에서의 특정된 지점을 위한 세그먼트를 전달하기 위한 정보 흐름도의 일 예를 도시한다.
도 5는 개시된 주제의 일부 실시예들에 따라 증분 스트리밍을 위한 정보 흐름도의 일 예를 도시한다.
도 6은 개시된 주제의 일부 실시예들에 따라 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 본 명세서에서 설명되는 메커니즘들의 구현예에 적합한 예시적인 시스템의 개략도를 도시한다.
도 7은 개시된 주제의 일부 실시예들에 따라 도 6의 서버 및/또는 사용자 디바이스에서 사용될 수 있는 하드웨어의 상세한 일 예를 도시한다.
다양한 실시예들에 따라, 스트리밍 콘텐츠를 전달하기 위한 메커니즘들(이것들은 방법들, 시스템들, 및 매체들을 포함할 수 있음)이 제공된다. 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 세그먼트 파일과는 별개인 메타데이터를 캐시하기 위해 콘텐츠 전달 네트워크 레벨에서의 지원을 요구하는 일 없이 임의적(arbitrary) 애플리케이션 레벨 메타데이터가 지원되는 것을 허용할 수 있다. 부가적으로 또는 대안적으로, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 콘텐츠 스트림의 새로운 세그먼트들을 발견하기 위한 메타데이터 및/또는 정보를 포함하는 별도의 매니페스트 파일의 주기적 전달을 요구하는 일 없이 스트리밍 콘텐츠의 전달을 허용함으로써, 단 대 단 레이턴시를 감소시킬 수 있다. 부가적으로 또는 대안적으로, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 사용자 디바이스가 스트림의 비-헤드 세그먼트들에 액세스하는 것을 허용할 수 있으며, 이는 어떤 미디어 세그먼트(들)를 페치할지의 제어를 허용한다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 스트리밍 콘텐츠를 전달하는데 사용될 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 도 1에 관련하여 아래에서 설명되는 바와 같이, 콘텐츠 스트림의 재생을 위한 URL(Uniform Resource Locator)을 요청하는데 사용될 수 있다. 더 특정한 예에서, URL이 콘텐츠 스트림의 포맷에 대응하는 기본 URL을 포함할 수 있다. 이 예를 계속하여, 일부 실시예들에서, URL은 요청에 연관된 시퀀스 번호를 나타내기 위한 하나 이상의 URL 파라미터들을 또한 포함할 수 있다.
일부 실시예들에서, 콘텐츠 스트림이 코덱 포맷, 해상도 포맷, 오디오 포맷, 비디오 포맷, 및/또는 임의의 다른 적합한 포맷과 같은 하나 이상의 포맷들로 재생을 위해 제공될 수 있다. 예를 들어, 일부 실시예들에서, 1280 x720 개 화소 해상도에서 브로드캐스터 또는 콘텐츠 생성자에 의해 업로드되고 있는 콘텐츠 스트림이 720p H.264 비디오(1280 x 720 개 화소), 480p H.264 비디오(854 x 480 개 화소), 360p H.264 비디오(640 x 360 개 화소), 240p H.264 비디오(426 x 240 개 화소), 144p H.264 비디오(256 x 144 개 화소), AAC 오디오를 위한 포맷들, 및/또는 임의의 다른 적합한 포맷을 가질 수 있다. 일부 실시예들에서, 콘텐츠 스트림이 재생을 위해 이용 가능한 비디오 및/또는 오디오의 각각의 포맷에 대해 거의 일정한 지속기간의 하나 이상의 세그먼트들로 세그먼트화될 수 있다. 일부 실시예들에서, 각각의 세그먼트는 지속기간이 수 초 또는 임의의 다른 적합한 지속기간일 수 있다. 일부 실시예들에서, 콘텐츠 스트림은 라이브 스트림일 수 있다.
일부 실시예들에서, 웹 서버가 재생에 이용 가능한 콘텐츠 스트림의 각각의 포맷(예컨대, 코덱 포맷, 해상도 포맷, 오디오 포맷, 비디오 포맷, 및/또는 임의의 다른 적합한 포맷)에 대해 하나의 기본 URL을 제공할 수 있다. 위의 예를 계속하여, 일부 실시예들에서, 웹 서버가 720p H.264 비디오, 480p H.264 비디오, 360p H.264 비디오, 240p H.264 비디오, 144p H.264 비디오, AAC 오디오, 및/또는 임의의 다른 적합한 포맷의 각각에 대해 하나의 기본 URL을 제공할 수 있다. 일부 실시예들에서, 기본 URL은 하이퍼 텍스트 전송 프로토콜(Hypertext Transfer Protocol)(HTTP), 하이퍼 텍스트 전송 프로토콜 보안(Hypertext Transfer Protocol Secure)(HTTPS) 프로토콜, 퀵 UDP 인터넷 연결들(Quick UDP Internet Connections)(QUIC) 프로토콜, 및/또는 임의의 다른 적합한 프로토콜에 대한 것일 수 있다.
일부 실시예들에서, 각각의 포맷에 대한 기본 URL은 해당 포맷에 대해 동적으로 결정된 헤드 세그먼트 파일을 로케이팅할 수 있다. 일부 실시예들에서, 헤드 세그먼트는 로딩되도록 이용 가능한 라이브 스트림의 가장 최근의 세그먼트일 수 있다. 일부 실시예들에서, 기본 URL에 대한 요청이 시퀀스 번호에 의해 식별되는 특정 세그먼트에 대해 해결될 수 있으며, 여기서 시퀀스 번호는 세그먼트 타임라인에 대해 밀한(dense) 정수 인덱스일 수 있다("밀한" 인덱스는 인덱스 값에 대해 인덱스 엔트리가 보이는 것이다). 예를 들어, 일부 실시예들에서, 스트림의 제1 세그먼트는 시퀀스 번호 0을 가질 수 있으며, 여기서 연속하는 각각의 세그먼트는 1(또는 임의의 다른 적합한 증분 값)만큼 증가되는 자신의 각자의 세그먼트 번호를 가질 수 있다.
일부 실시예들에서, 사용자 디바이스가 요청으로 하나 이상의 URL 파라미터들을 기본 URL에 추가함으로써 스트림의 비-헤드 세그먼트들에 액세스할 수 있다. 예를 들어, 일부 실시예들에서, 특정 콘텐츠 스트림을 식별하는 "sq" 파라미터를 기본 URL에 추가하는 것은 시퀀스 번호에 의해 해당 스트림의 특정 세그먼트를 로케이팅할 수 있다. 이 예를 계속하여, 일부 실시예들에서, "sq=0"을 기본 URL에 추가하면 기본 URL에 의해 식별되는 스트림의 첫 번째 세그먼트를 로케이팅할 수 있으며, "sq=1"을 추가하면 스트림의 두 번째 세그먼트를 로케이팅할 수 있다는 등등이다. 다른 예로서, 일부 실시예들에서, "headm" 파라미터를 기본 URL에 추가하면 헤드 세그먼트의 세그먼트들의 특정된 수 뒤인 스트림의 세그먼트를 로케이팅할 수 있다. 이 예를 계속하여, 일부 실시예들에서, "headm=1"을 기본 URL에 추가하면 헤드 세그먼트 바로 앞인 세그먼트를 로케이팅할 수 있으며, "headm=2"를 기본 URL에 추가하면 헤드 세그먼트의 두 개의 세그먼트들 앞인 세그먼트를 로케이팅할 수 있다는 등등이다. 일부 실시예들에서, "headm=0"을 기본 URL에 추가하는 것은 임의의 "headm" 파라미터를 제공하지 않는 것과 동등하다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 도 1 및 도 2에 관련하여 아래에서 설명되는 바와 같이, 콘텐츠 스트림의 세그먼트에 대한 요청을 해결하는데 사용될 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 도 2에 관련하여 아래에서 설명되는 바와 같이, URL에 대한 요청을 수신하며, 요청에 연관된 콘텐츠 스트림의 포맷을 식별하며, 요청에 연관된 시퀀스 번호를 식별하며, 그리고/또는 요청에 연관된 콘텐츠 스트림의 세그먼트를 식별하는데 사용될 수 있다. 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 도 1에 관련하여 아래에서 설명되는 바와 같이, 식별된 세그먼트에 연관된 세그먼트 파일을 로딩하며 그리고/또는 세그먼트 파일을 반환하는데 사용될 수 있다. 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 세그먼트 파일의 컨테이너 포맷으로 메타데이터를 임베드하는데 사용될 수 있다는 것에 주의한다. 따라서, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 세그먼트 파일과는 별개인 메타데이터를 캐시하기 위해 콘텐츠 전달 네트워크 레벨에서의 지원을 요구하는 일 없이 임의적 애플리케이션 레벨 메타데이터가 지원되는 것을 허용할 수 있다. 부가적으로, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 콘텐츠 스트림의 새로운 세그먼트들을 발견하기 위한 메타데이터 및/또는 정보를 포함하는 별도의 매니페스트 파일의 주기적 전달을 요구하는 일 없이 스트리밍 콘텐츠의 전달을 허용함으로써, 단 대 단 레이턴시를 감소시킬 수 있다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 콘텐츠 스트림의 매칭 세그먼트들을 전달하는데 사용될 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 콘텐츠 전달 네트워크로부터 수신된 콘텐츠 스트림의 세그먼트들 사이의 불일치를 검출하는데, 예를 들어, 도 3에 관련하여 아래에서 설명되는 바와 같이 스트림의 하나의 파일(이를테면 오디오 세그먼트 파일)의 세그먼트에 대한 시퀀스 번호와 스트림의 다른 파일(이를테면 비디오 세그먼트 파일)의 세그먼트에 대한 시퀀스 번호 사이의 불일치를 검출하는데 사용될 수 있다. 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 도 3에 관련하여 아래에서 설명되는 바와 같이, 콘텐츠 스트림의 다음의 세그먼트(들)에 대한 하나 이상의 URL들을 요청하며 그리고/또는 대응하는 하나 이상의 세그먼트 파일들을 반환하는데 사용될 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 도 3에 관련하여 아래에서 설명되는 바와 같이, 아직 생성되지 않은 세그먼트에 대한 요청에 응답하기에 앞서 미리 결정된 시간량을 기다리는데 사용될 수 있다. 따라서, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 플레이어 애플리케이션들이 다음의 세그먼트에 대한 요청들을 그 세그먼트가 존재하기 전에 발행하는 것을 허용함으로써, 네트워크 요청 레이턴시의 기여분을 감소 및/또는 제거할 수 있으며, 이는 단 대 단 레이턴시를 감소시킬 수 있다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 콘텐츠 스트림의 이력에서의 특정된 지점을 위한 세그먼트를 전달하는데 사용될 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 도 3에 관련하여 아래에서 설명되는 바와 같이, 콘텐츠 스트림의 이력에서의 지점을 찾기 위한 입력, 이를테면 콘텐츠 스트림의 타임라인 표현에 연관된 사용자 입력 및/또는 임의의 다른 적합한 입력을 검출하는데 사용될 수 있다. 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 도 3에 관련하여 아래에서 설명되는 바와 같이, 콘텐츠 스트림의 이력에서의 지점에 대응하는 URL을 요청하며, 콘텐츠 스트림의 이력에서의 지점에 대응하는 세그먼트에 대한 요청을 해결하며, 그리고/또는 그 세그먼트에 연관된 세그먼트 파일을 반환하는데 사용될 수 있다. 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 반환된 콘텐츠를 플레이하며 그리고/또는 원하는 이력에서의 지점에 접근하기 위한 요청들을 반복적으로 발행하는데 사용될 수 있다. 따라서, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은, 이를테면 라이브 스트림이 이미 시작된 후에 사용자가 라이브 스트림에 참여하면, 사용자가 라이브 스트림의 이력적 부분들을 관람하는 것을 허용할 수 있다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 콘텐츠를 점진적으로(incrementally) 스트리밍하는데 사용될 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 여전히 생성되고 있는 세그먼트에 대해 URL에 대한 요청을 해결하며 그리고/또는 해당 세그먼트에 대해 세그먼트 파일의 부분들을 반복적으로 반환하는데 사용될 수 있다. 더 특정한 예로서, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 현재 생성된 해당 세그먼트의 부분을 먼저 반환한 다음 해당 세그먼트에 대한 데이터의 나머지를 해당 데이터가 생성되고 있을 때와 동일한 응답으로 점진적으로 반환하는데 사용될 수 있다. 따라서, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 큰 세그먼트 사이즈들의 효율성 이점들을 가지면서도 라이브 스트림들이 낮은 레이턴시로 플레이되는 것을 허용할 수 있다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 컴퓨터 네트워크 콘텐츠 스트리밍을 개선하는데 사용될 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 각각이 해당 포맷에 대한 동적으로 결정된 헤드 세그먼트 파일을 로케이팅하는 콘텐츠 스트림의 각각의 포맷에 대한 기본 URL들의 세트로 재생을 초기화하는 것에 의해 그리고 그렇지 않으면 매니페스트 파일에 포함될 메타데이터를 세그먼트 파일에 임베디드하는 것에 의해 매니페스트 파일의 주기적 전달을 미연에 방지함으로써, 단 대 단 레이턴시를 감소시킬 수 있다. 다른 예로서, 본 명세서에서 설명되는 메커니즘들은 라이브 스트림의 적응적 해상도 재생을 지원할 수 있고 라이브 스트림의 이력적 부분들의 재생을 허용할 수 있다. 또 다른 예로서, 본 명세서에서 설명되는 메커니즘들은 큰 세그먼트 사이즈들의 효율로 낮은 레이턴시로 재생하는 것을 허용하기 위해 단 대 단 레이턴시의 세그먼트가 하나 미만인 스트림들을 플레이하는 것을 지원할 수 있다.
매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 이들 및 다른 특징들이 도 1 내지 도 7에 관련하여 더 설명된다.
도 1로 가면, 개시된 주제의 일부 실시예들에 따라 스트리밍 콘텐츠를 전달하기 위한 정보 흐름도의 구체적인 예(100)가 도시된다. 예시된 바와 같이, 정보 흐름도(100)의 블록들은 도 6 및 도 7에 관련하여 아래에서 도시되고 설명되는 바와 같이, 하나 이상의 적합한 컴퓨팅 디바이스들, 이를테면 하나 이상의 서버들, 하나 이상의 사용자 디바이스들, 및/또는 임의의 다른 적합한 컴퓨팅 디바이스(들)에 의해 실행될 수 있다.
102에서, 사용자 디바이스가 재생을 위한 URL을 요청할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스 상에서 실행하고 있는 플레이어 애플리케이션이 콘텐츠 스트림의 재생을 위한 URL을 요청할 수 있다. 일부 실시예들에서, URL은 웹 서버에 의해 제공되는 그리고 스트림의 포맷에 대응하는 기본 URL과, 시퀀스 번호에 대응하는 "sq" 파라미터, 헤드 세그먼트 뒤의 세그먼트들의 수에 대응하는 "headm" 파라미터, 및/또는 임의의 다른 적합한 URL 파라미터 또는 정보 중 하나 이상을 포함할 수 있다. 이하에서 설명되는 바와 같이, 일부 실시예들에서, 사용자 디바이스는, 예를 들어, 요청된 기본 URL에 하나 이상의 파라미터들을 추가할 수 있다.
일부 실시예들에서, 콘텐츠 스트림이 라이브 스트림일 수 있고 하나 이상의 포맷들(예컨대, 코덱 포맷, 해상도 포맷, 오디오 포맷, 비디오 포맷, 및/또는 임의의 다른 적합한 포맷)로 제공될 수 있다는 것에 주의한다. 일부 실시예들에서, 라이브 스트림이 각각의 포맷을 위한 하나 이상의 세그먼트들을 포함할 수 있고, 각각의 세그먼트는 각자의 시퀀스 번호를 가질 수 있다.
일부 실시예들에서, 사용자 디바이스는 임의의 적합한 방식으로 재생을 위한 URL을 요청할 수 있다. 일부 실시예들에서, 사용자 디바이스는 하나 이상의 팩터들, 이를테면 최적의 재생 해상도, 콘텐츠 스트림의 이력에서의 특정된 시점, 및/또는 임의의 다른 적합한 팩터에 기초하여 URL을 요청할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스는 현재 이용가능 네트워크 대역폭, 사용자 디바이스의 스크린 사이즈, 현재 사용자 디바이스의 이용가능 하드웨어 자원들, 및/또는 임의의 다른 적합한 근거 중 하나 이상에 기초한 지능형 재생 해상도 선택을 사용하여 적절한 포맷에 대응하는 기본 URL을 자동으로 요청할 수 있다. 부가적으로 또는 대안적으로, 일부 실시예들에서, 사용자 디바이스는 하나 이상의 파라미터들, 이를테면 "sq" 파라미터, "headm" 파라미터, 및/또는 임의의 다른 적합한 URL 파라미터를 요청된 기본 URL에 추가하여, 이력에서의 특정 지점에 대한 검색을 용이하게 할 수 있다.
104에서, 콘텐츠 전달 네트워크는 스트림의 특정 세그먼트에 대해 사용자 디바이스로부터의 URL에 대한 요청을 해결할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 임의의 적합한 정보, 이를테면 URL에서 임의의 추가적인 파라미터들을 포함하는 기본 URL을 사용하여 시퀀스 번호에 의해 식별되는 특정 세그먼트에 대한 요청을 해결할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 특정 세그먼트에 대해 URL에 대한 요청을 임의의 적합한 방식으로 해결할 수 있다.
예를 들어, 도 2로 가면, 개시된 주제의 일부 실시예들에 따라 콘텐츠 스트림의 세그먼트에 대해 URL에 대한 요청을 해결하기 위한 프로세스의 구체적인 예(200)가 도시된다. 예시된 바와 같이, 프로세스(200)의 블록들은 도 5 및 도 6에 관련하여 아래에서 도시되고 설명되는 바와 같이, 하나 이상의 적합한 컴퓨팅 디바이스들, 이를테면 하나 이상의 서버들, 하나 이상의 사용자 디바이스들, 및/또는 임의의 다른 적합한 컴퓨팅 디바이스(들)에 의해 실행될 수 있다. 일부 실시예들에서, 프로세스(200)의 블록들은 도 1의 블록(104)에 관련하여 수행될 수 있다.
202에서, 콘텐츠 전달 네트워크가 사용자 디바이스로부터의 URL에 대한 요청을 임의의 적합한 방식으로 수신할 수 있다.
204에서, 콘텐츠 전달 네트워크는 URL에 기초하여 요청에 연관된 콘텐츠 스트림의 포맷을 식별할 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠 전달 네트워크는 요청된 URL로부터 기본 URL에 연관된 포맷을 식별함으로써 콘텐츠 스트림의 하나 이상의 이용가능 포맷들로부터 요청된 포맷을 결정할 수 있다.
206에서, 콘텐츠 전달 네트워크는 URL에 기초하여 요청에 연관된 시퀀스 번호를 식별할 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠 전달 네트워크는, 이를테면 현재 헤드 시퀀스 번호를 결정하기 위해 헤드 시퀀스 번호의 캐시를 질의(query)함으로써 헤드 시퀀스 번호(또는 헤드 세그먼트에 대한 시퀀스 번호)에 대해 기본 URL을 해결할 수 있다. 부가적으로 또는 대안적으로, 일부 실시예들에서, 콘텐츠 전달 네트워크는 헤드 시퀀스 번호에 대해 콘텐츠 스트림의 원본 서버(origin server)에 질의를 송신할 수 있고, 원본 서버는, 이를테면 106에서, 응답하여, 현재 헤드 시퀀스 번호를 반환할 수 있다. 다른 예로서, 일부 실시예들에서, 콘텐츠 전달 네트워크는 URL에 포함된 "headm" 파라미터 및/또는 "sq" 파라미터에 기초하여 요청에 연관된 시퀀스 번호를 식별할 수 있다.
208에서, 콘텐츠 전달 네트워크는 요청에 연관된 콘텐츠 스트림의 세그먼트를 식별할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 기본 URL에 연관된 식별된 포맷에 매칭하는 포맷을 갖는 그리고 요청에 연관된 식별된 시퀀스 번호에 매칭되는 시퀀스 번호를 갖는 세그먼트를 식별할 수 있다.
도 1로 다시 가면, 108에서, 콘텐츠 전달 네트워크는 요청에서 시퀀스 번호에 의해 참조되는 식별된 세그먼트에 연관된 세그먼트 파일을 로딩할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 세그먼트 파일을 임의의 적합한 방식으로 로딩할 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠 전달 네트워크는 하나 이상의 캐시들 및/또는 임의의 다른 적합한 로케이션으로부터 세그먼트 파일을 로딩할 수 있다. 다른 예로서, 일부 실시예들에서, 콘텐츠 전달 네트워크는 세그먼트 파일에 대해 콘텐츠 스트림의 원본 서버에 질의를 송신할 수 있고, 원본 서버는 이를테면 110에서, 응답하여, 요청된 세그먼트 파일을 반환할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 헤드 시퀀스 번호를 해결할 수 있고 헤드 세그먼트의 콘텐츠들을 단일 질의로 원본 서버에 로딩할 수 있다.
일부 실시예들에서, 세그먼트 파일은 오디오 콘텐츠, 비디오 콘텐츠, 및/또는 임의의 다른 적합한 콘텐츠 및/또는 데이터를 포함할 수 있다. 일부 실시예들에서, 세그먼트 파일이 오디오 또는 비디오 컨테이너 포맷 내에 임베디드된 애플리케이션 레벨 메타데이터를 포함할 수 있다. 일부 실시예들에서, 메타데이터는 미디어 디코더들에 의해 해석되지 않는 정보를 임베디드하기 위해 컨테이너 포맷이 지원하는 메커니즘을 사용하여, 컨테이너 포맷 내에 임베디드될 수 있다. 예를 들어, 일부 실시예들에서, 메타데이터는 컨테이너 포맷이 FMP4일 때 "emsg" 아톰에 임베디드될 수 있다. 다른 예로서, 일부 실시예들에서, 메타데이터는 컨테이너 포맷이 WebM일 때 태그들 엘리먼트에 임베디드될 수 있다. 일부 실시예들에서, 메타데이터는 임의의 적합한 컨테이너 포맷을 위한 임의의 적합한 메커니즘을 사용하여 임베디드될 수 있다는 것에 주의해야 한다.
메타데이터는 임의의 적합한 정보를 포함할 수 있다는 것에 또한 주의해야 한다. 예를 들어, 일부 실시예들에서, 메타데이터는 ASCII 키-값 쌍들을 포함할 수 있다. 더 특정한 예로서, 일부 실시예들에서, 키-값 쌍들은 "키: 값"의 형태일 수 있고 개행 문자(newline character)들에 의해 구분될 수 있다. 더욱 더 특정한 예로서, 일부 실시예들에서, 메타데이터는, 이를테면 "sq" URL 파라미터를 사용함으로써, "시퀀스-번호" 키와 세그먼트 파일이 로케이팅될 수 있게 하는 시퀀스 번호와는 동일한 값에 대한 키-값 쌍을 포함할 수 있다. 일부 실시예들에서, 키-값 쌍들은 HTTP 응답 헤더들과 동일한 규칙들에 따라 인코딩될 수 있다.
112에서, 콘텐츠 전달 네트워크가 요청된 세그먼트 파일을 사용자 디바이스에 임의의 적합한 방식으로 반환할 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠 전달 네트워크가 HTTP 응답 및/또는 임의의 다른 적합한 유형의 응답으로서 세그먼트 파일을 반환할 수 있다.
114에서, 사용자 디바이스는 콘텐츠 전달 네트워크로부터 세그먼트 파일을 수신하고 세그먼트 파일을 로딩할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스 상에서 실행하고 있는 플레이어 애플리케이션이 재생을 위해 세그먼트 파일로부터 비디오 콘텐츠 및/또는 오디오 콘텐츠를 추출할 수 있다. 부가적으로 또는 대안적으로, 플레이어 애플리케이션은 콘텐츠 전달 네트워크에 의해 어떤 세그먼트 파일이 반환되었는지를 결정하기 위하여 세그먼트 파일의 메타데이터로부터 시퀀스-번호 키의 값을 추출할 수 있다. 일부 실시예들에서, 플레이어 애플리케이션이 부정(indeterminate) 시퀀스 번호를 갖는 세그먼트 파일을 로딩할 때, 이를테면 기본 URL에 대한 요청에 응답하여 또는 "headm" 파라미터를 사용하여 세그먼트 파일을 로딩할 때, 플레이어 애플리케이션은 어떤 세그먼트 파일이 반환되었는지를 결정할 수 있다는 것에 주의한다.
도 3으로 가면, 개시된 주제의 일부 실시예들에 따라 콘텐츠 스트림의 매칭 세그먼트들을 전달하기 위한 정보 흐름도의 구체적인 예가 도시된다. 예시된 바와 같이, 정보 흐름도(300)의 블록들은 도 6 및 도 7에 관련하여 아래에서 도시되고 설명되는 바와 같이, 하나 이상의 적합한 컴퓨팅 디바이스들, 이를테면 하나 이상의 서버들, 하나 이상의 사용자 디바이스들, 및/또는 임의의 다른 적합한 컴퓨팅 디바이스(들)에 의해 실행될 수 있다.
302에서, 사용자 디바이스는 콘텐츠 전달 네트워크로부터 수신된 콘텐츠 스트림의 세그먼트들 사이의 불일치를 검출할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스 상에서 실행하고 있는 플레이어 애플리케이션이 이를테면 각각의 세그먼트 파일의 메타데이터로부터 시퀀스-번호 키의 값을 추출함으로써 오디오 세그먼트 파일에 대한 시퀀스 번호와 콘텐츠 전달 네트워크로부터 수신된 비디오 세그먼트 파일에 대한 시퀀스 번호 사이의 불일치를 검출할 수 있다. 사용자 디바이스는 세그먼트들 사이의 불일치를 임의의 적합한 방식으로 검출할 수 있다는 것에 주의해야 한다.
304에서, 사용자 디바이스는 콘텐츠 스트림의 다음의 세그먼트(들)에 대해 하나 이상의 URL들을 요청할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스 상에서 실행하고 있는 플레이어 애플리케이션은, 다음의 오디오 세그먼트 및/또는 다음의 비디오 세그먼트의 각각에 대해, 시퀀스-번호 키의 현재 값 더하기 1로 설정된 "sq" 파라미터를 포함하는 기본 URL을 요청한다. 일부 실시예들에서, 플레이어 애플리케이션은 오디오 세그먼트 파일에 대한 시퀀스 번호와 비디오 세그먼트 파일에 대한 시퀀스 번호 사이의 더 높은 시퀀스 번호를 결정할 수 있고, 플레이어 애플리케이션은 "sq" 파라미터를 더 높은 시퀀스 번호 더하기 1로 설정할 수 있다는 것에 주의한다. 사용자 디바이스는 URL(들)을 임의의 적합한 방식으로 요청할 수 있다는 것에 주의해야 한다.
306에서, 콘텐츠 전달 네트워크가 사용자 디바이스로부터 하나 이상의 URL들에 대한 하나 이상의 요청들을 수신할 수 있고 콘텐츠 스트림의 다음의 세그먼트(들)에 대해 요청(들)을 해결할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 도 2에 관련하여 위에서 설명된 바와 같이, 사용자 디바이스로부터의 URL에 대한 요청을 임의의 적합한 방식으로 해결할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 로딩하는데 이용 가능한 최신 세그먼트에 대한 시퀀스 번호보다 더 큰 값으로 설정되는 "sq" 파라미터를 요청이 포함한다고 결정할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 다음의 세그먼트에 대해 원본 서버에 질의하기에 앞서 및/또는 사용자 디바이스로부터의 요청에 응답하기에 앞서 생성될 다음의 세그먼트에 대해 미리 결정된 지속기간(예컨대, 수 초 및/또는 임의의 적합한 지속기간)을 기다릴 수 있다.
308에서, 콘텐츠 전달 네트워크는 요청에서의 시퀀스 번호에 의해 참조되는 세그먼트(들)에 연관된 세그먼트 파일(들)을 로딩할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 세그먼트 파일(들)에 대해 콘텐츠 스트림의 원본 서버에 질의를 송신할 수 있고, 원본 서버는 이를테면 310에서, 응답하여, 요청된 세그먼트 파일(들)을 반환할 수 있다. 일부 실시예들에서, 원본 서버는 콘텐츠 전달 네트워크로부터 요청(들)에 응답하기에 앞서 생성될 다음의 세그먼트(들)에 대해 미리 결정된 지속기간(예컨대, 수 초 및/또는 임의의 적합한 지속기간)을 기다릴 수 있다.
312에서, 콘텐츠 전달 네트워크는 요청된 세그먼트 파일(들)을 사용자 디바이스에 임의의 적합한 방식으로 반환할 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠 전달 네트워크는 세그먼트 파일(들)을 HTTP 응답으로서 반환할 수 있다.
314에서, 사용자 디바이스는 콘텐츠 전달 네트워크로부터 세그먼트 파일(들)을 수신할 수 있고 매칭하는 시퀀스 번호들을 갖는 세그먼트 파일(들)을 임의의 적합한 방식으로 로딩할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스 상에서 실행하고 있는 플레이어 애플리케이션은 재생을 위해 세그먼트 파일로부터 비디오 콘텐츠 및/또는 오디오 콘텐츠를 추출할 수 있다.
도 4로 가면, 개시된 주제의 일부 실시예들에 따라 콘텐츠 스트림의 이력에서의 특정된 지점을 위한 세그먼트를 전달하기 위한 정보 흐름도의 구체적인 예가 도시된다. 예시된 바와 같이, 정보 흐름도(300)의 블록들은 도 6 및 도 7에 관련하여 아래에서 도시되고 설명되는 바와 같이, 하나 이상의 적합한 컴퓨팅 디바이스들, 이를테면 하나 이상의 서버들, 하나 이상의 사용자 디바이스들, 및/또는 임의의 다른 적합한 컴퓨팅 디바이스(들)에 의해 실행될 수 있다.
402에서, 사용자 디바이스가 콘텐츠 스트림의 이력에서의 지점을 찾기 위한 입력을 임의의 적합한 방식으로 검출할 수 있다. 예를 들어, 일부 실시예들에서, 플레이어 애플리케이션은 찾아야 할 이력에서의 지점 및/또는 임의의 다른 적합한 입력을 특정하기 위해 콘텐츠 스트림의 타임라인에 대응하는 시각적 표현의 부분을 사용자가 선택하였음을 검출할 수 있다.
일부 실시예들에서, 원본 서버가 각각의 콘텐츠 스트림에 대해 미리 결정된 대략 일관된 세그먼트 지속기간을 사용할 수 있고, 그러므로 두 개의 세그먼트들 사이에서의 경과된 스트림 시간의 상대적 차이는 콘텐츠 스트림의 미리 결정된 세그먼트 지속기간이 곱해진 그들 세그먼트들의 시퀀스 번호 값들에서의 차이와 대략 동일할 수 있다는 것에 주의한다. 예를 들어, 일부 실시예들에서, 3 초의 미리 결정된 세그먼트 지속기간이 주어지면, 콘텐츠 스트림의 제1 세그먼트와 콘텐츠 스트림의 제10 세그먼트 사이의 경과된 스트림 시간은 대략 (10 × 3 초) - (0 × 3 초) = 30 초일 수 있다.
404에서, 사용자 디바이스는 콘텐츠 스트림의 특정된 이력에서의 지점에 대응하는 세그먼트에 대한 URL을 임의의 적합한 방식으로 요청할 수 있다. 예를 들어, 일부 실시예들에서, 플레이어 애플리케이션은 이를테면 "sq" 파라미터 및/또는 임의의 다른 적합한 URL 파라미터를 사용함으로써, 경과된 스트림 시간이 콘텐츠 스트림의 이력에서의 특정된 지점과 대략 동일한 세그먼트에 대한 URL을 요청할 수 있다. 더 구체적인 예로서, 일부 실시예들에서, 3 초의 미리 결정된 세그먼트 지속기간과 32 초에 해당하는 지점을 찾기 위한 사용자 요청이 콘텐츠 스트림 속에 주어지면, 플레이어 애플리케이션은 10의 값으로 설정된 "sq" 파라미터를 사용함으로써 제10 세그먼트에 대한 URL을 요청할 수 있다.
406에서, 콘텐츠 전달 네트워크는 일부 실시예들에서 요청에 "sq" 파라미터를 사용하여 시퀀스 번호에 의해 식별되는 바와 같이, 스트림의 특정 세그먼트에 대해 사용자 디바이스로부터의 URL에 대한 요청을 해결할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 도 2에 관련하여 위에서 설명된 바와 같이, 사용자 디바이스로부터의 URL에 대한 요청을 임의의 적합한 방식으로 해결할 수 있다.
408에서, 콘텐츠 전달 네트워크는 요청에서의 시퀀스 번호에 의해 참조되는 세그먼트에 연관된 세그먼트 파일을 로딩할 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠 전달 네트워크는 하나 이상의 캐시들, 콘텐츠 스트림의 원본 서버, 및/또는 임의의 다른 적합한 로케이션으로부터 세그먼트 파일을 로딩할 수 있다.
410에서, 콘텐츠 전달 네트워크는 요청된 세그먼트 파일을 사용자 디바이스에 임의의 적합한 방식으로 반환할 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠 전달 네트워크는 세그먼트 파일을 HTTP 응답 및/또는 임의의 다른 적합한 유형의 응답으로서 반환할 수 있다. 덧붙여, 일부 실시예들에서, 콘텐츠 전달 네트워크는 현재 헤드 시퀀스 번호, 정확한 현재 경과된 스트림 시간, 및/또는 임의의 다른 적합한 정보를 식별하는 HTTP 응답 헤더들을 반환할 수 있다.
412에서, 사용자 디바이스는 콘텐츠 전달 네트워크로부터 세그먼트 파일을 수신하고 그 세그먼트 파일을 로딩할 수 있다. 예를 들어, 일부 실시예들에서, 플레이어 애플리케이션은, 이를테면 세그먼트 파일의 메타데이터로부터 시퀀스-번호 키의 값을 추출하는 것에 의해 또는 임의의 다른 적합한 방식으로, 콘텐츠 전달 네트워크에 의해 반환된 세그먼트 파일 및/또는 시퀀스 파일의 경과된 스트림 시간을 결정할 수 있다.
414에서, 사용자 디바이스는 반환된 세그먼트 파일의 경과된 스트림 시간에 기초하여 반환된 세그먼트 파일을 플레이할지의 여부를 결정할 수 있다. 예를 들어, 일부 실시예들에서, 플레이어 애플리케이션은 반환된 세그먼트의 경과된 스트림 시간과 콘텐츠 스트림의 이력에서의 특정된 지점을 비교할 수 있다. 반환된 세그먼트의 경과된 스트림 시간이 콘텐츠 스트림의 특정된 이력에서의 지점과 매칭된다고 플레이어 애플리케이션이 결정하면, 플레이어 애플리케이션은 일부 실시예들에서의 416에서 반환된 세그먼트 파일의 콘텐츠를 플레이할 수 있다. 반환된 세그먼트의 경과된 스트림 시간이 콘텐츠 스트림의 특정된 이력에서의 지점과 매칭하지 않는다고 플레이어 애플리케이션이 결정하면, 일부 실시예들에서, 플레이어 애플리케이션은 416에서 반환된 세그먼트 파일의 경과된 스트림 시간부터 콘텐츠를 계속 플레이할 수 있거나 또는 플레이어 애플리케이션은 원하는 경과된 스트림 시간에 접근하기 위한 요청들을 반복적으로 발행하기 위해 404로 복귀할 수 있다.
일부 실시예들에서, 사용자 디바이스는 416에서 콘텐츠를 플레이할 때 410에서 반환된 응답 헤더들로부터의 정보를 사용할 수 있다는 것에 주의한다. 예를 들어, 일부 실시예들에서, 플레이어 애플리케이션이 콘텐츠 스트림의 이력적 부분들을 플레이하고 있더라도 재생 애플리케이션은 현재 헤드 시퀀스 번호 및/또는 정확한 현재 경과된 스트림 시간을 사용하여 새로 생성된 세그먼트들을 포함하는 타임라인의 시각적 표현을 확장할 수 있다.
도 5로 가면, 개시된 주제의 일부 실시예들에 따라 증분 스트리밍을 위한 정보 흐름도의 구체적인 예가 도시된다. 예시된 바와 같이, 정보 흐름도(500)의 블록들은 도 6 및 도 7에 관련하여 아래에서 도시되고 설명되는 바와 같이, 하나 이상의 적합한 컴퓨팅 디바이스들, 이를테면 하나 이상의 서버들, 하나 이상의 사용자 디바이스들, 및/또는 임의의 다른 적합한 컴퓨팅 디바이스(들)에 의해 실행될 수 있다.
502에서, 사용자 디바이스가 재생을 위한 URL을 요청할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스 상에서 실행하고 있는 플레이어 애플리케이션은 기본 URL을 포함하는 URL, 0의 값으로 설정된 "headm" 파라미터, 및/또는 여전히 생성되고 있는 세그먼트에 대해 시퀀스 번호로 설정된 "sq" 파라미터를 요청할 수 있다.
504에서, 콘텐츠 전달 네트워크는 여전히 생성되고 있는 세그먼트에 대해 사용자 디바이스로부터의 URL에 대한 요청을 임의의 적합한 방식으로 해결할 수 있다. 일부 실시예들에서, 콘텐츠 전달 네트워크는 도 2에 관련하여 위에서 설명된 바와 같이, 사용자 디바이스로부터의 URL에 대한 요청을 임의의 적합한 방식으로 해결할 수 있다.
506에서, 콘텐츠 전달 네트워크는 요청된 세그먼트에 대한 세그먼트 파일의 부분(들)을 임의의 적합한 방식으로 로딩할 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠 전달 네트워크가 요청된 세그먼트 파일의 하나 이상의 부분들에 대해 콘텐츠 스트림의 원본 서버에 질의할 수 있다.
508에서, 원본 서버가 여전히 생성되고 있는 세그먼트에 대한 요청을 수신할 수 있고 세그먼트의 부분들이 생성되고 있음에 따라 그 부분들을 점진적으로 반환할 수 있다. 예를 들어, 일부 실시예들에서, 원본 서버가 현재 생성된 세그먼트의 부분을 콘텐츠 전달 네트워크에 우선 반환한 다음 데이터가 510에서 계속 생성될 때와 동일한 응답으로 해당 세그먼트에 대해 데이터의 나머지를 점진적으로 반환할 수 있다.
일부 실시예들에서, 원본 서버 및/또는 콘텐츠 전달 네트워크가 부정 바이트 길이를 갖는 응답들을 반환하는 것을 허용하는 응답 인코딩을 사용하여 세그먼트의 생성된 부분을 반환할 수 있다는 것에 주의한다. 예를 들어, 일부 실시예들에서, 원본 서버 및/또는 콘텐츠 전달 네트워크가 HTTP 프로토콜을 사용할 때 HTTP 응답 헤더 "transfer-encoding: chunked"에 의해 식별되는 바와 같이, 청크형(chunked) 전송 인코딩을 사용하여 응답할 수 있다. 덧붙여, 일부 실시예들에서, 응답들은 증분 스트리밍을 지원하는 컨테이너 포맷을 사용할 수 있다. 예를 들어, 일부 실시예들에서, 컨테이너 포맷은 오디오 및/또는 비디오의 각각의 프레임에 대해 하나의 "moof" 아톰을 포함할 수 있다.
512에서, 세그먼트의 하나 이상의 부분들이 단일 응답으로 원본 서버로부터 수신됨에 따라 콘텐츠 전달 네트워크는 그 부분들을 사용자 디바이스에 반환할 수 있다.
514에서, 사용자 디바이스는 콘텐츠 전달 네트워크로부터 세그먼트의 부분들을 수신하고 로딩할 수 있다.
도 6으로 가면, 개시된 주제의 일부 실시예들에 따라 사용될 수 있는 스트리밍 콘텐츠를 전달하기 위한 하드웨어의 일 예(600)가 도시된다. 예시된 바와 같이, 하드웨어(600)는 원본 서버(602), 하나 이상의 서버들, 이를테면 서버(606) 및 서버(608)을 포함하는 콘텐츠 전달 네트워크(604), 통신 네트워크(610), 하나 이상의 사용자 디바이스들(612), 이를테면 사용자 디바이스(614) 및 사용자 디바이스(616), 그리고/또는 웹 서버(618)를 포함할 수 있다.
원본 서버(602)는 스트리밍 콘텐츠를 전달하기 위한 정보, 데이터, 프로그램들, 및/또는 임의의 다른 적합한 유형의 콘텐츠를 저장하기 임의의 적합한 서버일 수 있다. 일부 실시예들에서, 원본 서버(602)는 콘텐츠 스트림의 각각의 포맷에 대한 하나 이상의 세그먼트 파일들을 저장할 수 있다. 일부 실시예들에서, 원본 서버(602)는 라이브 스트림의 헤드 세그먼트에 대한 현재 헤드 시퀀스 번호를 저장할 수 있다. 일부 실시예들에서, 원본 서버(602)는 임의의 다른 적합한 콘텐츠 또는 정보를 저장할 수 있다. 일부 실시예들에서, 원본 서버(602)는 도 1과 도 3 내지 도 5에 관련하여 위에서 설명된 바와 같이, 헤드 시퀀스 번호를 반환하는 것, 하나 이상의 세그먼트 파일들을 반환하는 것, 및/또는 하나 이상의 세그먼트들의 하나 이상의 부분들이 생성됨에 따라 그 부분들을 점진적으로 반환하는 것과 같은 임의의 적합한 기능(들)을 수행할 수 있다.
콘텐츠 전달 네트워크(604)는 스트리밍 콘텐츠를 전달하기 위한 정보, 데이터 프로그램들, 및/또는 임의의 다른 적합한 유형의 콘텐츠를 저장하기 위한 임의의 적합한 네트워크일 수 있다. 일부 실시예들에서, 본 명세서에서 설명된 바와 같은 콘텐츠 전달 네트워크는 정보, 데이터, 프로그램들, 및/또는 임의의 다른 적합한 유형의 콘텐츠를 저장하기 위한 임의의 적합한 서버(들)일 수 있는 서버(606) 및/또는 서버(608)와 같은 하나 이상의 적합한 컴퓨팅 디바이스들에 의해 구현될 수 있다는 것에 주의한다. 예를 들어, 일부 실시예들에서, 서버(606) 및/또는 서버(608)는 콘텐츠 스트림의 하나 이상의 포맷들에 대해 하나 이상의 세그먼트 파일들을 저장할 수 있다. 덧붙여, 일부 실시예들에서, 서버(606) 및/또는 서버(608)는 라이브 스트림에 대한 하나 이상의 헤드 시퀀스 번호들을, 이를테면 하나 이상의 캐시들에 저장할 수 있다. 일부 실시예들에서, 원본 서버(602)는 도 1 내지 도 5에 관련하여 위에서 설명된 바와 같이, URL에 대한 요청을 수신하는 것, 콘텐츠 스트림의 세그먼트에 대한 요청을 해결하는 것, 포맷을 식별하는 것, 시퀀스 번호를 식별하는 것, 세그먼트를 식별하는 것, 세그먼트 파일을 로딩하는 것, 하나 이상의 세그먼트 파일들을 반환하는 것, 및/또는 하나 이상의 세그먼트들의 하나 이상의 부분들이 생성됨에 따라 그 부분들을 점진적으로 반환하는 것과 같은 임의의 적합한 기능(들)을 수행할 수 있다.
통신 네트워크(610)는 일부 실시예들에서 하나 이상의 유선 및/또는 무선 네트워크들의 임의의 적합한 조합일 수 있다. 예를 들어, 통신 네트워크(610)는 인터넷, 인트라넷, 광역 네트워크(wide-area network)(WAN), 국부 영역 네트워크(local-area network)(LAN), 무선 네트워크, 디지털 가입자 회선(digital subscriber line)(DSL) 네트워크, 프레임 릴레이 네트워크, 비동기 전송 모드(asynchronous transfer mode)(ATM) 네트워크, 가상 사설 네트워크(virtual private network)(VPN), 및/또는 임의의 다른 적합한 통신 네트워크 중 임의의 하나 이상을 포함할 수 있다. 일부 실시예들에서, 원본 서버(602)는 콘텐츠 전달 네트워크(604)를 통해 통신 네트워크(610)에 하나 이상의 통신 링크들에 의해 연결될 수 있다. 일부 실시예들에서, 통신 네트워크(610)는 콘텐츠 전달 네트워크(604), 사용자 디바이스(들)(612), 및/또는 웹 서버(618)에 하나 이상의 통신 링크들을 통해 링크될 수 있다. 통신 링크들은 사용자 디바이스(들)(612), 원본 서버(602), 콘텐츠 전달 네트워크(604), 및 웹 서버(618) 중에서 데이터를 통신하기에 적합한 임의의 통신 링크들, 이를테면 네트워크 링크들, 다이얼 업 링크들, 무선 링크들, 하드 와이어드 링크들, 임의의 다른 적합한 통신 링크들, 또는 이러한 링크들의 임의의 적합한 조합일 수 있다.
웹 서버(618)는 정보, 데이터, 프로그램들, 및/또는 임의의 다른 적합한 유형의 콘텐츠를 저장하기 위한 임의의 적합한 서버(들)일 수 있다. 일부 실시예들에서, 웹 서버(618)는 도 1 내지 도 5에 관련하여 위에서 설명된 바와 같이, 콘텐츠 스트림의 하나 이상의 포맷들에 대해 하나 이상의 기본 URL들을 제공하는 것과 같은 임의의 적합한 기능(들)을 수행할 수 있다.
사용자 디바이스(들)(612)는 스트리밍 콘텐츠를 제시하기 위한 임의의 하나 이상의 사용자 디바이스들을 포함할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스(들)(612)는 텔레비전, 스피커들, 모바일 폰, 태블릿 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 차량 엔트테인먼트 시스템, 착용가능 컴퓨터, 및/또는 임의의 다른 적합한 유형의 사용자 디바이스를 포함할 수 있다. 일부 실시예들에서, 사용자 디바이스(들)(612)는 스트리밍 콘텐츠를 제시하기 위해 메모리에 저장되고 사용자 디바이스(들)(612)에 의해 실행되는 플레이어 애플리케이션을 포함할 수 있다. 일부 실시예들에서, 사용자 디바이스(들)(612)는 도 1 내지 도 5에 관련하여 위에서 설명된 바와 같이, 임의의 적합한 기능(들), 이를테면 재생을 위한 URL을 요청하는 것, 스트림의 불일치된 세그먼트들을 검출하는 것, 스트림의 이력에서의 지점을 찾기 위해 입력을 검출하는 것, 수신된 세그먼트 파일을 로딩하는 것, 및/또는 콘텐츠를 플레이하는 것을 수행할 수 있다.
원본 서버(602), 서버(606), 서버(608), 및 웹 서버(618)가 하나의 디바이스로서 각각 예시되지만, 원본 서버(602), 서버(606), 서버(608), 및 웹 서버(618)에 의해 수행되는 기능들은 일부 실시예들에서 임의의 적합한 수의 디바이스들을 사용하여 수행될 수 있다. 예를 들어, 일부 실시예들에서, 다수의 디바이스들은 원본 서버(602), 서버(606), 서버(608), 및 웹 서버(618)의 각각에 의해 수행되는 기능들을 구현하는데 사용될 수 있다.
도면이 너무 복잡해지는 것을 피하기 위해 두 개의 사용자 디바이스들(614 및 616)이 도 6에서 도시되지만, 임의의 적합한 수의 사용자 디바이스들, 및/또는 임의의 적합한 유형들의 사용자 디바이스들이 일부 실시예들에서 사용될 수 있다.
원본 서버(602), 서버(606), 서버(608), 사용자 디바이스들(612), 및 웹 서버(618)는 일부 실시예들에서 임의의 적합한 하드웨어를 사용하여 구현될 수 있다. 예를 들어, 일부 실시예들에서, 디바이스들(602, 606, 608, 612, 및 618)은 임의의 적합한 범용 컴퓨터 또는 특수 목적 컴퓨터를 사용하여 구현될 수 있다. 예를 들어, 모바일 폰이 특수 목적 컴퓨터를 사용하여 구현될 수 있다. 임의의 이러한 범용 컴퓨터 또는 특수 목적 컴퓨터가 임의의 적합한 하드웨어를 포함할 수 있다. 예를 들어, 도 7의 예시적인 하드웨어(700)에서 예시된 바와 같이, 이러한 하드웨어는 하드웨어 프로세서(702), 메모리 및/또는 스토리지(704), 입력 디바이스 제어기(706), 입력 디바이스(708), 디스플레이/오디오 드라이버들(710), 디스플레이 및 오디오 출력 회로부(712), 통신 인터페이스(들)(714), 안테나(716), 및 버스(718)를 포함할 수 있다.
하드웨어 프로세서(702)는 임의의 적합한 하드웨어 프로세서, 이를테면 마이크로프로세서, 마이크로-제어기, 디지털 신호 프로세서(들), 전용 로직, 및/또는 일부 실시예들에서 범용 컴퓨터 또는 특수 목적 컴퓨터의 기능을 제어하기 위한 임의의 다른 적합한 회로부를 포함할 수 있다. 일부 실시예들에서, 하드웨어 프로세서(702)는 서버, 이를테면 서버(606) 및/또는 서버(608)의 메모리 및/또는 스토리지에 저장되는 서버 프로그램에 의해 제어될 수 있다. 예를 들어, 일부 실시예들에서, 서버 프로그램은 하드웨어 프로세서(702)로 하여금 URL에 대한 요청을 수신하게, 콘텐츠 스트림의 세그먼트에 대한 요청을 해결하게 하며, 포맷을 식별하게, 시퀀스 번호를 식별하게, 세그먼트를 식별하게, 헤드 시퀀스 번호를 반환하게, 세그먼트 파일을 로딩하게, 하나 이상의 세그먼트 파일들을 반환하게, 하나 이상의 세그먼트들의 하나 이상의 부분들이 생성됨에 따라 그 부분들을 점진적으로 반환하게, 콘텐츠 스트림의 하나 이상의 포맷에 대한 하나 이상의 기본 URL들을 제공하게, 그리고/또는 임의의 다른 적합한 기능들을 수행하게 할 수 있다. 일부 실시예들에서, 하드웨어 프로세서(702)는 사용자 디바이스, 이를테면 사용자 디바이스(612) 및/또는 사용자 디바이스(616)의 메모리 및/또는 스토리지에 저장되는 프로그램에 의해 제어될 수 있다. 예를 들어, 일부 실시예들에서, 프로그램은 하드웨어 프로세서(702)로 하여금, 재생을 위해 URL을 요청하게, 스트림의 불일치된 세그먼트들을 검출하게, 스트림의 이력에서의 지점을 찾기 위한 입력을 검출하게, 수신된 세그먼트 파일을 로딩하게, 콘텐츠를 플레이하게, 및/또는 임의의 다른 적합한 기능들을 수행하게 할 수 있다.
메모리 및/또는 스토리지(704)는 일부 실시예들에서 프로그램들, 데이터, 및/또는 임의의 다른 적합한 정보를 저장하기 위한 임의의 적합한 메모리 및/또는 스토리지일 수 있다. 예를 들어, 메모리 및/또는 스토리지(704)는 랜덤 액세스 메모리, 판독전용 메모리, 플래시 메모리, 하드 디스크 스토리지, 광 매체들, 및/또는 임의의 다른 적합한 메모리를 포함할 수 있다.
입력 디바이스 제어기(706)는 일부 실시예들에서 하나 이상의 입력 디바이스들(708)로부터의 입력을 제어하고 수신하기 위한 임의의 적합한 회로부일 수 있다. 예를 들어, 입력 디바이스 제어기(706)는 터치스크린으로부터, 키보드로부터, 하나 이상의 버튼들로부터, 음성인식 회로로부터, 마이크로폰으로부터, 카메라로부터, 광 센서로부터, 가속도계로부터, 온도 센서로부터, 근접 장 센서로부터, 압력 센서로부터, 인코더로부터 입력을 수신하기 위한 회로부, 및/또는 임의의 다른 유형의 입력 디바이스일 수 있다.
디스플레이/오디오 드라이버들(710)은 일부 실시예들에서 하나 이상의 디스플레이/오디오 출력 디바이스들(712)로의 출력을 제어하고 구동하기 위한 임의의 적합한 회로부일 수 있다. 예를 들어, 디스플레이/오디오 드라이버들(710)은 터치스크린, 평판 디스플레이, 음극선관 디스플레이, 프로젝터, 스피커 또는 스피커들, 및/또는 임의의 다른 적합한 디스플레이 및/또는 프레젠테이션 디바이스들을 구동하기 위한 회로부일 수 있다.
통신 인터페이스(들)(714)는 하나 이상의 통신 네트워크들(예컨대, 통신 네트워크(610))과 인터페이싱하기 위한 임의의 적합한 회로부일 수 있다. 예를 들어, 인터페이스(들)(714)는 네트워크 인터페이스 카드 회로부, 무선 통신 회로부, 및/또는 임의의 다른 적합한 유형의 통신 네트워크 회로부를 포함할 수 있다.
안테나(716)는 일부 실시예들에서 통신 네트워크(예컨대, 통신 네트워크(610))와 무선으로 통신하기 위한 임의의 적합한 하나 이상의 안테나들일 수 있다. 일부 실시예들에서, 안테나(716)는 생략될 수 있다.
버스(718)는 일부 실시예들에서 둘 이상의 컴포넌트들(702, 704, 706, 710, 및 714) 사이의 통신을 위한 임의의 적합한 메커니즘일 수 있다.
임의의 다른 적합한 컴포넌트들이 일부 실시예들에 따라 하드웨어(700)에 포함될 수 있다.
일부 실시예들에서, 도 1 내지 도 5의 프로세스들의 위에서 설명된 블록들의 적어도 일부는 도면들에 관련하여 도시되고 설명되는 순서 및 시퀀스로 제한되지 않는 임의의 순서 또는 시퀀스로 실행되거나 또는 수행될 수 있다. 또한, 도 1 내지 도 5의 상측 블록들의 일부는 레이턴시 및 프로세싱 시간들을 줄이기 위해 적절한 경우 실질적으로 동시에 또는 병행하여 수행될 수 있다. 부가적으로 또는 대안적으로, 도 1 내지 도 5의 프로세스들의 위에서 설명된 블록들의 일부가 생략될 수 있다.
일부 실시예들에서, 임의의 적합한 컴퓨터 판독가능 매체가 본 명세서에서의 기능들 및/또는 프로세스들을 수행하기 위한 명령들을 저장하기 위해 사용될 수 있다. 예를 들어, 일부 실시예들에서, 컴퓨터 판독가능 매체는 일시적 또는 비-일시적일 수 있다. 예를 들어, 비-일시적 컴퓨터 판독가능 매체는 비-일시적 형태들의 자성 매체들(이를테면 하드 디스크들, 플로피 디스크들, 및/또는 임의의 다른 적합한 자성 매체들), 비-일시적 형태들의 광 매체들(이를테면 콤팩트 디스크들, 디지털 비디오 디스크들, 블루레이 디스크들, 및/또는 임의의 다른 적합한 광 매체들), 비-일시적 형태들의 반도체 매체들(이를테면 플래시 메모리, 전기적으로 프로그램가능 판독전용 메모리(EPROM), 전기 소거가능 프로그램가능 판독전용 메모리(electrically programmable read-only memory)(EEPROM), 및/또는 임의의 다른 적합한 반도체 매체), 송신 동안 한순간이 아니거나 또는 영구적인 것으로 보이지 않는 임의의 적합한 매체, 및/또는 임의의 적합한 유형의 매체와 같은 매체를 포함할 수 있다. 다른 예로서, 일시적 컴퓨터 판독가능 매체는 네트워크들 상의 신호들을, 와이어들, 도체들, 광섬유들, 회로들, 송신 동안 한순간이 아니거나 또는 영구적인 것으로 보이지 않는 임의의 적합한 매체, 및/또는 임의의 적합한 무형의(intangible) 매체에 포함할 수 있다.
따라서, 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들이 제공된다.
본 발명이 전술한 예시적인 실시예들에서 설명되고 예시되었지만, 본 개시내용이 예로서만 만들어진 것이라는 것과, 본 발명의 구현예의 세부사항들에서의 수많은 변경들이 뒤따르는 청구항들에 의해서만 제한되는 본 발명의 정신 및 범위로부터 벗어남 없이 만들어질 수 있다는 것이 이해된다. 개시된 실시예들의 특징들은 다양한 방식들로 결합되고 재배열될 수 있다.

Claims (18)

  1. 라이브 스트리밍 콘텐츠를 전달하기 위한 방법으로서,
    사용자 디바이스로부터, 복수의 포맷들로 제공되는 라이브 스트림의 포맷 ― 상기 라이브 스트림은 상기 복수의 포맷들 중 각각의 포맷을 위한 복수의 세그먼트들을 포함하고 상기 복수의 세그먼트들 중 각각의 세그먼트는 각자의 시퀀스 번호를 포함함 ― 에 대응하는 URL에 대한 요청을 수신하는 단계;
    요청된 URL에 기초하여 상기 라이브 스트림의 특정 세그먼트에 대해 상기 요청을 해결하는 단계 ― 상기 해결하는 단계는,
    상기 요청된 URL에 기초하여 상기 복수의 포맷들로부터 상기 요청에 연관된 상기 라이브 스트림의 상기 포맷을 식별하는 단계;
    상기 요청된 URL에 기초하여 상기 요청에 연관된 시퀀스 번호를 식별하는 단계; 및
    상기 복수의 세그먼트들 중 식별된 포맷에 대응하는 그리고 식별된 시퀀스 번호에 매칭되는 시퀀스 번호를 갖는 세그먼트를 식별하는 단계를 포함함 ―;
    상기 특정 세그먼트에 대응하는 세그먼트 파일을 로딩하는 단계; 및
    상기 요청에 응답하여 상기 세그먼트 파일을 상기 사용자 디바이스로 반환하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 URL은 기본 URL을 포함하고, 상기 요청에 연관된 상기 라이브 스트림의 상기 포맷은 상기 기본 URL에 기초하여 상기 복수의 포맷들로부터 식별되는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 세그먼트 파일은 상기 식별된 시퀀스 번호를 나타내는 메타데이터를 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 시퀀스 번호는 하나 이상의 세그먼트들의 재생에 이용 가능한 가장 최근의 세그먼트에 대한 현재 헤드 시퀀스 번호를 결정함으로써 식별되며, 상기 식별된 시퀀스 번호는 상기 현재 헤드 시퀀스 번호이고 상기 식별된 세그먼트는 재생을 위해 이용 가능한 상기 가장 최근의 세그먼트인, 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 시퀀스 번호는 상기 URL에 기초하여 로딩하는데 이용 가능한 가장 최근 완료 세그먼트에 대한 시퀀스 번호보다 더 큰 상기 요청에 연관된 시퀀스 번호를 식별함으로써 식별되는, 방법.
  6. 제5항에 있어서, 상기 세그먼트 파일의 하나 이상의 부분들이 생성되고 있을 때 상기 하나 이상의 부분들을 반복적으로 로딩하는 단계; 및
    단일 응답으로 생성된 하나 이상의 부분들을 상기 사용자 디바이스에 반복적으로 반환하는 단계를 더 포함하는, 방법.
  7. 라이브 스트리밍 콘텐츠를 전달하기 위한 시스템으로서,
    메모리; 및
    상기 메모리에 커플링되는 하드웨어 프로세서를 포함하며,
    상기 하드웨어 프로세서는,
    사용자 디바이스로부터, 복수의 포맷들로 제공되는 라이브 스트림의 포맷 ― 상기 라이브 스트림은 상기 복수의 포맷들 중 각각의 포맷을 위한 복수의 세그먼트들을 포함하고 상기 복수의 세그먼트들 중 각각의 세그먼트는 각자의 시퀀스 번호를 포함함 ― 에 대응하는 URL에 대한 요청을 수신하는 것;
    요청된 URL에 기초하여 상기 라이브 스트림의 특정 세그먼트에 대해 상기 요청을 해결하는 것 ― 상기 해결하는 것은,
    상기 요청된 URL에 기초하여 상기 복수의 포맷들로부터 상기 요청에 연관된 상기 라이브 스트림의 상기 포맷을 식별하는 것;
    상기 요청된 URL에 기초하여 상기 요청에 연관된 시퀀스 번호를 식별하는 것; 및
    상기 복수의 세그먼트들 중 식별된 포맷에 대응하는 그리고 식별된 시퀀스 번호에 매칭되는 시퀀스 번호를 갖는 세그먼트를 식별하는 것을 포함함 ―;
    상기 특정 세그먼트에 대응하는 세그먼트 파일을 로딩하는 것; 및
    상기 요청에 응답하여 상기 세그먼트 파일을 상기 사용자 디바이스로 반환하는 것을 하도록 구성되는, 시스템.
  8. 제7항에 있어서, 상기 URL은 기본 URL을 포함하고, 상기 요청에 연관된 상기 라이브 스트림의 상기 포맷은 상기 기본 URL에 기초하여 상기 복수의 포맷들로부터 식별되는, 시스템.
  9. 제7항 또는 제8항에 있어서, 상기 세그먼트 파일은 상기 식별된 시퀀스 번호를 나타내는 메타데이터를 포함하는, 시스템.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서, 상기 시퀀스 번호는 하나 이상의 세그먼트들의 재생에 이용 가능한 가장 최근의 세그먼트에 대한 현재 헤드 시퀀스 번호를 결정함으로써 식별되며, 상기 식별된 시퀀스 번호는 상기 현재 헤드 시퀀스 번호이고 상기 식별된 세그먼트는 재생을 위해 이용 가능한 상기 가장 최근의 세그먼트인, 시스템.
  11. 제7항 내지 제9항 중 어느 한 항에 있어서, 상기 시퀀스 번호는 상기 URL에 기초하여 로딩하는데 이용 가능한 가장 최근 완료 세그먼트에 대한 시퀀스 번호보다 더 큰 상기 요청에 연관된 시퀀스 번호를 식별함으로써 식별되는, 시스템.
  12. 제11항에 있어서, 상기 하드웨어 프로세서는,
    상기 세그먼트 파일의 하나 이상의 부분들이 생성되고 있을 때 상기 하나 이상의 부분들을 반복적으로 로딩하는 것; 및
    단일 응답으로 생성된 하나 이상의 부분들을 상기 사용자 디바이스에 반복적으로 반환하는 것을 하도록 추가로 구성되는, 시스템.
  13. 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 라이브 스트리밍 콘텐츠를 전달하기 위한 방법을 수행하게 하는 컴퓨터 실행가능 명령들을 포함하는 컴퓨터 판독가능 매체로서,
    상기 방법은,
    사용자 디바이스로부터, 복수의 포맷들로 제공되는 라이브 스트림의 포맷 ― 상기 라이브 스트림은 상기 복수의 포맷들 중 각각의 포맷을 위한 복수의 세그먼트들을 포함하고 상기 복수의 세그먼트들 중 각각의 세그먼트는 각자의 시퀀스 번호를 포함함 ― 에 대응하는 URL에 대한 요청을 수신하는 단계;
    요청된 URL에 기초하여 상기 라이브 스트림의 특정 세그먼트에 대해 상기 요청을 해결하는 단계 ― 상기 해결하는 단계는,
    상기 요청된 URL에 기초하여 상기 복수의 포맷들로부터 상기 요청에 연관된 상기 라이브 스트림의 상기 포맷을 식별하는 단계;
    상기 요청된 URL에 기초하여 상기 요청에 연관된 시퀀스 번호를 식별하는 단계; 및
    상기 복수의 세그먼트들 중 식별된 포맷에 대응하는 그리고 식별된 시퀀스 번호에 매칭되는 시퀀스 번호를 갖는 세그먼트를 식별하는 단계를 포함함 ―;
    상기 특정 세그먼트에 대응하는 세그먼트 파일을 로딩하는 단계; 및
    상기 요청에 응답하여 상기 세그먼트 파일을 상기 사용자 디바이스로 반환하는 단계를 포함하는, 컴퓨터 판독가능 매체.
  14. 제13항에 있어서, 상기 URL은 기본 URL을 포함하고, 상기 요청에 연관된 상기 라이브 스트림의 상기 포맷은 상기 기본 URL에 기초하여 상기 복수의 포맷들로부터 식별되는, 컴퓨터 판독가능 매체.
  15. 제13항 또는 제14항에 있어서, 상기 세그먼트 파일은 상기 식별된 시퀀스 번호를 나타내는 메타데이터를 포함하는, 컴퓨터 판독가능 매체.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서, 상기 시퀀스 번호는 하나 이상의 세그먼트들의 재생에 이용 가능한 가장 최근의 세그먼트에 대한 현재 헤드 시퀀스 번호를 결정함으로써 식별되며, 상기 식별된 시퀀스 번호는 상기 현재 헤드 시퀀스 번호이고 상기 식별된 세그먼트는 재생을 위해 이용 가능한 상기 가장 최근의 세그먼트인, 컴퓨터 판독가능 매체.
  17. 제13항 내지 제15항 중 어느 한 항에 있어서, 상기 시퀀스 번호는 상기 URL에 기초하여 로딩하는데 이용 가능한 가장 최근 완료 세그먼트에 대한 시퀀스 번호보다 더 큰 상기 요청에 연관된 시퀀스 번호를 식별함으로써 식별되는, 컴퓨터 판독가능 매체.
  18. 제17항에 있어서, 상기 방법은,
    상기 세그먼트 파일의 하나 이상의 부분들이 생성되고 있을 때 상기 하나 이상의 부분들을 반복적으로 로딩하는 단계; 및
    단일 응답으로 생성된 하나 이상의 부분들을 상기 사용자 디바이스에 반복적으로 반환하는 단계를 더 포함하는, 컴퓨터 판독가능 매체.
KR1020207026227A 2018-09-17 2019-09-17 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들 KR102428194B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227026318A KR102643665B1 (ko) 2018-09-17 2019-09-17 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862732567P 2018-09-17 2018-09-17
US62/732,567 2018-09-17
PCT/US2019/051433 WO2020060990A1 (en) 2018-09-17 2019-09-17 Methods, systems, and media for delivering manifestless streaming media content

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227026318A Division KR102643665B1 (ko) 2018-09-17 2019-09-17 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들

Publications (2)

Publication Number Publication Date
KR20200119310A true KR20200119310A (ko) 2020-10-19
KR102428194B1 KR102428194B1 (ko) 2022-08-02

Family

ID=68084967

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207026227A KR102428194B1 (ko) 2018-09-17 2019-09-17 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들
KR1020227026318A KR102643665B1 (ko) 2018-09-17 2019-09-17 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들
KR1020247006908A KR20240033297A (ko) 2018-09-17 2019-09-17 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020227026318A KR102643665B1 (ko) 2018-09-17 2019-09-17 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들
KR1020247006908A KR20240033297A (ko) 2018-09-17 2019-09-17 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들

Country Status (7)

Country Link
US (4) US10986149B2 (ko)
EP (1) EP3750324A1 (ko)
JP (2) JP7073584B2 (ko)
KR (3) KR102428194B1 (ko)
CN (2) CN111837405B (ko)
BR (1) BR112021004423A2 (ko)
WO (1) WO2020060990A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11184665B2 (en) * 2018-10-03 2021-11-23 Qualcomm Incorporated Initialization set for network streaming of media data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332971A1 (en) * 2012-06-11 2013-12-12 Rgb Networks, Inc. Targeted high-value content in http streaming video on demand
WO2015013687A1 (en) * 2013-07-25 2015-01-29 Futurewei Technologies, Inc. System and method for effectively controlling client behavior in adaptive streaming

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104394487B (zh) * 2010-03-05 2018-02-06 三星电子株式会社 基于文件格式生成和再现自适应流的方法和装置
US20120265853A1 (en) * 2010-12-17 2012-10-18 Akamai Technologies, Inc. Format-agnostic streaming architecture using an http network for streaming
US9253233B2 (en) * 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9462302B2 (en) * 2012-02-23 2016-10-04 Mobitv, Inc. Efficient delineation and distribution of media segments
US9712887B2 (en) * 2012-04-12 2017-07-18 Arris Canada, Inc. Methods and systems for real-time transmuxing of streaming media content
US9537917B2 (en) 2012-11-20 2017-01-03 Google Technology Holdings LLC Method and apparatus for streaming media content to client devices
US9118976B1 (en) * 2013-08-08 2015-08-25 Time Warner Cable Enterprises Llc Tuning efficiency and delivery of content
US9860612B2 (en) * 2014-04-10 2018-01-02 Wowza Media Systems, LLC Manifest generation and segment packetization
US9692800B2 (en) * 2014-06-11 2017-06-27 Google Inc. Enhanced streaming media playback
US10084838B2 (en) * 2014-10-29 2018-09-25 DLVR, Inc. Generating and using manifest files including content delivery network authentication data
US10666961B2 (en) * 2016-01-08 2020-05-26 Qualcomm Incorporated Determining media delivery event locations for media transport
US10389840B2 (en) * 2016-12-28 2019-08-20 Verizon Digital Media Services Inc. Prefetching of stream segments with variable names

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332971A1 (en) * 2012-06-11 2013-12-12 Rgb Networks, Inc. Targeted high-value content in http streaming video on demand
WO2015013687A1 (en) * 2013-07-25 2015-01-29 Futurewei Technologies, Inc. System and method for effectively controlling client behavior in adaptive streaming

Also Published As

Publication number Publication date
BR112021004423A2 (pt) 2021-05-25
CN111837405A (zh) 2020-10-27
CN115460184A (zh) 2022-12-09
EP3750324A1 (en) 2020-12-16
US20230144953A1 (en) 2023-05-11
JP7073584B2 (ja) 2022-05-23
US10986149B2 (en) 2021-04-20
JP2022116036A (ja) 2022-08-09
KR20220110341A (ko) 2022-08-05
KR102428194B1 (ko) 2022-08-02
CN111837405B (zh) 2022-08-23
KR102643665B1 (ko) 2024-03-05
US20240163322A1 (en) 2024-05-16
US11882168B2 (en) 2024-01-23
US20210243240A1 (en) 2021-08-05
JP7460684B2 (ja) 2024-04-02
US20200092342A1 (en) 2020-03-19
KR20240033297A (ko) 2024-03-12
US11558443B2 (en) 2023-01-17
WO2020060990A1 (en) 2020-03-26
JP2021530932A (ja) 2021-11-11

Similar Documents

Publication Publication Date Title
AU2018202004B2 (en) Enhanced streaming media playback
US9961395B2 (en) Video caching
US9317188B2 (en) Devices and methods for providing navigation images associated with adaptive bit rate video content
US20240163322A1 (en) Methods, systems, and media for delivering manifestless streaming media content
CN113748659B (zh) 接收会话的媒体数据的方法、装置和非易失性计算机可读介质
US20210021655A1 (en) System and method for streaming music on mobile devices
EP2891323A1 (en) Rendering time control
CN105306520B (zh) 操作高速缓存器的方法及相应高速缓存器
JP6550405B2 (ja) クライアント端末と少なくとも1つのサーバとの間の伝送経路に沿って配置されたネットワーク装置を動作させる方法およびそれに対応するネットワーク装置
KR20160113270A (ko) 적응형 스트리밍을 위한 포렌식 마킹의 시그널링 및 핸들링
Lazic et al. One Implementation of adaptive streaming over HTTP on Android DTV platform
JP7387209B2 (ja) Http上の動的適応ストリーミングのための方法および装置
WO2022253561A1 (en) Buffer management for live video streaming
KR20200018890A (ko) 무선 스트리밍 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant