CN104581229A - 一种流媒体数据传输装置、方法和系统 - Google Patents

一种流媒体数据传输装置、方法和系统 Download PDF

Info

Publication number
CN104581229A
CN104581229A CN201510024568.1A CN201510024568A CN104581229A CN 104581229 A CN104581229 A CN 104581229A CN 201510024568 A CN201510024568 A CN 201510024568A CN 104581229 A CN104581229 A CN 104581229A
Authority
CN
China
Prior art keywords
rate
code
fragments
server
client
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201510024568.1A
Other languages
English (en)
Other versions
CN104581229B (zh
Inventor
张楚雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BOE Technology Group Co Ltd
Original Assignee
BOE Technology Group Co Ltd
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 BOE Technology Group Co Ltd filed Critical BOE Technology Group Co Ltd
Priority to CN201510024568.1A priority Critical patent/CN104581229B/zh
Publication of CN104581229A publication Critical patent/CN104581229A/zh
Priority to KR1020167031247A priority patent/KR101978738B1/ko
Priority to US14/895,378 priority patent/US10516712B2/en
Priority to PCT/CN2015/081737 priority patent/WO2016112639A1/zh
Priority to JP2016569038A priority patent/JP6563424B2/ja
Priority to EP15837172.4A priority patent/EP3247121B1/en
Application granted granted Critical
Publication of CN104581229B publication Critical patent/CN104581229B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/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/26208Content 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/26233Content 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
    • 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/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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/70Media network packetisation
    • 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/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • 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/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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/23439Processing 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
    • 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/4402Processing 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
    • 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/442Monitoring 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/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/63Control 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/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • 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/63Control 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1845Combining 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

本发明涉及流媒体技术,尤其涉及一种流媒体数据传输装置、方法和系统,用以解决客户端等待更高码率的分片,解码时延长的问题。本发明实施例提供的一种客户端包括:第一处理模块,用于判断服务器是否下发相同内容、不同码率的多个分片;第二处理模块,用于在所述第一处理模块判断出所述服务器下发相同内容、不同码率的多个分片时,判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片。其中,由于客户端在判断出服务器优先发送高码率的分片时,无需再等待服务器下发更高码率的分片,而直接对接收的分片解码,因而缩短了客户端解码的时延。

Description

一种流媒体数据传输装置、方法和系统
技术领域
本发明涉及流媒体技术,尤其涉及一种流媒体数据传输装置、方法和系统。
背景技术
采用传统流媒体技术中,传输的流媒体数据需要经过防火墙,且需要专业的媒体服务器支撑,实现复杂。因此出现了通过互联网传输流媒体数据的互联网流媒体技术,其不对现有互联网体系提出额外的要求,可通过对媒体文件的存储、信息描述方式进行修改,使得通过现有的HTTP协议传输流媒体数据。
移动图像专家组(Moving Pictures Experts Group,MPEG)制定的动态自适应流媒体(Dynamic Adaptive Streaming,DASH)标准,简称MPEG DASH标准,提供了采用互联网流媒体技术传输流媒体数据的标准化方案。
MPEG DASH标准定义的媒体展现描述(Media Presentation Description,MPD)的层次结构模型如图1所示。
该层次结构模型中,时段(Period)用于描述可播放一段时间的媒体内容,次序相邻的时段描述的媒体内容在时间上是连续的。一个时段包含多个适配集合(Adaptation Set),每个适配集合描述适配多个码率的媒体内容,每个码率对应一个呈现(Representation)。呈现描述媒体内容的具体封装格式、码率、编解码参数等信息。一个呈现包含多个分片(Segment)的统一资源定位器(Uniform Resoure Locator,URL),用于指示对应的分片的存储位置,分片包含具体的媒体内容,即音频、视频、字幕、复用的音频和视频等。
基于上述MPEG DASH标准,通过互联网传输流媒体数据的可选方案是:首先建立WebSocket双向连接,通过WebSocket文本帧传输MPEG DASH控制信息,通过WebSocket二进制帧传输分片。
图1所示的框架下客户端展现媒体内容的过程参见图2,在图1所示的框架下客户端展现媒体内容的过程包括如下步骤:
S201:客户端向服务器发送OpenMedia消息,通过在消息中携带MPD的URL地址,指示需要播放的媒体;
S202:服务器向客户端发送MediaInfo消息,告知客户端媒体的信息,比如:媒体是否已经就绪;
S203:客户端向服务器发送StartStream消息,请求服务器下发媒体;
S204:服务器向客户端发送StreamInfo消息,告知客户端媒体流的信息;
S205:服务器开始下发媒体分片。
客户端向服务器请求启动播放媒体后,服务器可通过图2中的步骤S204,在向客户端发送StreamInfo消息中,携带用于指示服务器是否会下发相同内容、不同码率的多个流的指示信息multipleRepresentation,若通过该指示信息指示服务器会下发相同内容、不同码率的多个流,则服务器在发送分片时,会向客户端同时发送多个相同内容、不同码率的首个分片。
上述过程涉及的OpenMedia消息、MediaInfo消息、StartStream消息和StreamInfo消息可视为针对MPEG DASH协议在WebSocket协议上扩展的消息,在WebSocket的文本帧传输。
但是,客户端并不知道服务器先发送的分片是高码率的还是低码率的。
一种实现方式包括:客户端在收到一个分片后,在预设的等待时长内,判断是否收到更高码率的分片;若收到更高码率的分片,则对该更高码率的分片解码并展现;若未收到更高码率的分片,则对先前收到的分片进行解码并展现。
对于服务器先发送高码率的分片的情况,上述实现方式中,客户端收到高码率的分片后,由于不知道后续服务器发送的相同内容不同码率的分片是更高码率的分片,还是更低码率的分片,则仍会等待上述预设的等待时长,增加了客户端解码的时延。
发明内容
本发明实施例提供一种流媒体数据传输装置、方法和系统,用以解决客户端等待更高码率的分片,解码时延长的问题。
第一方面,本发明实施例提供一种客户端,包括:
第一处理模块,用于判断服务器是否下发相同内容、不同码率的多个分片;
第二处理模块,用于在所述第一处理模块判断出所述服务器下发相同内容、不同码率的多个分片时,判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片。
第二方面,本发明实施例提供一种服务器,包括:
处理模块,用于确定在向客户端下发相同内容、不同码率的多个分片时,优先发送高码率的分片,还是优先发送低码率的分片;
收发模块,将用于指示是否优先发送高码率的分片的第一指示信息发给所述客户端。
第三方面,本发明实施例提供一种流媒体数据传输方法,包括:
判断服务器是否下发相同内容、不同码率的多个分片;
若所述服务器下发相同内容、不同码率的多个分片,则判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片。
第四方面,本发明实施例提供另一种流媒体数据传输方法,包括:
确定在向客户端下发相同内容、不同码率的多个分片时,优先发送高码率的分片,还是优先发送低码率的分片;
将用于指示是否优先发送高码率的分片的第一指示信息发给所述客户端。
第五方面,本发明实施例提供一种流媒体数据传输系统,包括客户端和服务器,其中,所述客户端,用于判断所述服务器是否下发相同内容、不同码率的多个分片,若所述服务器下发相同内容、不同码率的多个分片,则判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片;
所述服务器,用于向所述客户端下发媒体分片。
结合第五方面,在第一种可能的实现方式中,所述客户端还用于:在判断出所述服务器优先发送高码率的分片时,开始接收高码率的分片。
结合第五方面,或第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述服务器还用于:将用于指示是否优先发送高码率的分片的第一指示信息发给所述客户端;
所述客户端具体用于:根据接收的所述第一指示信息,判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片。
综上,在本发明实施例中,客户端能够判断服务器优先发送高码率的分片,还是优先发送低码率的分片,因此可实现客户端在判断出服务器优先发送高码率的分片时,无需再等待服务器下发更高码率的分片,而直接对接收的分片解码,缩短了客户端解码的时延。
附图说明
图1为MPEG DASH标准定义的MPD层次结构模型图;
图2为在图1所示的框架下客户端展现媒体内容的过程的流程图;
图3为本发明实施例提供的流媒体数据传输系统的结构示意图;
图4为WebSocket帧结构示意图;
图5为码率切换方式示意图;
图6为本发明实施例一的流程图;
图7A为本发明实施例提供的客户端的第一种结构示意图;
图7B为本发明实施例提供的客户端的第二种结构示意图;
图7C为本发明实施例提供的客户端的第三种结构示意图;
图7D为本发明实施例提供的客户端的第四种结构示意图;
图8为本发明实施例提供的服务器的结构示意图;
图9为本发明实施例提供的第一种流媒体数据传输方法的流程图;
图10为本发明实施例提供的第二种流媒体数据传输方法的流程图。
具体实施方式
本发明实施例提供一种流媒体数据传输装置和方法,用以解决客户端等待更高码率的分片,解码时延长的问题。
在本发明实施例提供的一种流媒体数据传输装置中,第一处理模块判断服务器是否下发相同内容、不同码率的多个分片;第二处理模块在第一处理模块判断出服务器下发相同内同、不同码率的多个分片时,判断服务器优先发送高码率的分片,还是优先发送低码率的分片。
其中,由于客户端能够判断服务器在下发相同内容、不同码率的多个分片时,优先发送高码率的分片,还是优先发送低码率的分片,因而在判断出服务器优先发送高码率的分片时,无需再等待服务器下发更高码率的分片,而直接对接收的分片解码,缩短了客户端解码的时延。
下面,结合附图对本发明实施例进行详细说明。首先,介绍本发明实施例提供的流媒体数据传输系统;然后分别介绍本发明实施例提供的客户端和服务器;最后介绍本发明实施例提供的两种流媒体数据传输方法。
图3为本发明实施例提供的流媒体数据传输系统的结构示意图。如图3所示,该系统包括:客户端301和服务器302;其中,
客户端301,用于判断服务器302是否下发相同内容、不同码率的多个分片,若服务器302下发相同内容、不同码率的多个分片,进一步判断服务器302优先发送高码率的分片,还是优先发送低码率的分片
服务器302,用于向客户端301下发媒体。
图3中,为了简单示意,仅示出了一个客户端301和一个服务器302,实际上,一个服务器302可向多个客户端301下发媒体,一个客户端301也可以分别向多个服务器302请求下发媒体。
本发明实施例中,可选地,客户端301与服务器302建立了WebSocket双向连接,基于建立的该WebSocket双向连接进行流媒体传输。客户端301可通过图2中步骤S203,请求服务器302下发媒体,即客户端301向服务器302发送StartStream消息,请求媒体流。
客户端301可以在请求服务器302下发媒体之后,在服务器302向客户端301下发各分片之前,判断服务器302优先发送高码率的分片,还是优先发送低码率的分片;
客户端301也可在服务器302下发媒体的过程中,判断服务器302优先发送高码率的分片,还是优先发送低码率的分片。
服务器302可通过在向客户端301发送的StreamInfo消息中的multipleRepresentation键,指示客户端301:服务器302是否下发相同内容、不同码率的多个分片,当该键取值为“true”时,指示客户端301:服务器302下发相同内容、不同码率的多个分片。
目前,StreamInfo消息的格式如表1所示。
表1
若客户端301在服务器302下发媒体的过程中,判断服务器302优先发送高码率的分片,还是优先发送低码率的分片,则客户端301可通过下述方式一或方式二判断服务器302优先发送高码率的分片,还是优先发送低码率的分片;
若客户端301在服务器302下发各分片之前,判断服务器302优先发送高码率的分片,还是优先发送低码率的分片,则客户端301可通过下述方式二判断服务器302优先发送高码率的分片,还是优先发送低码率的分片。
方式一、客户端301自身判断;
方式二、客户端301根据服务器302发送的第一指示信息判断。
下面分别介绍这两种方式。
方式一、客户端301自身判断
若客户端301在请求服务器302下发媒体后,收到服务器302发送的首个分片的码率为预设的码率上限(比如:客户端301预先知道服务器302向客户端301下发的各分片的最高码率,则将该速率设置为预设的码率上限),则客户端301判断出服务器302优先发送高码率的分片;若客户端301在请求服务器302下发媒体后,收到服务器302发送的首个分片的码率为预设的码率下限(比如:客户端301预先知道服务器302向客户端301下发的各分片的最低码率,则将该速率设置为预设的码率下限),则客户端301判断出服务器302优先发送低码率的分片。
若客户端301在请求服务器302下发媒体后,收到服务器302发送的首个分片的码率小于预设的码率上限且大于预设的码率下限,则服务器302等待接收下一个分片,若收到的下一个分片的码率比首个分片的码率低,则判断出服务器302优先发送高码率的分片;若收到的下一个分片的码率比首个分片的码率高,则判断出服务器302优先发送低码率的分片。
若客户端301在请求服务器302下发媒体后,先收到服务器302发送的高码率的分片,再收到服务器302发送的低码率的分片,则判断出服务器302优先发送高码率的分片;若先收到服务器302发送的低码率的分片,再收到服务器302发送的高码率的分片,则判断出服务器302优先发送低码率的分片。
客户端301自身判断的方式有很多,以上仅为举例。
方式二、客户端301根据服务器302发送的第一指示信息判断。
该第一指示信息用于指示服务器302是否优先发送高码率的分片。可选地,若客户端301与服务器302建立了WebSocket双向连接,基于建立的该WebSocket双向连接进行流媒体传输,则该第一指示信息可位于StreamInfo消息中,如下面的表2中列出的键“bitratePriority”。其中表2是采用了本发明实施例后,对表1所示的StreamInfo消息修改后得到的新的StreamInfo消息,表2中,“bitratePriority”位于键“multipleRepresentation”之后,实际实现时,位置不限于表2中所示的位置,比如,也可置于在整个消息的最后。
表2中“bitratePriority”的值为Boolean类型,取值为true表示服务器302优先发送高码率的分片,取值为false表示服务器302优先发送低码率的分片。在实际实现时,也可为其他类型,比如:数值型,取值为1时表示服务器302优先发送高码率的分片,取值为0时表示服务器302有限发送低码率的分片。具体实现方式不限于上述举例,只要能使客户端301判断出服务器302优先发送高码率的分片,还是优先发送低码率的分片即可。
表2
可选地,为了实现客户端301可靠接收分片,在判断出服务器302优先发送高码率的分片时,开始接收高码率的分片之后,客户端301还可判断在开始接收高码率的分片之后的第一时间阈值内,是否完成对该高速率的分片的接收;
若在该第一时间阈值内,未完成对该高码率的分片的接收,则放弃接收该高码率的分片,并开始将接收低码率的分片。
其中,上述方式中,是从开始接收高码率的分片之后开始计时,可选地,也可以在判断出服务器302优先发送高码率的分片之后开始计时。
可选地,若客户端301在请求服务器302下发媒体之后,在服务器302向客户端301下发各分片之前,判断服务器302优先发送高码率的分片,还是优先发送低码率的分片,则客户端301还可以从请求服务器302下发媒体之后开始计时。
可选地,为了节约网络传输资源,提高客户端301与服务器302之间的分片传输效率,若客户端301在上述第一时间阈值内,完成对该高码率的分片的接收,则客户端301向服务器302发送第二指示信息,该第二指示信息用于通知服务器302无需再发送低码率的分片。
可选地,若客户端301与服务器302建立了WebSocket双向连接,基于建立的该WebSocket双向连接进行流媒体传输,则客户端301可根据WebSocket帧中的指示信息判断是否完成对分片的接收。
WebSocket的帧结构如图4所示。其中,操作码占4比特(bit),下面为操作码的取值与操作码表示的含义之间的对应关系:
0:与结束标记一起,表示分段帧的中间片段
1:文本帧
2:二进制帧
3~7:保留
8:关闭连接
9:Ping命令
A:表示Pong命令
B~F:保留为未来使用
若要传输的数据过大,一个WebSocket帧无法封装,则WebSocket协议规定,可以将待传输的数据分段:
对于未分段的帧,结束标记=1操作码≠0
对于分段的帧:
第1个分段:结束标记=0,操作码≠0
第12至第(N-1)个分段:结束标记=0,操作码=0
第N个分段,即最后一个分段:结束标记=1,操作码=0
客户端301在收到服务器302发送的包含StreamInfo消息的文本帧之后,开始接收服务器302发送的分片。若一个分片过大,则可分为上述的多个分段,分别置于WebSocket二进制帧中传输。
服务器302将一个分片通过一个或多个二进制帧发送。客户端301在收到的二进制帧的结束标记为“0”,操作码不为“0”时,则确定该二进制帧中的分片是分段发送的,即一个分片通过多个二进制帧发送,且后续还有包含该分片的二进制帧;客户端301不断接收后续的二进制帧,直到收到的二进制帧的结束标记为“0”,操作码为“0”,则确定已完成对分片的接收。
其中,第二指示信息用于通知服务器302无需再发送低码率的分片。可通过定义下列新的消息ReceiveReport,如表3所示,通过该新定义的消息发送该第二指示信息。
表3
可选地,该消息可包含如下表4中列出的键值对。
表4
若在上述第一时间阈值内,客户端301完成对高码率的分片的接收,则客户端301向服务器发送上述ReceiveReport消息,该消息的ReceiveStatus为True。服务器302收到该消息之后,将不再向客户端301发送低码率的分片。
若在上述第一时间阈值内,客户端301未完成对高码率的分片的接收,则客户端301将向服务器302发送上述ReceiveReport消息,该消息的ReceiveStatus为False。服务器302将终止发送高码率的分片,并开始发送低码率的分片。
以上,具体描述了客户端301在确定服务器302在下发相同内容、不同码率的多个分片时,优先发送高码率的分片的处理方案。下面,介绍客户端301在确定服务器302优先发送低码率的分片的处理方案。
若判断出服务器302优先发送低码率的分片,则客户端301在开始接收低码率的分片之后,开始接收高码率的分片。
可选地,客户端301判断是否存在多个高码率的分片;
若存在多个高码率的分片,则根据与服务器302之间的网络带宽,从存在的多个高码率的分片中时,选择一个高码率的分片并开始接收。
客户端301在开始接收高码率的分片之后,判断是否在开始接收该高码率的分片之后的第二时间阈值内,完成对该高码率的分片的接收;若未完成对该高码率的分片的接收,则对接收完成的低码率的分片解码。
可选地,客户端301也可在判断出服务器302优先发送低码率的分片之后开始计时。
可选地,若客户端301在请求服务器302下发媒体之后,在服务器302向客户端301下发各分片之前,判断服务器302优先发送高码率的分片,还是优先发送低码率的分片,则客户端301还可以从请求服务器302下发媒体之后开始计时。
该可选方案中,客户端301在先收到低码率的分片后,先不解码,等待接收高码率的分片,若在开始接收高码率的分片之后,在请求服务器302下发媒体之后的第二时间阈值内,完成对该高码率的分片的接收,则对该高码率的分片进行解码,丢弃先收到的低码率的分片;若未完成对该高码率的分片的接收,则对接收完成的低码率的分片解码,以保证分片接收的可靠性。
上述第一时间阈值、第二时间阈值,可通过包括下列方式在内的多种方式确定:
方式一、为预设的时长,比如:根据客户端301与服务器302之间的网络拓扑预先配置;
方式二、客户端301将MPD中分片的URL中包含的分片字节数和分片所属的呈现的bandwidth属性的取值相除,计算得到的传输该分片所需的时长,根据计算得到的该时长确定第一时间阈值和第二时间阈值;
方式三、根据分片的播放时长确定。比如:将该第一时间阈值和/或第二时间阈值设置为分片的播放时长,即分片所属的呈现的duration属性的值,或设置为该值的一半等。
方式四、根据实时获取的客户端301与服务器302之间的网络情况(比如:网络拥塞情况、内容获取时长、解码时长、缓存媒体可播放时间等)实时调整。
MPD中描述的分片所属的呈现的属性可参见下面的表5。
表5
本发明实施例中,客户端301可通过图5所示的方式进行码率的切换:
客户端301在MPD中找到当前正在播放的分片所属的呈现(为描述清楚起见,这里记为“呈现1”),根据呈现1中的startNumber属性的值和分片对应的SegmentURL元素的排列序号(记为N),计算得出当前分片的序号为startNumber+N;接下来找到属于同一个适配集合的、包含相同内容、不同码率的、准备切换过去的呈现(记为为“呈现2”),并在呈现2中找到序号为startNumber+N+1的分片(记为分片N+1);随后,客户端301向服务器302请求呈现2中的分片N+1。
以上,详细介绍了本发明实施例提供的流媒体传输系统和码率切换的方案。下面通过实施例一给出客户端301的处理流程的例子。
【实施例一】
如图6所示,实施例一包括如下步骤:
S600:客户端301请求服务器302下发媒体;
S601:客户端301接收服务器302发送的StreamInfo消息;
S602:客户端301根据StreamInfo消息中的指示信息multipleRepresentation,判断服务器302是否下发多个相同内容、不同码率的多个分片;若multipleRepresentation取值为false,则客户端301确定服务器302仅下发一个码率的分片,接下来执行步骤S609;若multipleRepresentation取值为true,则客户端301确定服务器302下发相同内容、不同码率的多个分片,客户端301执行步骤S603;
S603:客户端301根据StreamInfo消息中的指示信息bitratePriority,判断服务器302是否优先下发高码率的分片,若bitratePriority取值为true,则确定服务器302优先下发高码率的分片,接下来执行步骤S611;若bitratePriority取值为false,则确定服务器302优先下发低码率的分片,接下来执行步骤S604;
S604:客户端301开始接收低码率的分片;
S605:客户端301开始接收高码率的分片;
S606:客户端301判断在请求服务器302下发媒体之后的第二时间阈值内,是否完成对高码率的分片的接收;若是,则执行步骤S615;否则执行步骤S607;
S607:对接收完成的低码率的分片进行解码;
S608:播放分片;
S609:接收媒体分片;
S610:对接收完成的分片进行解码;接下来执行步骤S608;
S611:开始接收高码率的分片;
S612:客户端301判断在请求服务器302下发媒体之后的第一时间阈值内,是否完成对高码率的分片的接收;若是,则执行步骤S615;否则执行步骤S613;
S613:客户端301放弃接收高码率的分片;
S614:客户端301开始接收低码率的分片;接下来执行步骤S607;
S615:客户端301对接收完成的高码率的分片进行解码。
以上,介绍了本发明实施例提供的流媒体数据传输系统,从客户端和服务器相互配合的角度,介绍了流媒体数据传输的方案。但这并不意味着客户端和服务器必须相互配合,实际上,当客户端和服务器分开实施时,也分别解决了在客户端侧和服务器侧所存在的问题,只是二者结合使用时,会获得更好的技术效果。
下面,分别介绍本发明实施例提供的客户端、服务器和两种流媒体数据传输方法,由于其解决技术问题的原理与本发明实施例提供的流媒体数据传输系统类似,其实施可参考该系统的实施,重复之处不再赘述。
图7A为本发明实施例提供的客户端的第一种结构示意图。如图7A所示,该客户端包括:
第一处理模块701,用于判断服务器是否下发相同内容、不同码率的多个分片;
第二处理模块702,用于在第一处理模块701判断出服务器下发相同内容、不同码率的多个分片时,判断服务器优先发送高码率的分片,还是优先发送低码率的分片。
可选地,如图7B所示,该客户端还可包括第一收发模块703,用于在第二处理模块702判断出服务器优先发送高码率的分片时,开始接收高码率的分片。
可选地,对于图7B所示的客户端,第二处理模块702还用于:
在第一收发模块703开始接收高码率的分片之后,判断第一收发模块703是否在开始接收该高码率的分片之后的第一时间阈值内,完成对该高码率的分片的接收;
若第一收发模块703在第一时间阈值内,未完成对该高码率的分片的接收,则控制第一收发模块703放弃接收该高码率的分片,并开始接收低码率的分片。
进一步地,第二处理模块702还用于:
若第一收发模块703在第一时间阈值内,完成对该高码率的分片的接收,则控制第一收发模块703向服务器发送第二指示信息,第二指示信息用于通知服务器无需再发送低码率的分片。
可选地,如图7C所示,该客户端还可包括:第二收发模块704,用于在第二处理模块702判断出服务器优先发送低码率的分片时,在开始接收低码率的分片之后,开始接收高码率的分片。
可选地,第二收发模块704在开始接收该低码率的分片之后,不对接收的该低码率的分片解码。
可选地,对于图7C所示的客户端,第二处理模块702还用于:在第二收发模块704开始接收该高码率的分片之后,
判断第二收发模块704是否在开始接收该高码率的分片之后的第二时间阈值内,完成对该高码率的分片的接收;
若第二收发模块704在第二时间阈值内,未完成对该高码率的分片的接收,则控制第二收发模块704对接收完成的低码率的分片解码。
进一步地,第二处理模块702还用于:若第二收发模块704在第二时间阈值内,未完成对该高码率的分片的接收,则控制第二收发模块704放弃对该高码率的分片的接收。
可选地,本发明实施例提供的客户端还可具有图7D所示的结构,包括第一处理模块701、第二处理模块702、第一收发模块703和第二收发模块704,其中,第一处理模块701和第二处理模块702的处理可参考上述图7A~图7C所示的客户端中相同模块的处理;第一收发模块703与第二处理模块702之间的交互,可参考上述图7B所示的客户端中的处理,第二收发模块704与第二处理模块702之间的交互,可参考上述图7C所示的客户端中的处理,这里不再赘述。
可选地,对于图7A~图7D任一所示的客户端,第二处理模块702具体用于:根据服务器发送的用于指示服务器是否优先发送高码率的分片的第一指示信息,判断服务器优先发送高码率的分片,还是优先发送低码率的分片。
可选地,该第一指示信息位于StreamInfo消息中。
图8为本发明实施例提供的服务器的结构示意图。如图8所示,该服务器包括:
处理模块801,用于确定在向客户端下发相同内容、不同码率的多个分片时,优先发送高码率的分片,还是优先发送低码率的分片;
收发模块802,将用于指示是否优先发送高码率的分片的第一指示信息发给客户端。
可选地,收发模块802还用于:
在将第一指示信息发给客户端之后,接收客户端发送的第二指示信息,第二指示信息用于指示服务器无需再向客户端发送低码率的分片;
根据第二指示信息停止向客户端发送低码率的分片。
图9为本发明实施例提供的第一种流媒体数据传输方法的流程图。如图9所示,该方法包括如下步骤:
S901:判断服务器是否下发相同内容、不同码率的多个分片;
S902:若所述服务器下发相同内容、不同码率的多个分片,则判断服务器优先发送高码率的分片,还是优先发送低码率的分片。
可选地,若步骤S902判断出服务器优先发送高码率的分片,则开始接收高码率的分片。
可选地,在开始接收高码率的分片之后,还包括:
判断是否在开始接收该高码率的分片之后的第一时间阈值内,完成对该高码率的分片的接收;
若在第一时间阈值内,未完成对该高码率的分片的接收,则放弃接收该高码率的分片,并开始接收低码率的分片。
可选地,若在第一时间阈值内,完成对该高码率的分片的接收,则向服务器发送第二指示信息,第二指示信息用于通知服务器无需再发送低码率的分片。
可选地,若步骤S902中判断出服务器优先发送低码率的分片,则在开始接收低码率的分片之后,开始接收高码率的分片。
可选地,在开始接收该低码率的分片之后,还包括:不对接收的该低码率的分片解码。
可选地,在开始接收该高码率的分片之后,判断是否在开始接收该高码率的分片之后的第二时间阈值内,完成对该高码率的分片的接收;
若在第二时间阈值内,未完成对该高码率的分片的接收,则对接收完成的低码率的分片解码。
可选地,若在第二时间阈值内,未完成对该高码率的分片的接收,则放弃对该高码率的分片的接收。
可选地,步骤S902判断服务器优先发送高码率的分片,还是优先发送低码率的分片,包括:
接收服务器发送的用于指示服务器是否优先发送高码率的分片的第一指示信息;
根据接收的第一指示信息,判断服务器优先发送高码率的分片,还是优先发送低码率的分片。
可选地,第一指示信息位于StreamInfo消息中。
图10为本发明实施例提供的第二种流媒体数据传输方法的流程图。如图10所示,该方法包括如下步骤:
S1001:确定在向客户端下发相同内容、不同码率的多个分片时,优先发送高码率的分片,还是优先发送低码率的分片;
S1002:将用于指示是否优先发送高码率的分片的第一指示信息发给客户端。
可选地,在步骤S1002将第一指示信息发给客户端之后,接收客户端发送的第二指示信息,第二指示信息用于指示服务器无需再向客户端发送低码率的分片;
根据第二指示信息停止向客户端发送低码率的分片。
综上,本发明实施例提供一种流媒体数据传输装置、方法和系统。其中,客户端能够判断服务器在下发相同内容、不同码率的多个分片时,优先发送高码率的分片,还是优先发送低码率的分片,则在判断出服务器优先发送高码率的分片时,无需再等待服务器下发更高码率的分片,而直接对接收的分片解码,缩短了客户端解码的时延。
进一步地,客户端根据服务器发送的各码率的分片判断服务器优先发送高码率的分片,还是优先发送低码率的分片,或者客户端根据服务器下发的第一指示信息进行判断,提供了两种客户端判断的具体方式。
此外,客户端在预设的时间阈值内,若能够完成对高码率的分片的接收,则指示服务器停止发送低码率的分片,提高了服务器发送分片的效率,节省了网络传输资源。
并且,若客户端在预设的时间阈值内,无法完成对高码率的分片的接收,则接收低码率的分片并解码,保证了流媒体数据传输的可靠性和媒体播放的连贯性,提高了用户体验。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (27)

1.一种客户端,其特征在于,包括:
第一处理模块,用于判断服务器是否下发相同内容、不同码率的多个分片;
第二处理模块,用于在所述第一处理模块判断出所述服务器下发相同内容、不同码率的多个分片时,判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片。
2.如权利要求1所述的客户端,其特征在于,还包括:
第一收发模块,用于在所述第二处理模块判断出所述服务器优先发送高码率的分片时,开始接收高码率的分片。
3.如权利要求2所述的客户端,其特征在于,所述第二处理模块还用于:
在所述第一收发模块开始接收高码率的分片之后,判断所述第一收发模块是否在开始接收该高码率的分片之后的第一时间阈值内,完成对该高码率的分片的接收;
若所述第一收发模块在所述第一时间阈值内,未完成对该高码率的分片的接收,则控制所述第一收发模块放弃接收该高码率的分片,并开始接收低码率的分片。
4.如权利要求3所述的客户端,其特征在于,所述第二处理模块还用于:
若所述第一收发模块在所述第一时间阈值内,完成对该高码率的分片的接收,则控制所述第一收发模块向所述服务器发送第二指示信息,所述第二指示信息用于通知所述服务器无需再发送低码率的分片。
5.如权利要求1所述的客户端,其特征在于,还包括:
第二收发模块,用于在所述第二处理模块判断出所述服务器优先发送低码率的分片时,在开始接收低码率的分片之后,开始接收高码率的分片。
6.如权利要求5所述的客户端,其特征在于,所述第二收发模块在开始接收该低码率的分片之后,不对接收的该低码率的分片解码。
7.如权利要求5所述的客户端,其特征在于,所述第二处理模块还用于:在所述第二收发模块开始接收该高码率的分片之后,
判断所述第二收发模块是否在开始接收该高码率的分片之后的第二时间阈值内,完成对该高码率的分片的接收;
若所述第二收发模块在所述第二时间阈值内,未完成对该高码率的分片的接收,则控制所述第二收发模块对接收完成的低码率的分片解码。
8.如权利要求7所述的客户端,其特征在于,所述第二处理模块还用于:若所述第二收发模块在所述第二时间阈值内,未完成对该高码率的分片的接收,则控制所述第二收发模块放弃对该高码率的分片的接收。
9.如权利要求1~8任一项所述的客户端,其特征在于,
所述第二处理模块具体用于:根据所述服务器发送的用于指示所述服务器是否优先发送高码率的分片的第一指示信息,判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片。
10.如权利要求9所述的客户端,其特征在于,所述第一指示信息位于StreamInfo消息中。
11.一种服务器,其特征在于,包括:
处理模块,用于确定在向客户端下发相同内容、不同码率的多个分片时,优先发送高码率的分片,还是优先发送低码率的分片;
收发模块,将用于指示是否优先发送高码率的分片的第一指示信息发给所述客户端。
12.如权利要求11所述的服务器,其特征在于,所述收发模块还用于:
在将所述第一指示信息发给所述客户端之后,接收所述客户端发送的第二指示信息,所述第二指示信息用于指示所述服务器无需再向所述客户端发送低码率的分片;
根据所述第二指示信息停止向所述客户端发送低码率的分片。
13.一种流媒体数据传输方法,其特征在于,包括:
判断服务器是否下发相同内容、不同码率的多个分片;
若所述服务器下发相同内容、不同码率的多个分片,则判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片。
14.如权利要求13所述的方法,其特征在于,还包括:
若所述服务器优先发送高码率的分片,则开始接收高码率的分片。
15.如权利要求14所述的方法,其特征在于,在开始接收高码率的分片之后,还包括:
判断是否在开始接收该高码率的分片之后的第一时间阈值内,完成对该高码率的分片的接收;
若在所述第一时间阈值内,未完成对该高码率的分片的接收,则放弃接收该高码率的分片,并开始接收低码率的分片。
16.如权利要求15所述的方法,其特征在于,还包括:若在所述第一时间阈值内,完成对该高码率的分片的接收,则
向所述服务器发送第二指示信息,所述第二指示信息用于通知所述服务器无需再发送低码率的分片。
17.如权利要求13所述的方法,其特征在于,还包括:
若所述服务器优先发送低码率的分片,则在开始接收低码率的分片之后,开始接收高码率的分片。
18.如权利要求17所述的方法,其特征在于,在开始接收该低码率的分片之后,还包括:
不对接收的该低码率的分片解码。
19.如权利要求17所述的方法,其特征在于,还包括:在开始接收该高码率的分片之后,
判断是否在开始接收该高码率的分片之后的第二时间阈值内,完成对该高码率的分片的接收;
若在所述第二时间阈值内,未完成对该高码率的分片的接收,则对接收完成的低码率的分片解码。
20.如权利要求19所述的方法,其特征在于,若在所述第二时间阈值内,未完成对该高码率的分片的接收,则还包括:
放弃对该高码率的分片的接收。
21.如权利要求13~20任一项所述的方法,其特征在于,判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片,包括:
接收所述服务器发送的用于指示所述服务器是否优先发送高码率的分片的第一指示信息;
根据接收的所述第一指示信息,判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片。
22.如权利要求21所述的方法,其特征在于,所述第一指示信息位于StreamInfo消息中。
23.一种流媒体数据传输方法,其特征在于,包括:
确定在向客户端下发相同内容、不同码率的多个分片时,优先发送高码率的分片,还是优先发送低码率的分片;
将用于指示是否优先发送高码率的分片的第一指示信息发给所述客户端。
24.如权利要求23所述的方法,其特征在于,在将所述第一指示信息发给所述客户端之后,还包括:
接收所述客户端发送的第二指示信息,所述第二指示信息用于指示所述服务器无需再向所述客户端发送低码率的分片;
根据所述第二指示信息停止向所述客户端发送低码率的分片。
25.一种流媒体数据传输系统,包括客户端和服务器,其特征在于,
所述客户端,用于判断所述服务器是否下发相同内容、不同码率的多个分片,若所述服务器下发相同内容、不同码率的多个分片,则判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片;
所述服务器,用于向所述客户端下发媒体分片。
26.如权利要求25所述的系统,其特征在于,所述客户端还用于:在判断出所述服务器优先发送高码率的分片时,开始接收高码率的分片。
27.如权利要求25或26所述的系统,其特征在于,
所述服务器还用于:将用于指示是否优先发送高码率的分片的第一指示信息发给所述客户端;
所述客户端具体用于:根据接收的所述第一指示信息,判断所述服务器优先发送高码率的分片,还是优先发送低码率的分片。
CN201510024568.1A 2015-01-16 2015-01-16 一种流媒体数据传输装置、方法和系统 Active CN104581229B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201510024568.1A CN104581229B (zh) 2015-01-16 2015-01-16 一种流媒体数据传输装置、方法和系统
KR1020167031247A KR101978738B1 (ko) 2015-01-16 2015-06-18 스트리밍 미디어 데이터 전송 방법, 클라이언트 및 서버
US14/895,378 US10516712B2 (en) 2015-01-16 2015-06-18 Streaming media data transmission method, client and server
PCT/CN2015/081737 WO2016112639A1 (zh) 2015-01-16 2015-06-18 流媒体数据传输方法、客户端和服务器
JP2016569038A JP6563424B2 (ja) 2015-01-16 2015-06-18 ストリームメディアデータ伝送方法、クライアント及びサーバ
EP15837172.4A EP3247121B1 (en) 2015-01-16 2015-06-18 Streaming media data transmission method, client and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510024568.1A CN104581229B (zh) 2015-01-16 2015-01-16 一种流媒体数据传输装置、方法和系统

Publications (2)

Publication Number Publication Date
CN104581229A true CN104581229A (zh) 2015-04-29
CN104581229B CN104581229B (zh) 2018-08-03

Family

ID=53096280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510024568.1A Active CN104581229B (zh) 2015-01-16 2015-01-16 一种流媒体数据传输装置、方法和系统

Country Status (6)

Country Link
US (1) US10516712B2 (zh)
EP (1) EP3247121B1 (zh)
JP (1) JP6563424B2 (zh)
KR (1) KR101978738B1 (zh)
CN (1) CN104581229B (zh)
WO (1) WO2016112639A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016112639A1 (zh) * 2015-01-16 2016-07-21 京东方科技集团股份有限公司 流媒体数据传输方法、客户端和服务器
CN107566855A (zh) * 2016-06-30 2018-01-09 华为技术有限公司 频道快速切换的方法、服务器和机顶盒
CN109672887A (zh) * 2019-03-06 2019-04-23 北京奇艺世纪科技有限公司 一种视频编码方法及装置
CN113473183A (zh) * 2021-06-29 2021-10-01 华夏城视网络电视股份有限公司 一种应用于融合媒体的动静态媒体流批处理方法
CN114071241A (zh) * 2020-08-06 2022-02-18 成都鼎桥通信技术有限公司 视频播放方法、系统、电子设备及存储介质
CN115002519A (zh) * 2022-05-31 2022-09-02 北京势也网络技术有限公司 一种在低带宽网络下播放8k全景视频文件的方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768952A (zh) * 2018-05-03 2018-11-06 深圳市网心科技有限公司 一种流媒体传输方法、客户端、服务器和存储介质
CN111083094B (zh) * 2018-10-22 2022-06-07 中国移动通信有限公司研究院 一种流媒体的码流切换方法及装置、计算机存储介质
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
US11770592B2 (en) 2021-06-28 2023-09-26 Synamedia Limited Intrasegment adjustment of video transmission rate

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143384A (zh) * 2010-12-31 2011-08-03 华为技术有限公司 一种媒体文件生成方法、装置及系统
CN102307302A (zh) * 2011-07-06 2012-01-04 杭州华三通信技术有限公司 一种保持视频图像连续性的方法和装置
CN103248962A (zh) * 2013-04-23 2013-08-14 华为技术有限公司 获取流媒体数据的方法、设备及系统
CN103747283A (zh) * 2013-12-24 2014-04-23 中国科学院声学研究所 视频分片的下载方法
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100453505B1 (ko) * 2002-04-03 2004-10-20 주식회사 케이티프리텔 무선 네트워크 클라이언트에서 스트리밍 데이터의 멀티비트 레이트 기능 제어 방법 및 그 장치
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协议的媒体文件点播控制方法及装置
KR100931344B1 (ko) * 2007-08-31 2009-12-11 에스케이 텔레콤주식회사 Vod 스트리밍 서비스를 제공하는 방법과 그를 위한시스템, 서버 및 사용자 단말기
CN101471919B (zh) * 2007-12-29 2012-01-11 突触计算机系统(上海)有限公司 基于点对点传输协议的设备中用于下载分片的方法及装置
JP5245452B2 (ja) * 2008-02-26 2013-07-24 富士通株式会社 無線基地局、端末、および上位装置
WO2009155356A1 (en) * 2008-06-18 2009-12-23 Onion Networks, KK Traffic and cost containment for internet access by adapting the coding rate when distributing- media content
JP5347441B2 (ja) 2008-11-10 2013-11-20 日本電気株式会社 動画像処理装置
CN101848490B (zh) * 2009-03-24 2015-08-05 三星电子株式会社 移动通信系统中根据数据重复重发的操作方法和装置
US8817684B2 (en) 2010-12-17 2014-08-26 Verizon Patent And Licensing Inc. Adaptive mobile multicasting for wireless networks
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
US9712891B2 (en) 2011-11-01 2017-07-18 Nokia Technologies Oy Method and apparatus for selecting an access method for delivery of media
US9490994B2 (en) * 2012-09-20 2016-11-08 Sony Corporation Reception device, transmission/reception system, reception method, and program
CN104202618B (zh) * 2014-09-26 2019-02-15 三星电子(中国)研发中心 获取播放资源的方法、代理客户端、代理服务器和系统
CN104581229B (zh) * 2015-01-16 2018-08-03 京东方科技集团股份有限公司 一种流媒体数据传输装置、方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143384A (zh) * 2010-12-31 2011-08-03 华为技术有限公司 一种媒体文件生成方法、装置及系统
CN102307302A (zh) * 2011-07-06 2012-01-04 杭州华三通信技术有限公司 一种保持视频图像连续性的方法和装置
WO2014063726A1 (en) * 2012-10-23 2014-05-01 Telefonaktiebolaget L M Ericsson (Publ) A method and apparatus for distributing a media content service
CN103248962A (zh) * 2013-04-23 2013-08-14 华为技术有限公司 获取流媒体数据的方法、设备及系统
CN103747283A (zh) * 2013-12-24 2014-04-23 中国科学院声学研究所 视频分片的下载方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016112639A1 (zh) * 2015-01-16 2016-07-21 京东方科技集团股份有限公司 流媒体数据传输方法、客户端和服务器
US10516712B2 (en) 2015-01-16 2019-12-24 Boe Technology Group Co., Ltd. Streaming media data transmission method, client and server
CN107566855A (zh) * 2016-06-30 2018-01-09 华为技术有限公司 频道快速切换的方法、服务器和机顶盒
CN107566855B (zh) * 2016-06-30 2020-11-10 华为技术有限公司 频道快速切换的方法、服务器和机顶盒
CN109672887A (zh) * 2019-03-06 2019-04-23 北京奇艺世纪科技有限公司 一种视频编码方法及装置
CN114071241A (zh) * 2020-08-06 2022-02-18 成都鼎桥通信技术有限公司 视频播放方法、系统、电子设备及存储介质
CN113473183A (zh) * 2021-06-29 2021-10-01 华夏城视网络电视股份有限公司 一种应用于融合媒体的动静态媒体流批处理方法
CN113473183B (zh) * 2021-06-29 2023-05-05 华夏城视网络电视股份有限公司 一种应用于融合媒体的动静态媒体流批处理方法
CN115002519A (zh) * 2022-05-31 2022-09-02 北京势也网络技术有限公司 一种在低带宽网络下播放8k全景视频文件的方法

Also Published As

Publication number Publication date
JP6563424B2 (ja) 2019-08-21
JP2018509010A (ja) 2018-03-29
KR20160145657A (ko) 2016-12-20
KR101978738B1 (ko) 2019-05-15
EP3247121A4 (en) 2018-07-18
EP3247121B1 (en) 2024-02-14
US20160212189A1 (en) 2016-07-21
US10516712B2 (en) 2019-12-24
CN104581229B (zh) 2018-08-03
WO2016112639A1 (zh) 2016-07-21
EP3247121A1 (en) 2017-11-22

Similar Documents

Publication Publication Date Title
CN104581229B (zh) 一种流媒体数据传输装置、方法和系统
EP3056014B1 (en) Method and apparatus for content delivery
CN105282627B (zh) 一种获取直播视频切片的方法及服务器
US20140095668A1 (en) Method for seamless unicast-broadcast switching during dash-formatted content streaming
US20160072637A1 (en) Calculating and signaling segment availability times for segments of media data
EP2938091B1 (en) Method and device for receiving and sending media file and system
CN112511871B (zh) 用于分段器流动性的打包器
CN110933517B (zh) 码率切换方法、客户端和计算机可读存储介质
WO2018133601A1 (zh) 一种流媒体传输方法、装置、服务器及终端
US10320872B2 (en) Method and apparatus for transmitting and receiving media segments using adaptive streaming
WO2015169172A1 (zh) 网络视频播放的方法和装置
JP7011941B2 (ja) クライアント及び受信方法
CN113852824A (zh) 视频转码方法、装置、电子设备和存储介质
WO2017186036A1 (zh) 一种播放处理方法、终端设备及计算机存储介质
CN104581340B (zh) 客户端、流媒体数据接收方法和流媒体数据传输系统
JP6724783B2 (ja) 送信装置、送信方法、受信装置および受信方法
KR102349451B1 (ko) 멀티미디어의 전송 또는 수신 방법 및 그 장치
EP3681122B1 (en) System, method and devices for low latency transmission
KR20120008432A (ko) 스트리밍 서비스 송/수신 장치 및 방법
WO2017114393A1 (zh) Http流媒体传输方法及装置
US20240298052A1 (en) Cloud Media Player
WO2022002070A1 (zh) 媒体流的自适应实时递送方法及服务器
CN113905025A (zh) 一种传输流数据的方法、装置、介质及计算机设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant