KR20160145657A - 스트리밍 미디어 데이터 전송 방법, 클라이언트 및 서버 - Google Patents
스트리밍 미디어 데이터 전송 방법, 클라이언트 및 서버 Download PDFInfo
- Publication number
- KR20160145657A KR20160145657A KR1020167031247A KR20167031247A KR20160145657A KR 20160145657 A KR20160145657 A KR 20160145657A KR 1020167031247 A KR1020167031247 A KR 1020167031247A KR 20167031247 A KR20167031247 A KR 20167031247A KR 20160145657 A KR20160145657 A KR 20160145657A
- Authority
- KR
- South Korea
- Prior art keywords
- segment
- code rate
- server
- client
- high code
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 48
- 230000005540 biological transmission Effects 0.000 title description 33
- 230000002035 prolonged effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 20
- 238000004590 computer program Methods 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- H04L65/4092—
-
- 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/25—Management 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/262—Content 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/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26233—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
-
- H04L65/604—
-
- H04L65/607—
-
- H04L65/608—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H04L67/42—
-
- 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
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- 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
- H04N21/4402—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 involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44209—Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
-
- 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/60—Network 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/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/633—Control signals issued by server directed to the network components or client
- H04N21/6332—Control signals issued by server directed to the network components or client directed to client
-
- 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/60—Network 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/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6373—Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L1/1819—Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1845—Combining techniques, e.g. code combining
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
Abstract
클라이언트가 더 높은 코드 레이트를 갖는 세그먼트를 대기함에 따라 디코딩 시간 지연이 길어지는 문제점을 해결하기 위해 사용되는 스트리밍 미디어 데이터 전송 방법, 클라이언트 및 서버가 제공된다. 본 개시 내용의 실시예들에 제공되는 클라이언트는 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 전달할 것인지를 결정하기 위해 사용되는 제1 프로세싱 모듈; 및 제1 프로세싱 모듈이 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 전달할 것이라고 결정할 때, 서버가 높은 코드 레이트를 갖는 세그먼트를 우선적으로 전달할지 또는 낮은 코드 레이트를 갖는 세그먼트를 우선적으로 전달할지를 결정하기 위해 사용되는 제2 프로세싱 모듈을 포함한다. 서버가 높은 코드 레이트를 갖는 세그먼트를 우선적으로 전달한다고 결정할 때, 클라이언트는 서버가 높은 코드 레이트를 갖는 세그먼트를 전달하는 것을 더 이상 대기할 필요가 없어져서, 클라이언트의 디코딩 시간 지연이 짧아지게 된다.
Description
본 개시 내용은 스트리밍 미디어 기술에 관한 것으로, 특히 스트리밍 미디어 데이터 전송 장치 방법 및 시스템에 관한 것이다.
종래의 스트리밍 미디어 기술을 채택하는 경우에, 전송된 스트리밍 미디어 데이터는 방화벽을 통과할 필요가 있고, 스트리밍 미디어 기술을 지원하기 위해 전문적인 미디어 서버가 요구된다. 게다가, 종래의 스트리밍 미디어 기술의 구현은 비교적 복잡하다. 현재, 인터넷을 통해 스트리밍 미디어 데이터를 전송하는 인터넷 스트리밍 미디어 기술이 생겨났으며, 이것은 기존 인터넷 시스템에 대해 추가적인 요건을 제안하지 않지만, 미디어 파일의 저장 및 정보 설명 방식을 수정하여 스트리밍 미디어 데이터가 기존 HTTP 프로토콜을 통해 전송되게 한다.
간단하게 MPEG DASH 표준이라고 지칭되는, MPEG(moving pictures experts group)에 의해 작성된 DASH(Dynamic adaptive streaming over HTTP) 표준은, 스트리밍 미디어 데이터를 전송하기 위한 인터넷 스트리밍 미디어 기술을 채택하는 표준화 방식을 제공한다.
MPEG DASH에 의해 정의되는 미디어 프레젠테이션 설명의 계층 구조 모델은 에 도 1에 도시된 바와 같다.
계층 구조 모델에서, 기간은 기간 동안 재생될 수 있는 미디어 콘텐츠를 기술하는데 사용되고, 시퀀스가 인접한 기간에 의해 기술되는 미디어 콘텐츠는 시간적으로 연속이다. 하나의 기간은 복수의 적응 세트를 포함하고, 각각의 적응 세트는 복수의 코드 레이트에 적합한 미디어 콘텐츠를 기술하고, 각각의 코드 레이트는 하나의 표현에 대응한다. 표현은 특정 캡슐화 포맷, 코드 레이트 및 인코딩/디코딩 파라미터 등과 같은 미디어 콘텐츠의 정보를 기술한다. 하나의 표현은 복수의 세그먼트의 URL(uniform resource locator)를 포함하며, 여기서 URL은 대응하는 세그먼트의 저장 위치를 표시하는데 사용된다. 세그먼트는 특정 미디어 콘텐츠, 즉 오디오, 비디오, 캡션, 및 다중화된 오디오 및 비디오 등을 포함한다.
앞서 논의된 MPEG DASH 표준에 기초하여 인터넷을 통해 스트리밍 미디어 데이터를 전송하는 선택적인 해결책은, 첫번째로 웹소켓 양방향 접속을 구축하고, 웹소켓 텍스트 프레임을 통해 MPEG DASH 표준의 제어 정보를 전송하며, 웹소켓 이진 프레임을 통해 세그먼트를 전송하는 것이다.
도 1에 나타난 바와 같은 프레임워크 하에서 미디어 콘텐츠의 클라이언트 표현의 프로세스는 도 2에 나타나 있다. 도 1에 나타난 바와 같은 프레임워크 하에서 미디어 콘텐츠의 클라이언트 표현의 프로세스는 다음 단계들을 포함한다.
단계 S201에서, 클라이언트는 OpenMedia 메시지를 서버에 전송한다. 클라이언트는 메시지에 MPD의 URL 주소를 전달함으로써 서버에 재생될 필요가 있는 미디어를 표시한다.
단계 S202에서, 서버는 MediaInfo 메시지를 클라이언트에게 전송하여, 미디어의 정보(예를 들어, 미디어가 준비되어 있다는 것)를 클라이언트에게 알린다.
단계 S203에서, 클라이언트는 StartStream 메시지를 서버에 전송하여, 서버에게 미디어를 배포할 것을 요구한다.
단계 S204에서, 서버는 StreamInfo 메시지를 클라이언트에게 전송하여, 미디어 스트림의 정보를 클라이언트에게 알린다.
단계 S205에서, 서버는 미디어 세그먼트를 배포하기 시작한다.
클라이언트가 서버에게 미디어를 재생하기 시작할 것을 요구한 후에, 서버는 클라이언트에게 전송된 StreamInfo 메시지에, 도 2에서의 단계 S204에서 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 표현을 배포할 것인지를 표시하는데 사용되는 표시 정보 multipleRepresentation을 전달할 수 있다. 이 표시 정보가 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 표현을 배포할 것이라고 표시하는 경우, 서버는 클라이언트에게 세그먼트를 전송할 때 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트(즉, 복수의 표현에 포함된 동일한 콘텐츠와 상이한 코드 레이트를 갖는 세그먼트)를 전송할 것이다.
상술한 프로세스에서의 OpenMedia 메시지, MediaInfo 메시지, StartStream 메시지 및 StreamInfo 메시지는 MPEG DASH 표준에 대해 웹소켓 프로토콜을 통해 확장되고 웹소켓 텍스트 프레임을 통해 전송되는 메시지로서 고려될 수 있다.
그러나, 클라이언트는 서버에 의해 첫번째로 전송된 세그먼트가 높은 코드 레이트를 갖는 세그먼트인지 또는 낮은 코드 레이트를 갖는 세그먼트인지 알지 못한다.
공지된 구현은 다음을 포함한다: 하나의 세그먼트를 수신한 후에, 클라이언트는 더 높은 코드 레이트를 갖는 세그먼트가 수신되었는지를 미리 설정된 대기 기간 내에 결정하고; 더 높은 코드 레이트를 갖는 세그먼트가 수신되었다면, 더 높은 코드 레이트를 갖는 세그먼트는 디코딩되어 나타나고; 더 높은 코드 레이트를 갖는 세그먼트가 수신되지 않았다면, 이전에 수신된 세그먼트가 디코딩되어 나타난다.
서버가 첫번째로 높은 코드 레이트를 갖는 세그먼트를 전송하는 경우, 상술한 구현에서, 높은 코드 레이트를 갖는 세그먼트를 수신한 후에, 클라이언트는 미리 설정된 대기 기간 동안 여전히 대기할 것이며, 그 이유는 클라이언트가 차후에 서버에 의해 전송되는 동일한 콘텐츠 및 상이한 코드 레이트를 갖는 세그먼트가 더 높은 코드 레이트를 갖는 세그먼트인지 또는 더 낮은 코드 레이트를 갖는 세그먼트인지를 알지 못하여, 클라이언트측에서 디코딩의 시간 지연이 증가하게 되기 때문이다.
본 개시 내용은 클라이언트가 더 높은 코드 레이트를 갖는 세그먼트를 대기함으로 인한 디코딩의 긴 시간 지연의 문제점을 해결하는데 사용되는 스트리밍 미디어 데이터 전송 장치, 방법 및 시스템을 제공한다.
본 개시 내용의 일 양태에 따르면, 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 결정하도록 구성되는 제1 프로세싱 모듈; 및 제1 프로세싱 모듈이 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것이라고 결정할 때 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하도록 구성되는 제2 프로세싱 모듈을 포함하는 클라이언트가 제공된다.
본 개시 내용의 제2 양태에 따르면, 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트가 클라이언트에게 배포될 때, 높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지 또는 낮은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지를 결정하도록 구성되는 프로세싱 모듈; 및 높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지를 표시하는데 사용되는 제1 표시 정보를 클라이언트에게 전달하도록 구성되는 송수신기 모듈을 포함하는 서버가 제공된다.
본 개시 내용의 제3 양태에 따르면, 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 결정하는 단계; 및 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포한다면, 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하는 단계를 포함하는 스트리밍 미디어 데이터 전송 방법이 제공된다.
본 개시 내용의 제4 양태에 따르면, 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트가 클라이언트에게 배포될 때, 높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지 또는 낮은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지를 결정하는 단계; 및 높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지를 표시하는데 사용되는 제1 표시 정보를 클라이언트에게 전달하는 단계를 포함하는 다른 스트리밍 미디어 데이터 전송 방법이 제공된다.
본 개시 내용의 제5 양태에 따르면, 클라이언트 및 서버를 포함하는 스트리밍 미디어 데이터 전송 시스템이 제공되고, 여기서 클라이언트는 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 결정하고나서, 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포한다면 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하도록 구성되고; 서버는 미디어 세그먼트를 클라이언트에게 배포하도록 구성된다.
요약하면, 본 개시 내용의 실시예에서, 클라이언트는 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정할 수 있다. 따라서, 클라이언트가 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정할 때, 클라이언트는 서버에게 더 높은 코드 레이트를 갖는 세그먼트를 배포하도록 대기시키지 않고 수신된 세그먼트를 즉시 디코딩할 수 있게 하여, 클라이언트에서 디코딩의 시간 지연을 단축시킨다.
도 1은 MPEG DASH 표준에 의해 정의되는 MPD 계층 구조의 모델 다이어그램이다;
도 2는 클라이언트가 도 1에 나타낸 바와 같은 프레임워크 하의 미디어 콘텐츠를 나타내는 프로세스의 개략적인 흐름도이다;
도 3은 본 개시 내용의 실시예에서 제공되는 스트리밍 미디어 데이터 전송 시스템의 구조의 개략도이다;
도 4는 웹소켓 프레임의 구조의 개략도이다;
도 5는 코드 레이트 전환을 위한 방식의 개략도이다;
도 6은 본 개시 내용의 제1 실시예에서 클라이언트의 스트리밍 미디어 데이터 전송의 프로세스의 흐름도이다;
도 7a는 본 개시 내용의 실시예에서 제공되는 클라이언트의 제1 구조의 개략도이다;
도 7b는 본 개시 내용의 실시예에서 제공되는 클라이언트의 제2 구조의 개략도이다;
도 7c는 본 개시 내용의 실시예에서 제공되는 클라이언트의 제3 구조의 개략도이다;
도 7d는 본 개시 내용의 실시예에서 제공되는 클라이언트의 제4 구조의 개략도이다;
도 8은 본 개시 내용의 실시예에서 제공되는 서버의 구조의 개략도이다;
도 9는 본 개시 내용의 실시예에서 제공되는 스트리밍 미디어 데이터 전송 방법의 흐름도이다;
도 10은 본 개시 내용의 실시예에서 제공되는 다른 스트리밍 미디어 데이터 전송 방법의 흐름도이다.
도 2는 클라이언트가 도 1에 나타낸 바와 같은 프레임워크 하의 미디어 콘텐츠를 나타내는 프로세스의 개략적인 흐름도이다;
도 3은 본 개시 내용의 실시예에서 제공되는 스트리밍 미디어 데이터 전송 시스템의 구조의 개략도이다;
도 4는 웹소켓 프레임의 구조의 개략도이다;
도 5는 코드 레이트 전환을 위한 방식의 개략도이다;
도 6은 본 개시 내용의 제1 실시예에서 클라이언트의 스트리밍 미디어 데이터 전송의 프로세스의 흐름도이다;
도 7a는 본 개시 내용의 실시예에서 제공되는 클라이언트의 제1 구조의 개략도이다;
도 7b는 본 개시 내용의 실시예에서 제공되는 클라이언트의 제2 구조의 개략도이다;
도 7c는 본 개시 내용의 실시예에서 제공되는 클라이언트의 제3 구조의 개략도이다;
도 7d는 본 개시 내용의 실시예에서 제공되는 클라이언트의 제4 구조의 개략도이다;
도 8은 본 개시 내용의 실시예에서 제공되는 서버의 구조의 개략도이다;
도 9는 본 개시 내용의 실시예에서 제공되는 스트리밍 미디어 데이터 전송 방법의 흐름도이다;
도 10은 본 개시 내용의 실시예에서 제공되는 다른 스트리밍 미디어 데이터 전송 방법의 흐름도이다.
본 개시 내용의 실시예들은 클라이언트가 높은 코드 레이트를 갖는 세그먼트를 대기함으로 인한 디코딩의 긴 시간 지연의 문제점을 해결하는데 사용되는 스트리밍 미디어 데이터 전송 장치 및 방법을 제안한다.
이하, 본 개시 내용의 실시예를 첨부 도면들과 결합하여 상세하게 설명할 것이다. 첫번째로, 본 개시 내용의 실시예에서 제공되는 스트리밍 미디어 데이터 전송 시스템이 도입될 것이고; 다음으로, 본 개시 내용의 실시예들에서 제공되는 클라이언트 및 서버가 각각 도입될 것이며; 마지막으로, 본 개시 내용의 실시예들에서 제공되는 2가지 종류의 스트림 미디어 데이터 전송 방법이 도입될 것이다.
도 3은 본 개시 내용의 실시예에서 제공되는 스트리밍 미디어 데이터 전송 시스템의 구조의 개략도이다. 도 3에 도시된 바와 같이, 시스템은 클라이언트(301)와 서버(302)를 포함한다.
클라이언트(301)는 서버(302)가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 결정한다. 서버(302)가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포한다고 결정하는 경우에, 클라이언트(301)는 또한 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정한다.
서버(302)는 미디어를 클라이언트(301)에게 배포한다.
도 3에는, 단순한 다이어그램을 위해, 단 하나의 클라이언트(301)와 하나의 서버(302)가 도시되어 있다. 실제로, 하나의 서버(302)는 미디어를 복수의 클라이언트(301)에게 배포할 수 있다. 또한, 하나의 클라이언트(301)는 복수의 서버(302)에게 각각 미디어를 배포하도록 요구할 수 있다.
본 개시 내용의 실시예에서, 선택적으로, 클라이언트(301)는 서버(302)와 웹소켓 양방향 접속을 구축한다. 스트리밍 미디어 전송은 구축된 웹소켓 양방향 접속에 기초하여 수행된다. 클라이언트(301)는 도 2에서의 단계 S203에서 서버(302)에게 미디어를 배포하도록 요구할 수 있는데, 즉 클라이언트(301)가 서버(302)에게 StartStream 메시지를 전송하여 미디어 스트림을 요청한다.
예를 들어, 클라이언트(301)는 서버(302)에게 미디어를 배포하도록 요구한 후에 및 서버(302)가 각각의 세그먼트를 클라이언트(301)에게 배포하기 전에 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정할 수 있다. 대안적으로, 클라이언트(301)는 또한 미디어를 배포하는 서버(302)의 프로세스에서, 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정할 수 있다.
특히, 서버(302)는 서버(302)가 클라이언트(301)에게 전송되는 StreamInfo 메시지에 multipleRepresentation 키를 통해 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 클라이언트(301)에게 표시할 수 있다. 키의 값이 "참(true)"일 때, 서버(302)가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포한다고 클라이언트(301)에게 표시된다.
현재, StreamInfo 메시지의 포맷은 표 1에 도시된 바와 같다.
키의 명칭 | 값의 유형 | 설명 |
streamDescriptor | 수치(Number) | 스트림 기술어 |
mediaDescriptor | 수치(Number) | 세그먼트 기술어 |
multipleRepresentation | 불(Boolean) | 선택적, 참의 값은 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 클라이언트에게 전송할 것이라는 것을 표시한다 |
segmentSkipped | 불(Boolean) | 선택적, 참의 값은 서버가 최신 세그먼트를 배포 및 생방송하기 위해 일부 세그먼트를 스킵할 것이라는 것을 표시한다 |
minBufferTime | 수치(Number) | 선택적, 최소 버퍼 시간 |
minNetworkBufferTime | 수치(Number) | 선택적, 세그먼트 데이터를 디코딩하기 시작할 때 적어도 클라이언트에 의해 버퍼링될 데이터의 지속 시간을 나타낸다 |
Segment | 대상(Object) | 선택적, 세그먼트의 속성을 차후 이진 프레임으로 표시한다 |
특히, 클라이언트(301)가 미디어를 배포하는 서버(302)의 프로세스에서, 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하는 경우에, 클라이언트(301)는 서버(302)가 다음 모드 1 또는 모드 2를 통해 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정할 수 있다. 클라이언트(301)가 서버(302)가 각각의 세그먼트를 배포하기 전에, 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하는 경우에, 클라이언트(301)는 서버(302)가 다음 모드 2를 통해 높은 코드 레이트를 갖는 세그먼트를 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정할 수 있다.
모드 1: 클라이언트(301)는 스스로 결정하는 것을 수행한다.
클라이언트(301)가 서버(302)에게 미디어를 배포하도록 요구한 후 미리 설정된 상한 코드 레이트인 코드 레이트를 갖는 서버(302)에 의해 전송되는 제1 세그먼트를 클라이언트(301)가 수신하는 경우(예를 들어, 클라이언트(301)가 서버(302)에 의해 클라이언트(301)에게 배포되는 각각의 세그먼트의 최대 코드 레이트를 미리 알고 있고, 최대 코드 레이트는 미리 설정된 상한 코드 레이트로서 설정된다), 클라이언트(301)는 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정한다. 클라이언트(301)가 서버(302)에게 미디어를 배포하도록 요구한 후 미리 설정된 하한 코드 레이트인 코드 레이트를 갖는 서버(302)에 의해 전송되는 제1 세그먼트를 클라이언트(301)가 수신하는 경우(예를 들어, 클라이언트(301)가 서버(302)에 의해 클라이언트(301)에게 배포되는 각각의 세그먼트의 최소 코드 레이트를 미리 알고 있고, 최소 코드 레이트는 미리 설정된 하한 코드 레이트로서 설정된다), 클라이언트(301)는 서버(302)가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정한다.
클라이언트(301)가 서버(302)에게 미디어를 배포하도록 요구한 후 서버(302)에 의해 전송되는 높은 코드 레이트를 갖는 세그먼트를 첫번째로 수신하고나서 서버(302)에 의해 전송되는 낮은 코드 레이트를 갖는 세그먼트를 수신하는 경우, 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정된다. 클라이언트(301)가 서버(302)에 의해 전송되는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 수신하고나서 서버(302)에 의해 전송되는 높은 코드 레이트를 갖는 세그먼트를 수신하는 경우, 서버(302)가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정된다.
특히, 클라이언트(301)가 서버(302)에게 미디어를 배포하도록 요구한 후에 미리 설정된 상한 코드 레이트보다 낮은 그리고 미리 설정된 하한 코드 레이트보다 높은 코드 레이트를 갖는 서버(302)에 의해 전송되는 제1 세그먼트를 수신하는 경우, 서버(302)는 다음 세그먼트를 수신하기를 대기하고, 수신된 다음 세그먼트의 코드 레이트가 제1 세그먼트의 코드 레이트보다 낮은 경우, 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정되고; 수신된 다음 세그먼트의 코드 레이트가 제1 세그먼트의 코드 레이트보다 높은 경우, 서버(302)가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정된다.
클라이언트(301) 자신이 결정하기 위한 많은 모드들이 있다. 상술한 모드는 예시일 뿐이다.
모드 2: 클라이언트(301)는 서버(302)에 의해 전송되는 제1 표시 정보에 따라 결정한다.
제1 표시 정보는 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 표시하는데 사용된다. 선택적으로, 클라이언트(301)가 서버(302)와 웹소켓 양방향 접속을 구축하면, 스트리밍 미디어는 구축된 웹소켓 양방향 접속에 기초하여 전송되고, 표 1에 나타낸 바와 같은 StreamInfo 메시지는 StreamInfo 메시지에 제1 표시 정보를 제공하도록 수정될 수 있다. 예를 들어, 하기 표 2에 나타낸 바와 같이, 키 "bitratePriority"는 표 1에 나타낸 바와 같은 StreamInfo 메시지에 부가될 수 있고, 제1 표시 정보는 키 "bitratePriority"를 통해 제공된다. 예를 들어, 표 2에서, 키 "bitratePriority"는 키 "multipleRepresentation" 뒤에 위치한다. 실제 구현에서, 키 "bitratePriority"의 위치는 예를 들어, 표 2에 도시된 바와 같은 위치에 한정되지 않으며, 전체 메시지의 끝에 위치할 수 있다.
표 2에서의 "bitratePriority"의 값의 유형은 불(boolean)이다. "참(true)"의 값은 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라는 것을 표시하고, "거짓(false)"의 값은 서버(302)가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라는 것을 표시한다. 실제 구현에서, "bitratePriority"의 값은 수치(number)와 같은 다른 유형일 수 있다. "1"의 값은 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라는 것을 표시하고, "0"의 및 값은 서버(302)가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라는 것을 표시한다. 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 클라이언트(301)가 결정할 수 있다면, 특정 구현은 상술한 예들에 한정되지 않는다.
키의 명칭 | 값의 유형 | 설명 |
streamDescriptor | 수치(Number) | 스트림 기술어 |
mediaDescriptor | 수치(Number) | 세그먼트 기술어 |
multipleRepresentation | 불(Boolean) | 선택적, 참의 값은 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 클라이언트에게 전송할 것이라는 것을 표시한다 |
bitratePriority | 불(Boolean) | 선택적, multipleRepresentation이 참일 때, bitratePriority만이 나타나고; 참의 값은 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라는 것을 표시하고, 거짓의 값은 서버가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라는 것을 표시한다 |
segmentSkipped |
불(Boolean) |
선택적, 참의 값은 서버가 최신 세그먼트를 배포 및 생방송하기 위해 일부 세그먼트를 스킵할 것이라는 것을 표시한다 |
minBufferTime | 수치(Number) | 선택적, 최소 버퍼 시간 |
minNetworkBufferTime | 수치(Number) | 선택적, 세그먼트 데이터를 디코딩하기 시작할 때 적어도 클라이언트에 의해 버퍼링될 데이터의 지속 시간을 나타낸다 |
Segment | 대상(Object) | 선택적, 세그먼트의 속성을 차후 이진 프레임으로 표시한다 |
선택적으로, 클라이언트가 확실하게 세그먼트를 수신하는 것을 인식할 수 있게 하기 위해, 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정될 때, 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후에, 클라이언트(301)는 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되었는지를 추가로 결정할 수 있다. 높은 코드 레이트를 갖는 세그먼트의 수신이 제1 시간 임계치 내에 완료되지 않았다면, 클라이언트(301)는 높은 코드 레이트를 갖는 세그먼트의 수신을 포기할 수 있으며, 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작한다.
선택적으로, 클라이언트(301)는 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 시간을 측정하기 시작할 수 있다. 대안적으로, 클라이언트(301)는 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정된 후 시간을 측정하기 시작할 수 있다.
선택적으로, 서버(302)에게 미디어를 배포하도록 요구한 후에 및 서버(302)가 각각의 세그먼트를 클라이언트(301)에게 배포하기 전에 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 클라이언트(301)가 결정하는 경우, 클라이언트(301)는 또한 서버(302)에게 미디어를 배포하도록 요구한 후 시간을 측정하기 시작할 수 있다.
산텍적으로, 네트워크 전송 리소스를 세이브하고 클라이언트(301)와 서버(302) 간의 세그먼트 전송 효율을 향상시키기 위해, 클라이언트(301)가 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료한다면, 클라이언트(301)는 제2 표시 정보를 서버(302)로 전송하고, 제2 표시 정보는 낮은 코드 레이트를 갖는 세그먼트를 전송할 필요가 없다는 것을 서버(302)에게 통보하는데 사용된다.
선택적으로, 클라이언트(301)가 서버(301)와 웹소켓 양방향 접속을 구축하고, 이 구축된 웹소켓 양방향 접속에 기초하여 스트리밍 미디어가 전송되는 경우, 클라이언트(301)는 웹소켓 프레임에서의 표시 정보에 따라 세그먼트의 수신이 완료되었는지를 결정할 수 있다.
웹소켓 프레임의 구조는 도 4에 도시된 바와 같다. 여기서, 조작 코드는 4비트를 차지한다. 조작 코드의 값과 이 조작 코드에 의해 표현되는 의미 간의 대응 관계는 다음과 같다.
0: 종료 태그와 결합된 것으로, 세그먼트화된 프레임의 중간 세그먼트를 표시한다
1: 텍스트 프레임
2: 이진 프레임
3-7: 보유(preserved)
8: 클로즈 접속(close connection)
9: 핑 명령(Ping command)
A: 퐁 명령(Pong command)
B-F: 보유(preserved)
전송될 데이터가 너무 크고 하나의 웹소켓 이진 프레임에 캡슐화될 수 없다면, 웹소켓 프로토콜은 전송될 데이터가 분할될 수 있다고 규정한다:
분할되지 않은 프레임의 경우: 종료 태그=1, 조작 코드≠0
분할된 프레임의 경우:
제1 세그먼트: 종료 태그=0, 조작 코드≠0
제2 세그먼트 내지 제(N-1) 세그먼트 s: 종료 태그=0, 조작 코드=0
제N 세그먼트, 즉, 마지막 세그먼트: 종료 태그=1, 조작 코드=0
서버(302)에 의해 전송되는 StreamInfo 메시지를 포함하는 텍스트 프레임을 수신한 후에, 클라이언트(301)는 서버(302)에 의해 전송되는 세그먼트를 수신하기 시작한다. 하나의 세그먼트가 너무 크면, 이 세그먼트는 복수의 단편으로 분할될 수 있다. 복수의 단편은 전송될 복수의 웹소켓 이진 프레임에 배치될 수 있다. 특히, 하나의 단편은 하나의 웹소켓 이진 프레임에 전송된다.
서버(302)는 하나 이상의 이진 프레임을 통해 하나의 세그먼트를 전송한다. 클라이언트(301)가 "0"의 종료 태그와 "0"과는 다른 조작 코드를 갖는 이진 프레임을 수신할 때, 현재의 세그먼트가 단편들로 전송되고(즉, 하나의 세그먼트는 복수의 이진 프레임들에 의해 전송된다), 이 이진 프레임이 세그먼트의 제1 단편을 포함하며, 세그먼트의 나머지 프레임을 포함하는 이진 프레임이 추후 수신될 필요가 있다고 결정한다. 클라이언트(301)는 수신된 이진 프레임의 종료 태그가 "0"이 되고 그 조작 코드가 "0"이 될 때까지 지속적으로 후속 이진 프레임들을 수신하고나서, 세그먼트의 수신이 이미 완료되었다고 결정한다.
상술한 바와 같이, 클라이언트(301)가 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료한다면, 클라이언트(301)는 제2 표시 정보를 서버(302)로 전송하고, 제2 표시 정보는 낮은 코드 레이트를 갖는 세그먼트를 전송할 필요가 없다는 것을 서버(302)에게 통보하는데 사용된다. 제2 표시 메시지는 표 3에 나타낸 바와 같은 새롭게 정의된 메시지 ReceiveReport에 의해 전송될 수 있다.
제어 메시지(cmdCode) | 설명 | 송신기 | |
클라이언트 | 서버 | ||
ReceiveReport | 서버가 세그먼트의 전송을 조정하도록 세그먼트의 수신 상태를 서버에게 보고한다. 예를 들어, multipleRepresentation의 값이 참이고 bitratePriority의 값이 참일 때, 클라이언트가 높은 코드 레이트를 갖는 세그먼트를 수신했으며 이를 이 메시지를 통해 서버에게 알리는 경우, 서버는 낮은 코드 레이트를 갖는 세그먼트의 전송을 취소할 것이다. | 예(Yes) |
선택적으로, 메시지는 하기 표 4에 열거된 키-값 쌍을 포함할 수 있다.
키 명칭 | 값의 유형 | 설명 |
adaptationSetID | 문자열(string) | 세그먼트가 위치하는 적응 세트(Adaptation Set)의 ID |
representationID | 문자열(string) | 세그먼트가 위치하는 표현(Representation)의 ID |
segmentNumber | 수치(Number) | 세그먼트의 시리얼 번호 |
ReceiveStatus | 불(Boolean) | segmentNumber에 의해 식별되는 세그먼트의 수신 상태를 표시하며; 참은 성공적으로 수신되었다는 것을 표시하고, 거짓은 수신에 실패하였다는 것을 표시한다. |
클라이언트(301)가 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료한다면, 클라이언트(301)는 ReceiveReport 메시지를 서버로 전송하고, 메시지의 ReceiveStatus는 참이 된다. 메시지를 수신한 후에, 서버(302)는 낮은 코드 레이트를 갖는 세그먼트를 클라이언트(301)에게 전송하지 않을 것이다.
클라이언트(301)가 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료하지 못하면, 클라이언트(301)는 ReceiveReport 메시지를 서버(302)로 전송하고, 메시지의 ReceiveStatus는 거짓이 된다. 서버(302)는 높은 코드 레이트를 갖는 세그먼트의 전송을 중단하고, 낮은 코드 레이트를 갖는 세그먼트를 전송하기 시작한다.
서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 클라이언트(301)에 의해 결정되는 경우의 프로세싱 방식은 위에 상세히 기술되어 있다. 서버(302)가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 클라이언트(301)에 의해 결정되는 경우의 프로세싱 방식은 아래 기술될 것이다.
서버(302)가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정되면, 클라이언트(301)는 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 높은 코드 레이트를 갖는 세그먼트를 계속해서 수신한다.
선택적으로, 클라이언트(301)는 높은 코드 레이트를 갖는 복수의 세그먼트가 존재하는지를 결정한다. 높은 코드 레이트를 갖는 복수의 세그먼트가 존재하면, 클라이언트(301)는 클라이언트(301)와 서버(302) 간의 네트워크 대역폭에 따라 높은 코드 레이트를 갖는 복수의 기존 세그먼트 중에서 하나를 선택하고 수신하기 시작한다.
높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후에, 클라이언트(301)는 높은 코드 레이트를 갖는 세그먼트의 수신이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제2 시간 임계치 내에 완료되었는지를 결정한다. 클라이언트(301)가 높은 코드 레이트를 갖는 세그먼트의 수신이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제2 시간 임계치 내에 완료되지 않았다고 결정하면, 클라이언트(301)는 수신이 이미 완료된 낮은 코드 레이트를 갖는 세그먼트를 디코딩한다.
선택적으로, 클라이언트(301)는 또한 서버(302)가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정한 후 시간을 측정하기 시작할 수 있다.
선택적으로, 상술한 바와 같이, 서버(302)에게 미디어를 배포하도록 요구한 후에 및 서버(302)가 각각의 세그먼트를 클라이언트(301)에게 배포하기 전에 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 클라이언트(301)가 결정하는 경우, 클라이언트(301)는 서버(302)에게 미디어를 배포하도록 요구한 후 시간을 측정하기 시작할 수 있다.
이 선택적인 해결책에서, 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 수신한 후에, 클라이언트(301)는 낮은 코드 레이트를 갖는 수신된 세그먼트를 디코딩하지 않고, 높은 코드 레이트를 갖는 세그먼트가 수신되기를 대기한다. 클라이언트(301)가 서버(302)에게 미디어를 배포하도록 요구한 후 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료한다면, 클라이언트(301)는 높은 코드 레이트를 갖는 세그먼트를 디코딩하고, 이전에 수신된 낮은 코드 레이트를 갖는 세그먼트를 포기하고; 클라이언트(301)가 서버(302)에게 미디어를 배포하도록 요구한 후 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료하지 못했다면, 클라이언트(301)는 수신이 완료된 낮은 코드 레이트를 갖는 세그먼트를 디코딩하여, 세그먼트의 수신에 대한 신뢰도를 보장한다.
제1 시간 임계치와 제2 시간 임계치는 하기 모드를 포함하는 다양한 모드에 의해 결정될 수 있다:
모드 1: 그들은 예를 들어, 클라이언트(301)와 서버(302) 간의 네트워크 토폴로지에 따라 미리 구성된 미리 설정된 지속 시간이다.
모드 2: 클라이언트(301)가 세그먼트를 전송하는데 필요한 지속 시간을 계산하고 획득하기 위해, 세그먼트의 URL에 포함되는 세그먼트 바이트의 수치를, 세그먼트가 MPD에 속하는 프레젠테이션의 대역폭 속성의 값으로 나누고나서, 제1 시간 임계치와 제2 시간 임계치가 계산된 지속 시간에 따라 결정된다.
모드 3: 예를 들어, 제1 시간 임계치 및/또는 제2 시간 임계치를 세그먼트의 재생 지속 시간, 즉 세그먼트가 속하는 프레젠테이션의 지속 시간 속성의 값으로서 설정하거나, 제1 시간 임계치 및/또는 제2 시간 임계치를 값의 절반으로서 설정하는 세그먼트의 재생 지속 시간에 따라 결정된다.
모드 4: 클라이언트(301)와 서버(302) 간에 실시간으로 획득되는 네트워크 상태(예를 들어, 네트워크 혼잡 상태, 콘텐츠 획득 지속시간, 디코딩 지속시간, 및 버퍼 미디어가 재생될 수 있는 지속 시간 등)에 따라 실시간으로 조정된다.
MPD에 기술된 것으로 세그먼트가 속하는 프레젠테이션의 속성은 하기 표 5에 나타나 있다.
원소/속성 명칭 | 설명 |
Representation | 프레젠테이션 원소 |
@bandwidth | 프레젠테이션에 포함되는 세그먼트를 전송하는데 필요한 네트워크 대역폭; 필요한 네트워크 대역폭이 높을수록, 세그먼트에 포함되는 콘텐츠의 코드 레이트가 더 높아진다. |
@frameRate | 세그먼트에 포함되는 콘텐츠의 프레임 레이트; 프레임 레이트가 높을수록, 세그먼트에 포함되는 콘텐츠의 코드 레이트가 더 높아진다. |
SegmentList | 세그먼트 리스트 |
@duration | 각각의 세그먼트의 재생 지속 시간을 표시하며; 하나의 프레젠테이션에서 복수의 세그먼트의 재생 지속 시간은 동일하고 초를 단위로 한다. |
@startNumber | 프레젠테이션에 포함되는 제1 세그먼트의 시리얼 번호를 표시한다 |
SegmentURL | 세그먼트를 획득하기 위한 실제 주소; 각각의 세그먼트는 하나의 SegmentURL에 대응한다 |
본 개시 내용의 실시예에서, 클라이언트(301)는 도 5에 나타낸 바와 같이 하나의 모드에서 코드 레이트를 전환할 수 있다:
클라이언트(301)는 현재 재생되고 있는 세그먼트가 속하는 프레젠테이션(명확한 설명을 위해, 본 명세서에서는 "프레젠테이션 1"로서 표시된다)을 MPD에서 찾고, 프레젠테이션 1에서 startNumber 속성의 값과 세그먼트에 대응하는 SegmentURL 원소의 배열 시리얼 번호(N으로서 표시됨)에 따라 현재 세그먼트의 시리얼 번호를 startNumber+N으로서 계산하고; 다음으로, 클라이언트(301)는 동일한 적응 세트에 속하는 전환시킬 준비가 되어 있는 프레젠테이션("프레젠테이션 2"로서 표시됨)을 찾고, 동일한 콘텐츠를 포함하고 상이한 코드 레이트를 가지며, 시리얼 번호 startNumber+N+1를 갖는 세그먼트(세그먼트 N+1로서 표시됨)를 프레젠테이션 2에서 찾고나서; 클라이언트(301)는 서버(302)에게 프레젠테이션 2에서 세그먼트 N+1를 요구한다.
상술한 설명은 스트리밍 미디어 전송 시스템의 해결책과 본 개시 내용의 실시예에서 제공되는 코드 레이트를 전환하는 해결책을 도입한다. 스트리밍 미디어 데이터 전송의 해결책이 클라이언트와 서버의 상호 협동의 관점에서 도입되었지만, 클라이언트와 서버가 서로 협동되어야만 한다는 것을 의미하는 것은 아니다. 실제로, 클라이언트와 서버가 개별적으로 구현될 때에는, 클라이언트측에서 및 서버측에서 존재하는 문제가 각각 해결되고, 클라이언트와 서버가 조합하여 구현될 때에만, 보다 나은 기술적 효과가 달성될 것이다.
본 개시 내용의 실시예에서 제공되는 클라이언트, 서버 및 2개의 스트리밍 미디어 데이터 전송 방법은 아래 각각 도입될 것이다. 기술적인 문제를 해결하기 위한 그들의 원리가 본 개시 내용의 실시예에서 제공되는 스트리밍 미디어 데이터 전송 시스템과 유사하기 때문에, 그들의 구현은 시스템의 구현을 참조할 수 있으며, 그에 따라 본 명세서에서는 반복적인 설명이 제공되지 않는다.
본 개시 내용의 제1 실시예에서의 클라이언트(301)의 스트리밍 미디어 데이터 전송의 프로세싱 예는 도 6을 참고하여 아래 기술될 것이다.
단계 S600에서, 클라이언트(301)는 서버(302)에게 미디어를 배포하도록 요구한다.
단계 S601에서, 클라이언트(301)는 서버(302)에 의해 전송되는 StreamInfo 메시지를 수신한다.
단계 S602에서, 클라이언트(301)는 서버(302)가 StreamInfo 메시지에서의 표시 정보 multipleRepresentation에 따라 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 결정한다. multipleRepresentation의 값이 거짓이면, 클라이언트(301)는 서버(302)가 단 하나의 코드 레이트를 갖는 세그먼트를 배포할 것이라고 결정한다. 그러면, 단계 S609가 실행된다. mulipleRepresentation의 값이 참이면, 클라이언트(301)는 서버(302)가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것이라고 결정한다. 그러면, 단계 S603이 실행된다.
단계 S603에서, 클라이언트(301)는 StreamInfo 메시지에서의 표시 정보 bitratePriority에 따라 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 배포할 것인지를 결정한다. bitratePriority의 값이 참이면, 클라이언트(301)는 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 배포할 것이라고 결정한다. 그러면, 단계 S611이 실행된다. bitratePriority의 값이 거짓이면, 클라이언트(301)는 서버(302)가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 배포할 것이라고 결정한다. 그러면, 단계 S604가 실행된다.
단계 S604에서, 클라이언트(301)는 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작한다.
단계 S605에서, 클라이언트(301)는 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한다.
단계 S606에서, 클라이언트(301)는 서버(302)에게 미디어를 배포하도록 요청한 후 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되었는지를 결정한다. 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되면, 단계 S615가 실행되고; 그렇지 않다면, 단계 S607이 실행된다.
단계 S607에서, 수신이 완료된 낮은 코드 레이트를 갖는 세그먼트가 디코딩된다.
단계 S608에서, 세그먼트가 재생된다.
서버(302)가 단계 S602에서 StreamInfo 메시지에서의 표시 정보 multipleRepresentation에 따라 단 하나의 코드 레이트를 갖는 세그먼트를 배포할 것이라고 결정하는 경우에, 클라이언트(301)는 단계 S609에서 서버(302)에 의해 배포된 미디어 세그먼트를 수신한다.
그러면, 단계 S610에서, 수신이 완료된 세그먼트가 디코딩된다. 다음으로, 단계 S608이 실행된다.
클라이언트(301)가 단계 S603에서 StreamInfo 메시지에서의 표시 정보 bitratePriority에 따라 서버(302)가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 배포할 것이라고 결정하는 경우에, 클라이언트(301)는 단계 S611에서 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한다.
그러면, 단계 S612에서, 클라이언트(301)는 서버(302)에게 미디어를 배포하도록 요구한 후 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되는지를 결정한다. 높은 코드를 갖는 세그먼트의 수신이 완료되면, 단계 S615가 실행되고; 그렇지 않다면, 단계 S613이 실행된다.
단계 S613에서, 클라이언트(301)는 높은 코드 레이트를 갖는 세그먼트의 수신을 포기한다.
단계 S614에서, 클라이언트(301)는 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작한다. 다음으로, 단계 S607이 실행된다.
단계 S615에서, 클라이언트(301)는 수신이 완료된 높은 코드 레이트를 갖는 세그먼트를 디코딩한다.
도 7a는 본 개시 내용의 실시예에서 제공되는 클라이언트의 제1 구조의 개략도이다. 도 7a에 도시된 바와 같이, 클라이언트는 제1 프로세싱 모듈(701)과 제2 프로세싱 모듈(702)을 포함한다.
제1 프로세싱 모듈(701)은 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 결정한다.
제1 프로세싱 모듈(701)이 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것이라고 결정할 때, 제2 프로세싱 모듈(702)은 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정한다.
선택적으로, 도 7b에 도시된 바와 같이, 제2 프로세싱 모듈(702)이 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정할 때, 클라이언트는 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작하도록 구성되는 제1 송수신기 모듈(703)을 더 포함할 수 있다.
선택적으로, 도 7b에 도시된 바와 같이 클라이언트와 관련하여, 제2 프로세싱 모듈(702)은, 또한 제1 송수신기 모듈(703)이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후, 제1 송수신기 모듈(703)이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료했는지를 결정하도록 구성된다.
제1 송수신기 모듈(703)이 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료하지 못했다면, 제2 프로세싱 모듈(702)은 높은 코드 레이트를 갖는 세그먼트의 수신을 포기하고 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작하도록 제1 송수신기 모듈(703)을 제어한다.
또한, 제2 프로세싱 모듈(702)은 또한 제1 송수신기 모듈(703)이 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료했다면, 제2 표시 정보를 서버로 전송하게 제1 송수신기 모듈(703)을 제어하도록 구성되고, 제2 표시 정보는 낮은 코드 레이트를 갖는 세그먼트를 전송할 필요가 없다는 것을 서버에게 통보하는데 사용된다.
선택적으로, 도 7c에 도시된 바와 같이, 클라이언트는 제2 프로세싱 모듈(702)이 서버가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정할 때 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작하고, 낮은 코드 레이트를 갖는 세그먼트를 수신한 후에 높은 코드 레이트를 갖는 세그먼트를 계속해서 수신하기 시작하도록 구성되는 제2 송수신기 모듈(704)을 더 포함한다.
선택적으로, 낮은 코드 레이트를 갖는 세그먼트를 수신한 후에, 제2 송수신기 모듈(704)은 낮은 코드 레이트를 갖는 수신된 세그먼트를 즉시 디코딩하지 않고, 제2 프로세싱 모듈(702)의 제어에 따라 낮은 코드 레이트를 갖는 수신된 세그먼트를 디코딩할지의 여부를 결정한다.
선택적으로, 도 7c에 도시된 바와 같이 클라이언트와 관련하여, 제2 프로세싱 모듈(702)은 또한 제2 송수신기 모듈(704)이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후에, 제2 송수신기 모듈(704)이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료했는지를 결정하도록 구성된다.
제2 송수신기 모듈(704)이 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료하지 못하면, 제2 프로세싱 모듈(702)은 수신을 완료한 낮은 코드 레이트를 갖는 세그먼트를 디코딩하도록 제2 송수신기 모듈(704)을 제어한다.
또한, 제2 프로세싱 모듈(702)은 또한 제2 송수신기 모듈(704)이 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료하지 못했다면, 높은 코드 레이트를 갖는 세그먼트의 수신을 포기하게 제2 송수신기 모듈(704)를 제어하도록 구성된다.
선택적으로, 본 개시 내용의 실시예에서 제공되는 클라이언트는 도 7d에 도시된 바와 같은 구조를 가지고, 제1 프로세싱 모듈(701), 제2 프로세싱 모듈(702), 제1 송수신기 모듈(703) 및 제2 송수신기 모듈(704)을 포함한다. 제1 프로세싱 모듈(701) 및 제2 프로세싱 모듈(702)의 프로세싱은 도 7a 내지 도 7c에 도시된 바와 같은 클라이언트에서의 동일한 모듈들의 프로세싱을 참조할 수 있고; 제1 송수신기 모듈(703)과 제2 프로세싱 모듈(702) 간의 상호작용은 도 7b에 도시된 바와 같은 클라이언트에서의 프로세싱을 참조할 수 있고, 제2 송수신기 모듈(704)과 제2 프로세싱 모듈(702)의 상호작용은 도 7c에 도시된 바와 같은 클라이언트에서의 프로세싱을 참조할 수 있기 때문에, 본 명세서에서는 추가적인 설명이 제공되지 않는다.
선택적으로, 도 7a 내지 도 7d 중 어느 하나에 도시된 바와 같은 클라이언트에 관련하여, 제2 프로세싱 모듈(702)은 특히 서버에 의해 전달되며 서버가 높은 코드 레이트를 갖는 세그먼트를 전송할 것인지를 표시하는데 사용되는 제1 표시 정보에 따라 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것인지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것인지를 결정하도록 구성된다.
선택적으로, 제1 표시 정보는 StreamInfo 메시지에 위치한다.
도 8은 본 개시 내용의 실시예에서 제공되는 서버의 구조의 개략도이다. 도 8에 도시된 바와 같이, 서버는 프로세싱 모듈(801)과 송수신기 모듈(802)을 포함한다.
프로세싱 모듈(801)은 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트가 클라이언트에게 배포될 때 높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지 또는 낮은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지를 결정한다.
송수신기 모듈(802)은 높은 코드 레이트를 갖는 세그먼트가 첫번째로 클라이언트에게 전송될 것이라고 표시하는데 사용되는 제1 표시 정보를 전달한다.
선택적으로, 송수신기 모듈(802)은 또한 제1 표시 정보가 클라이언트에 전달된 후에, 클라이언트에 의해 전송되고, 낮은 코드 레이트를 갖는 세그먼트를 클라이언트에게 전송할 필요가 없다는 것을 서버에게 표시하는데 사용되는 제2 표시 정보를 수신하고; 제2 표시 정보에 따라 낮은 코드 레이트를 갖는 세그먼트를 클라이언트에게 전송하는 것을 중단하도록 구성된다.
도 9는 본 개시 내용의 실시예에서 제공되는 스트리밍 미디어 데이터 전송 방법의 흐름도이다. 도 9에 도시된 바와 같은 스트리밍 미디어 데이터 전송 방법은 클라이언트에게 적용될 수 있다.
단계 S901에서, 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 결정한다.
단계 S902에서: 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포하는 경우, 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것인지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것인지를 결정한다.
선택적으로, 단계 S902에서, 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정되면, 높은 코드 레이트를 갖는 세그먼트가 수신되기 시작한다.
선택적으로, 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후에, 스트리밍 미디어 데이터 전송 방법은, 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되었는지를 결정하는 단계; 및 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되지 않았다고 결정되면, 높은 코드 레이트를 갖는 세그먼트의 수신을 포기하고 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작하는 단계를 더 포함한다.
선택적으로, 스트리밍 미디어 데이터 전송 방법은, 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되었다면 제2 표시 정보를 서버에게 전송하는 단계를 더 포함하고, 제2 표시 정보는 낮은 코드 레이트를 갖는 세그먼트를 전송할 필요가 없다는 것을 서버에게 통보하는데 사용된다.
선택적으로, 단계 S902에서 서버가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정되면, 낮은 코드 레이트를 갖는 세그먼트가 수신된 후 계속해서 높은 코드 레이트를 갖는 세그먼트가 수신되기 시작한다.
선택적으로, 낮은 코드 레이트를 갖는 세그먼트가 수신된 후에, 스트리밍 미디어 데이터 전송 방법은, 낮은 코드 레이트를 갖는 수신된 세그먼트를 즉시 디코딩하지 않고, 높은 코드 레이트를 갖는 세그먼트의 수신 상태에 따라 낮은 코드 레이트를 갖는 수신된 세그먼트를 디코딩할지의 여부를 결정하는 단계를 더 포함한다.
선택적으로, 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후에, 스트리밍 미디어 데이터 전송 방법은, 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되었는지를 결정하는 단계; 및 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되지 않았다면 수신이 완료된 낮은 코드 레이트를 갖는 세그먼트를 디코딩하는 단계를 더 포함한다.
선택적으로, 스트리밍 미디어 데이터 전송 방법은 높은 코드 레이트를 갖는 세그먼트의 수신이 제2 시간 임계치 내에 완료되지 않았다면 높은 코드 레이트를 갖는 세그먼트의 수신을 포기하는 단계를 더 포함한다.
선택적으로, 단계 S902에서 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하는 단계는, 특히 서버에 의해 전달되며 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 표시하는데 사용되는 제1 표시 정보를 수신하는 단계; 및 수신된 제1 표시 정보에 따라 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하는 단계를 포함할 수 있다.
선택적으로, 제1 표시 정보는 StreamInfo 메시지에 위치한다.
도 10은 본 개시 내용의 실시예에서 제공되는 다른 스트리밍 미디어 데이터 전송 방법의 흐름도이다. 도 10에 도시된 바와 같은 스트리밍 미디어 데이터 전송 방법은 서버에 적용될 수 있다.
단계 S1001에서: 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트가 클라이언트에게 배포될 때 높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될 것인지 또는 낮은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될 것인지를 결정한다.
단계 S1002에서: 높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될 것이라고 표시하는데 사용되는 제1 표시 정보가 클라이언트에게 전달된다.
선택적으로, 제1 표시 정보가 단계 S1002에서 클라이언트에게 전달된 후에, 스트리밍 미디어 데이터 전송 방법은, 클라이언트에 의해 전달되며, 낮은 코드 레이트를 갖는 세그먼트를 클라이언트에게 전송할 필요가 없다는 것을 서버에게 표시하는데 사용되는 제2 표시 정보를 수신하는 단계; 및 제2 표시 정보에 따라 낮은 코드 레이트를 갖는 세그먼트를 클라이언트에게 전송하는 것을 중단하는 단계를 더 포함한다.
요약하면, 본 개시 내용의 실시예들은 스트리밍 미디어 데이터 전송 장치, 방법 및 시스템을 제공한다. 본 명세서에서, 클라이언트는 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 때 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정할 수 있고, 서버가 높은 코드 레이트를 갖는 세그먼트를 전송할 것이라고 결정될 때, 서버에게 더 높은 코드 레이트를 갖는 세그먼트를 배포하도록 대기시킬 필요없이 수신된 세그먼트를 즉시 디코딩하여, 클라이언트에서의 디코딩의 시간 지연이 짧아지게 한다.
또한, 클라이언트는 서버에 의해 전송되는 각각의 코드 레이트를 갖는 세그먼트에 따라 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하거나, 클라이언트는 서버에 의해 배포되는 제1 표시 정보에 따라 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정한다. 따라서, 클라이언트의 결정하는 2개의 특정 모드가 제공된다.
게다가, 클라이언트가 미리 설정된 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료할 수 있다면, 클라이언트는 낮은 코드 레이트를 갖는 세그먼트의 전송을 중단하도록 서버에게 표시하여, 서버의 세그먼트 전송 효율을 향상시키고 네트워크 전송 리소스를 세이브한다.
한편, 클라이언트가 미리 설정된 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료할 수 없다면, 클라이언트는 낮은 코드 레이트를 갖는 세그먼트를 수신하고 이를 디코딩하여, 스트리밍 미디어 데이터 전송의 신뢰도 및 미디어 재생의 연속성을 보장하고, 사용자 경험을 향상시킨다.
본 기술분야의 통상의 기술자들은 본 개시 내용의 실시예들이 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수 있을 것으로 이해할 것이다. 따라서, 본 개시 내용은 완전한 하드웨어 실시예, 완전한 소프트웨어 실시예, 또는 소프트웨어와 하드웨어를 결합한 실시예의 형태를 채택할 수 있다. 게다가, 본 개시 내용은 컴퓨터 판독가능 프로그램 코드를 포함하는 (자기 디스크 메모리, CD-ROM, 및 선택적 메모리 및 기타 등등을 포함하지만 이에 한정되지 않는) 하나 이상의 컴퓨터 판독가능 기억 매체 상에 구현되는 컴퓨터 프로그램 제품의 형태를 채택할 수 있다.
본 개시 내용은 본 개시 내용의 실시예들에 따른 방법, 디바이스(시스템), 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 설명된다. 흐름도 및/또는 블록도에서의 각각의 흐름 및/또는 블록과, 흐름도 및/또는 블록도에서의 흐름들 및/또는 블록들의 조합은 컴퓨터 프로그램 명령어들에 의해 구현될 수 있다는 것을 이해해야 한다. 이들 컴퓨터 프로그램 명령어들이 범용 컴퓨터, 전용 컴퓨터, 내장형 프로세서, 또는 머신을 발생하기 위한 임의의 다른 프로그램 가능한 데이터 프로세싱 디바이스의 프로세서에 제공됨으로써, 컴퓨터, 또는 다른 프로그램 가능한 데이터 프로세싱 디바이스의 프로세서에 의해 실행되는 명령어는 흐름도들 중 하나의 흐름 또는 복수의 흐름 및/또는 블록도들 중 하나의 블록 또는 복수의 블록에 특정되어 있는 기능들을 구현하도록 구성된 장치를 발생한다.
컴퓨터 판독가능 메모리에 저장되는 명령어가 명령어 장치를 포함하는 제조자를 포함하도록, 이러한 컴퓨터 프로그램 명령어들은 또한 컴퓨터 또는 다른 프로그램 가능한 데이터 프로세싱 디바이스들을 특별한 방식으로 구동시키기 위해 부팅할 수 있는 컴퓨터 판독가능 메모리에 저장될 수 있다. 이 명령어 장치는 흐름도들 중 하나의 흐름 또는 복수의 흐름 및/또는 블록도들 중 하나의 블록 또는 복수의 블록에서 특정한 기능을 구현한다.
이들 컴퓨터 프로그램 명령어들은 컴퓨터 또는 다른 프로그램가능한 데이터 프로세싱 디바이스에 로딩될 수 있으므로, 일련의 동작 단계들이 컴퓨터에 의해 구현되는 프로세싱을 발생하기 위해 컴퓨터 또는 다른 프로그램 가능한 디바이스들 상에서 실행된다. 따라서, 컴퓨터 또는 다른 프로그램 가능한 디바이스들 상에서에 실행되는 명령어들은 흐름도들 중 하나의 흐름 및/또는 복수의 흐름 및/또는 블록도들 중 하나의 블록 또는 복수의 블록에서 특정한 기능을 실현하기 위해 사용되는 단계들을 제공한다.
본 개시 내용의 바람직한 실시예들이 기술되었지만, 본 기술분야의 통상의 기술자들은 이들이 기본적인 독창적 개념을 알면 이 실시예들에 추가적인 변경 및 수정을 할 수 있다. 따라서, 청구항은 바람직한 실시예들 및 본 개시 내용의 범위에 속하는 모든 변경 및 수정을 포함하는 것으로 의도된다.
명백하게, 본 기술분야의 통상의 기술자들은 본 개시 내용의 사상 및 범주로부터 벗어나지 않고 본 개시 내용에 대한 다양한 변경 및 수정을 행할 수 있다. 이에 따라, 본 개시 내용의 이러한 수정 및 변경이 청구범위 및 그들의 동등 기술에 속한다면, 본 개시 내용은 이러한 수정 및 변경을 포함하는 것으로 의도된다.
본 출원은 발명의 명칭이 "스트리밍 미디어 데이터 전송 장치, 방법 및 시스템(STREAMING MEDIA DATA TRANSMISSION APPARATUS, METHOD AND SYSTEM"인 2015년 1월 16일자로 출원된 중국 특허 출원 제201510024568.1호의 우선권을 주장한다. 여기서, 중국 특허 출원에 의해 개시된 내용은 본 개시 내용의 일부로 전부 참조로서 포함된다.
Claims (19)
- 클라이언트로서,
서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 결정하도록 구성되는 제1 프로세싱 모듈; 및
상기 제1 프로세싱 모듈이 상기 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것이라고 결정할 때 상기 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하도록 구성되는 제2 프로세싱 모듈
을 포함하는 클라이언트. - 제1항에 있어서,
상기 제2 프로세싱 모듈이 상기 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정할 때, 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작하도록 구성되는 제1 송수신기 모듈을 더 포함하는 클라이언트. - 제2항에 있어서,
상기 제2 프로세싱 모듈은, 또한
상기 제1 송수신기 모듈이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후에, 상기 제1 송수신기 모듈이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제1 시간 임계치내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료하였는지를 결정하고;
상기 제1 송수신기 모듈이 상기 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료하지 못했다면, 높은 코드 레이트를 갖는 세그먼트의 수신을 포기하고 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작하게 상기 제1 송수신기 모듈을 제어하도록 구성되는 클라이언트. - 제3항에 있어서,
상기 제2 프로세싱 모듈은, 또한
상기 제1 송수신기 모듈이 상기 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료했다면, 제2 표시 정보를 상기 서버에 전송하게 상기 제1 송수신기 모듈을 제어하도록 구성되고, 상기 제2 표시 정보는 낮은 코드 레이트를 갖는 세그먼트를 전송할 필요가 없다는 것을 상기 서버에게 통보하는데 사용되는 클라이언트. - 제1항에 있어서,
상기 제2 프로세싱 모듈이 상기 서버가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것이라고 결정할 때 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작하고, 낮은 코드 레이트를 갖는 세그먼트가 수신된 후에 높은 코드 레이트를 갖는 세그먼트를 계속해서 수신하기 시작하도록 구성되는 제2 송수신기 모듈을 더 포함하는 클라이언트. - 제5항에 있어서,
상기 제2 프로세싱 모듈은, 또한
상기 제2 송수신기 모듈이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후에,
상기 제2 송수신기 모듈이 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료했는지를 결정하고;
상기 제2 송수신기 모듈이 상기 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료하지 못했다면, 수신이 완료된 낮은 코드 레이트를 갖는 세그먼트를 디코딩하게 상기 제2 송수신기 모듈을 제어하도록 구성되는 클라이언트. - 제6항에 있어서,
상기 제2 프로세싱 모듈은, 또한 상기 제2 송수신기 모듈이 상기 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신을 완료하지 못했다면, 높은 코드 레이트를 갖는 세그먼트의 수신을 포기하게 상기 제2 송수신기 모듈을 제어하도록 구성되는 클라이언트. - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 제2 프로세싱 모듈은, 특히 상기 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것인지를 표시하는데 사용되며 상기 서버에 의해 전달되는 제1 표시 정보에 따라 상기 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것인지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것인지를 결정하도록 구성되는 것을 특징으로 하는 클라이언트. - 서버로서,
동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트가 클라이언트에게 배포될 때, 높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지 또는 낮은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지를 결정하도록 구성되는 프로세싱 모듈; 및
높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지를 표시하는데 사용되는 제1 표시 정보를 전달하도록 구성되는 송수신기 모듈
을 포함하는 서버. - 제9항에 있어서,
상기 송수신기 모듈은, 또한
상기 제1 표시 정보를 상기 클라이언트에게 전달한 후에 상기 클라이언트에 의해 전달되는 제2 표시 정보를 수신하고 -상기 제2 표시 정보는 낮은 코드 레이트를 갖는 세그먼트를 상기 클라이언트에게 전송할 필요가 없다는 것을 상기 서버에게 표시하는데 사용됨- ;
상기 제2 표시 정보에 따라 낮은 코드 레이트를 갖는 세그먼트를 상기 클라이언트에게 전송하는 것을 중단하도록 구성되는 서버. - 스트리밍 미디어 데이터 전송 방법으로서,
서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포할 것인지를 결정하는 단계; 및
상기 서버가 동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트를 배포한다면, 상기 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하는 단계
를 포함하는 스트리밍 미디어 데이터 전송 방법. - 제11항에 있어서,
상기 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송한다면, 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작하는 단계;
높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제1 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되었는지를 결정하는 단계; 및
높은 코드 레이트를 갖는 세그먼트의 수신이 상기 제1 시간 임계치 내에 완료되지 않았다면, 높은 코드 레이트를 갖는 세그먼트의 수신을 포기하고 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작하는 단계
를 더 포함하는 스트리밍 미디어 데이터 전송 방법. - 제12항에 있어서,
높은 코드 레이트를 갖는 세그먼트의 수신이 상기 제1 시간 임계치 내에 완료되었다면, 제2 표시 정보를 상기 서버에게 전달하는 단계를 더 포함하고, 상기 제2 표시 정보는 낮은 코드 레이트를 갖는 세그먼트를 전송할 필요가 없다는 것을 상기 서버에게 통보하는데 사용되는 스트리밍 미디어 데이터 전송 방법. - 제11항에 있어서,
상기 서버가 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송한다면, 낮은 코드 레이트를 갖는 세그먼트를 수신하기 시작하고, 낮은 코드 레이트를 갖는 세그먼트가 수신된 후에 계속해서 높은 코드 레이트를 갖는 세그먼트를 수신하기 시작하는 단계를 더 포함하는 스트리밍 미디어 데이터 전송 방법. - 제14항에 있어서,
높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후에,
높은 코드 레이트를 갖는 세그먼트를 수신하기 시작한 후 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되었는지를 결정하는 단계; 및
상기 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되지 못했다면, 수신이 완료된 낮은 코드 레이트를 갖는 세그먼트를 디코딩하는 단계를 더 포함하는 스트리밍 미디어 데이터 전송 방법. - 제15항에 있어서,
상기 제2 시간 임계치 내에 높은 코드 레이트를 갖는 세그먼트의 수신이 완료되지 못했다면, 높은 코드 레이트를 갖는 세그먼트의 수신을 포기하는 단계를 더 포함하는 스트리밍 미디어 데이터 전송 방법. - 제11항 내지 제16항 중 어느 한 항에 있어서,
상기 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 결정하는 단계는,
상기 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할지를 표시하는데 사용되며 상기 서버에 의해 전달되는 제1 표시 정보를 수신하는 단계; 및
수신된 제1 표시 정보에 따라 상기 서버가 높은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것인지 또는 낮은 코드 레이트를 갖는 세그먼트를 첫번째로 전송할 것인지를 결정하는 단계를 포함하는 스트리밍 미디어 데이터 전송 방법. - 스트리밍 미디어 데이터 전송 방법으로서,
동일한 콘텐츠와 상이한 코드 레이트를 갖는 복수의 세그먼트가 클라이언트에게 배포될 때, 높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지 또는 낮은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지를 결정하는 단계; 및
높은 코드 레이트를 갖는 세그먼트가 첫번째로 전송될지를 표시하는데 사용되는 제1 표시 정보를 상기 클라이언트에게 전달하는 단계
를 포함하는 스트리밍 미디어 데이터 전송 방법. - 제18항에 있어서,
상기 제1 표시 정보를 상기 클라이언트에게 전달한 후에,
상기 클라이언트에 의해 전달되는 제2 표시 정보를 수신하는 단계 -상기 제2 표시 정보는 낮은 코드 레이트를 갖는 세그먼트를 상기 클라이언트에게 전송할 필요가 없다는 것을 상기 서버에게 표시하는데 사용됨- ; 및
상기 제2 표시 정보에 따라 낮은 코드 레이트를 갖는 세그먼트를 상기 클라이언트에게 전송하는 것을 중단하는 단계를 더 포함하는 스트리밍 미디어 데이터 전송 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510024568.1 | 2015-01-16 | ||
CN201510024568.1A CN104581229B (zh) | 2015-01-16 | 2015-01-16 | 一种流媒体数据传输装置、方法和系统 |
PCT/CN2015/081737 WO2016112639A1 (zh) | 2015-01-16 | 2015-06-18 | 流媒体数据传输方法、客户端和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160145657A true KR20160145657A (ko) | 2016-12-20 |
KR101978738B1 KR101978738B1 (ko) | 2019-05-15 |
Family
ID=53096280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167031247A KR101978738B1 (ko) | 2015-01-16 | 2015-06-18 | 스트리밍 미디어 데이터 전송 방법, 클라이언트 및 서버 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10516712B2 (ko) |
EP (1) | EP3247121B1 (ko) |
JP (1) | JP6563424B2 (ko) |
KR (1) | KR101978738B1 (ko) |
CN (1) | CN104581229B (ko) |
WO (1) | WO2016112639A1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104581229B (zh) * | 2015-01-16 | 2018-08-03 | 京东方科技集团股份有限公司 | 一种流媒体数据传输装置、方法和系统 |
CN107566855B (zh) * | 2016-06-30 | 2020-11-10 | 华为技术有限公司 | 频道快速切换的方法、服务器和机顶盒 |
CN108768952A (zh) * | 2018-05-03 | 2018-11-06 | 深圳市网心科技有限公司 | 一种流媒体传输方法、客户端、服务器和存储介质 |
CN111083094B (zh) * | 2018-10-22 | 2022-06-07 | 中国移动通信有限公司研究院 | 一种流媒体的码流切换方法及装置、计算机存储介质 |
CN109672887B (zh) * | 2019-03-06 | 2021-04-09 | 北京奇艺世纪科技有限公司 | 一种视频编码方法及装置 |
US11076188B1 (en) * | 2019-12-09 | 2021-07-27 | Twitch Interactive, Inc. | Size comparison-based segment cancellation |
CN111600937A (zh) * | 2020-04-28 | 2020-08-28 | 上海翌旭网络科技有限公司 | 基于自适应码率的流协议文件传输方法及系统 |
US11153581B1 (en) | 2020-05-19 | 2021-10-19 | Twitch Interactive, Inc. | Intra-segment video upswitching with dual decoding |
CN114071241A (zh) * | 2020-08-06 | 2022-02-18 | 成都鼎桥通信技术有限公司 | 视频播放方法、系统、电子设备及存储介质 |
US11770592B2 (en) | 2021-06-28 | 2023-09-26 | Synamedia Limited | Intrasegment adjustment of video transmission rate |
CN113473183B (zh) * | 2021-06-29 | 2023-05-05 | 华夏城视网络电视股份有限公司 | 一种应用于融合媒体的动静态媒体流批处理方法 |
CN115002519A (zh) * | 2022-05-31 | 2022-09-02 | 北京势也网络技术有限公司 | 一种在低带宽网络下播放8k全景视频文件的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030079337A (ko) * | 2002-04-03 | 2003-10-10 | 주식회사 케이티프리텔 | 무선 네트워크 클라이언트에서 스트리밍 데이터의 멀티비트 레이트 기능 제어 방법 및 그 장치 |
KR20090022615A (ko) * | 2007-08-31 | 2009-03-04 | 에스케이 텔레콤주식회사 | Vod 스트리밍 서비스를 제공하는 방법과 그를 위한시스템, 서버 및 사용자 단말기 |
US20100023579A1 (en) * | 2008-06-18 | 2010-01-28 | Onion Networks, KK | Dynamic media bit rates based on enterprise data transfer policies |
US20130111028A1 (en) * | 2011-11-01 | 2013-05-02 | Lukasz Kondrad | Method and apparatus for selecting an access method for delivery of media |
WO2014063726A1 (en) * | 2012-10-23 | 2014-05-01 | Telefonaktiebolaget L M Ericsson (Publ) | A method and apparatus for distributing a media content service |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725557B2 (en) * | 2002-06-24 | 2010-05-25 | Microsoft Corporation | Client-side caching of streaming media content |
JP2007214675A (ja) * | 2006-02-07 | 2007-08-23 | Hitachi Ltd | デジタル放送受信装置 |
US8230288B2 (en) * | 2006-10-18 | 2012-07-24 | Samsung Electronics Co., Ltd. | Data transmission apparatus and method for applying an appropriate coding rate |
CN101227590B (zh) | 2007-01-19 | 2013-03-06 | 北京风行在线技术有限公司 | 基于p2p协议的媒体文件点播控制方法及装置 |
CN101471919B (zh) * | 2007-12-29 | 2012-01-11 | 突触计算机系统(上海)有限公司 | 基于点对点传输协议的设备中用于下载分片的方法及装置 |
JP5245452B2 (ja) * | 2008-02-26 | 2013-07-24 | 富士通株式会社 | 無線基地局、端末、および上位装置 |
JP5347441B2 (ja) | 2008-11-10 | 2013-11-20 | 日本電気株式会社 | 動画像処理装置 |
EP2234313B1 (en) * | 2009-03-24 | 2021-12-15 | Samsung Electronics Co., Ltd. | Operating method and apparatus according to data duplicate retransmission in mobile communication system |
US8817684B2 (en) | 2010-12-17 | 2014-08-26 | Verizon Patent And Licensing Inc. | Adaptive mobile multicasting for wireless networks |
CN102143384B (zh) * | 2010-12-31 | 2013-01-16 | 华为技术有限公司 | 一种媒体文件生成方法、装置及系统 |
CN102801690B (zh) * | 2011-05-25 | 2015-09-30 | 华为技术有限公司 | 流媒体的处理方法、分发服务器、客户端及系统 |
US20120324122A1 (en) * | 2011-06-20 | 2012-12-20 | David Miles | Method and apparatus for server-side adaptive streaming |
US20130170561A1 (en) * | 2011-07-05 | 2013-07-04 | Nokia Corporation | Method and apparatus for video coding and decoding |
CN102307302B (zh) * | 2011-07-06 | 2014-07-30 | 杭州华三通信技术有限公司 | 一种保持视频图像连续性的方法和装置 |
EP2899988A4 (en) * | 2012-09-20 | 2016-03-09 | Sony Corp | RECEIVING DEVICE, SENDING / RECEIVING SYSTEM, RECEIVING METHOD AND PROGRAM |
CN103248962B (zh) * | 2013-04-23 | 2016-12-28 | 华为技术有限公司 | 获取流媒体数据的方法、设备及系统 |
CN103747283B (zh) * | 2013-12-24 | 2017-02-01 | 中国科学院声学研究所 | 视频分片的下载方法 |
CN104202618B (zh) * | 2014-09-26 | 2019-02-15 | 三星电子(中国)研发中心 | 获取播放资源的方法、代理客户端、代理服务器和系统 |
CN104581229B (zh) * | 2015-01-16 | 2018-08-03 | 京东方科技集团股份有限公司 | 一种流媒体数据传输装置、方法和系统 |
-
2015
- 2015-01-16 CN CN201510024568.1A patent/CN104581229B/zh active Active
- 2015-06-18 WO PCT/CN2015/081737 patent/WO2016112639A1/zh active Application Filing
- 2015-06-18 KR KR1020167031247A patent/KR101978738B1/ko active IP Right Grant
- 2015-06-18 US US14/895,378 patent/US10516712B2/en active Active
- 2015-06-18 EP EP15837172.4A patent/EP3247121B1/en active Active
- 2015-06-18 JP JP2016569038A patent/JP6563424B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030079337A (ko) * | 2002-04-03 | 2003-10-10 | 주식회사 케이티프리텔 | 무선 네트워크 클라이언트에서 스트리밍 데이터의 멀티비트 레이트 기능 제어 방법 및 그 장치 |
KR20090022615A (ko) * | 2007-08-31 | 2009-03-04 | 에스케이 텔레콤주식회사 | Vod 스트리밍 서비스를 제공하는 방법과 그를 위한시스템, 서버 및 사용자 단말기 |
US20100023579A1 (en) * | 2008-06-18 | 2010-01-28 | Onion Networks, KK | Dynamic media bit rates based on enterprise data transfer policies |
US20130111028A1 (en) * | 2011-11-01 | 2013-05-02 | Lukasz Kondrad | Method and apparatus for selecting an access method for delivery of media |
WO2014063726A1 (en) * | 2012-10-23 | 2014-05-01 | Telefonaktiebolaget L M Ericsson (Publ) | A method and apparatus for distributing a media content service |
Also Published As
Publication number | Publication date |
---|---|
EP3247121A4 (en) | 2018-07-18 |
US20160212189A1 (en) | 2016-07-21 |
JP6563424B2 (ja) | 2019-08-21 |
WO2016112639A1 (zh) | 2016-07-21 |
CN104581229B (zh) | 2018-08-03 |
EP3247121B1 (en) | 2024-02-14 |
JP2018509010A (ja) | 2018-03-29 |
KR101978738B1 (ko) | 2019-05-15 |
EP3247121A1 (en) | 2017-11-22 |
CN104581229A (zh) | 2015-04-29 |
US10516712B2 (en) | 2019-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101978738B1 (ko) | 스트리밍 미디어 데이터 전송 방법, 클라이언트 및 서버 | |
JP6648223B2 (ja) | メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置 | |
JP6807852B2 (ja) | Lctに基づくdashフォーマットを有するファイルフォーマットベースのストリーミング | |
US10938872B2 (en) | Processing interactivity events for streaming media data | |
EP2391086B1 (en) | Method and apparatus for playing live content | |
US20200112753A1 (en) | Service description for streaming media data | |
EP3095247B1 (en) | Robust live operation of dash | |
JP2018532334A (ja) | メディアデータのストリーミングのためのデッドラインシグナリング | |
KR20170089863A (ko) | 멀티미디어 및 파일 전송을 위한 전송 인터페이스 | |
JP2016502803A (ja) | メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置 | |
KR102499231B1 (ko) | 수신 장치, 송신 장치 및 데이터 처리 방법 | |
KR20210126093A (ko) | Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들 | |
KR20170000312A (ko) | 디지털 방송 서비스 방법 및 장치 | |
KR102349451B1 (ko) | 멀티미디어의 전송 또는 수신 방법 및 그 장치 | |
JP2010103995A (ja) | デジタルコンテンツストリームの伝送方法および対応する受信方法 | |
EP3681122B1 (en) | System, method and devices for low latency transmission | |
KR102123208B1 (ko) | 콘텐츠 공급 장치, 콘텐츠 공급 방법, 프로그램, 단말 장치, 및 콘텐츠 공급 시스템 | |
US11856242B1 (en) | Synchronization of content during live video stream | |
JP2006285586A (ja) | コンテンツ配信システム、コンテンツ配信装置、コンテンツ配信プログラムおよびコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |