CN114731450B - 服务器端自适性媒体串流 - Google Patents
服务器端自适性媒体串流 Download PDFInfo
- Publication number
- CN114731450B CN114731450B CN201980100989.4A CN201980100989A CN114731450B CN 114731450 B CN114731450 B CN 114731450B CN 201980100989 A CN201980100989 A CN 201980100989A CN 114731450 B CN114731450 B CN 114731450B
- Authority
- CN
- China
- Prior art keywords
- media
- time
- client
- media data
- encoding
- 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.)
- Active
Links
- 230000003044 adaptive effect Effects 0.000 title description 4
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012546 transfer Methods 0.000 claims abstract description 40
- 230000005540 biological transmission Effects 0.000 claims description 110
- 238000012545 processing Methods 0.000 claims description 20
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000011177 media preparation Methods 0.000 description 25
- 239000000872 buffer Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 241000278713 Theora Species 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000013396 workstream Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/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/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- 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/752—Media network packet handling adapting media to network capabilities
-
- 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
-
- 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/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- 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/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种媒体串流,尤其涉及一种媒体串流方法、程序、服务器与系统。媒体的一部分是从一串流服务器传输至一客户端且一传送时间是针对该媒体的该部分所决定。该传送时间与媒体的该部分的回放时段被进行比较。如果该回放时间与该传送时间之间的差超过预定量,该媒体的该比特率会被调整。
Description
技术领域
本发明涉及一种媒体串流,尤其涉及一种串流服务器与串流方法。
背景技术
现有的音频传输技术包含了像是Icecast和SHOUTcast、超文本传输协议(HyperText Transfer Protocol,HTTP)实时串流(HLS)和基于HTTP的动态图像专家组动态自适性串流(MPEG-DASH)。Icecast是一个串流媒体项目,其包含一个服务器程序,该服务器程序能够通过HTTP协议串流像是Opus(RFC6716或RFC8251)或Vorbis等宽带音频内容、通过HTTP协议串流像是WebM或Theora等视频、并通过SHOUTcast协议(其通过HTTP运作)串流动态图像专家组-1层级3(Movie Picture Experts Group 1Layer 3,MP3)、进阶音频编码(Advanced Audio Coding,AAC)和Nullsoft串流文件(NSV)。
许多或大多数现有的串流媒体装置,至少那些仅用于音频的装置,支持基于HTTP的经典Icecast,其可通过HTTP协议连续传送音频内容。对源音频进行编码后,源音频被放入服务器端的缓冲区中,然后传输到客户端。HLS和MPEG-DASH的运作方式有所不同。两者都使用分块(chunking),因此音频被切成多部分并放入相应的音频文件中。这些文件可以通过简单的HTTP服务器传递给客户端。
MPEG-DASH是通过将内容分成一系列基于HTTP协议的文件小区段来执行,每个区段包含一段短时间间隔的内容的回放时间,该内容回放时间可能长达数小时,例如电影或体育赛事的实况转播。内容能以各种不同的比特率(表示(representation))来取得,即,以不同比特率编码的替代区段覆盖了回放时间中对准的短间隔。在MPEG-DASH客户端回放该内容时,该客户端使用比特率自适性(自适性比特率(Adaptive Bit Rate,ABR))算法自动选择具有最高比特率的区段,其可以及时下载该段以进行回放而不会导致回放中发生停顿或重新缓冲。MPEG-DASH在传输控制协议(Transmission Control Protocol,TCP)上使用HTTP协议。
市场上已经存在的大多数(独立的)串流装置都不支持这种传送。
发明内容
本发明关于在数据网络上串流媒体的方法与设备。
本发明是由独立权利要求的范围所定义。附属权利要求中提供了一些较佳实施例。
根据本发明的一实施例,提供了一种在超文本传输协议HTTP上由一串流服务器200所执行的媒体串流的方法,该方法包括以下步骤:(步骤S310)从一客户端300接收对媒体数据的一请求;(步骤S320)向该客户端300传输一第一传输单元,该第一传输单元包含通过使用一第一类型编码来编码的媒体数据的一第一部分;(步骤S330)决定该第一传输单元对该客户端的传送时间;以及(步骤S350)通过使用比特率不同于该第一类型编码的一第二类型编码来传输包含该媒体数据的一第二部分的一第二传输单元,以基于所决定的传送时间来调整该串流的比特率。
根据一个实施例,该方法进一步包括以下步骤:(步骤S340)判定所决定的该传送时间与一媒体时间的差异是否大于一预定量;当判定出该传送时间与该媒体时间相差超过该预定量时,执行该调整步骤(步骤S350);以及当判定出该传送时间与该媒体时间相差不超过该预定量时,不执行该调整步骤(步骤S350)。
另外,在一些实施例中,当判定出该传送时间比该媒体时间高出一第一预定量以上时,传输包含通过使用低于该第一类型编码的一比特率来编码的该媒体数据的该第二部分的该第二传输单元。
另外,在一些实施例中,当判定出该传送时间比该媒体时间低于一第二预定量以上时,传输包含通过使用高于该第一类型编码的一比特率来编码的该媒体数据的该第二部分的该第二传输单元。
另外,根据示范性实施例,该方法还包括以下步骤:在传输该第二传输单元之前等待一预定的等待时间期间,该预定的等待时间期间是根据该媒体时间所决定。
在一实施例中,该第二传输单元的该传输包含:从一存储器中的多个区块中选择包含以该第二类型编码进行编码的媒体数据的该第二部分的一区块,该多个区块包含以不同于该第二类型编码的个别类型编码进行编码的媒体数据的该第二部分。
该方法可以进一步包括以下步骤:从多个客户端接收对该媒体数据的请求;以传输单元将该媒体数据传输至该多个客户端,该传输单元包含具有相同媒体时间的任意编码类型的媒体数据;以及以传输单元将附加媒体数据传输至该多个客户端,该传输单元包含具有相同媒体时间的任意编码类型及一客户端的媒体数据,其中,对于该多个客户端中的该些客户端而言,该附加媒体数据的内容不同。
上述实施例或示范性实施方式中的任何一个的方法可以包含以下步骤:从该客户端接收连接请求;在一特定客户端线程中与该客户端建立连接;以及存储该客户端的该连接启动的一时刻。
较佳地,该媒体数据是音频数据。确切地,该串流是一相容Icecast的串流。
在一些实施例中,该方法包括以下步骤:从多个个别的媒体文件中获取媒体数据区块;将连续的区块排序为连续串流;以及根据Icecast协议将该连续串流传输至该客户端。
根据本发明的另一实施例,提供了一种存储在非暂时性存储介质上的计算机程序,当该计算机程序在一处理器上执行时,该计算机程序执行如上述所有方法的步骤。
根据本发明的另一实施例,提供了一种串流服务器,包含:一接口,用于执行对一客户端的HTTP串流;一处理电路,可控制该接口,且配置以用于:从该客户端接收对媒体数据的请求;向该客户端传输一第一传输单元,该第一传输单元包含使用第一类型编码来编码的媒体数据的一第一部分;决定该第一传输单元对该客户端的传送时间;以及通过使用比特率不同于该第一类型编码的一第二类型编码来传输包含该媒体数据的一第二部分的一第二传输单元,以基于所决定的传送时间来调整该串流的比特率。
当将处理电路用于接收或传输数据时,可以通过控制接口进行接收或传输数据来实现。换句话说,处理电路可以通过数据接口接收或发送数据。在串流服务器中实现的数据接口是当作用于接收和/或发送数据的协议层。可以在软件和/或硬件,或者部分在软件同时部分在硬件中达成上述实现。因此,该接口也可以由处理电路来实现。
根据一个实施例,处理电路710还被配置为:判定所决定的该传送时间与一媒体时间的差异是否大于一预定量;当判定出该传送时间与该媒体时间相差超过该预定量时,执行该调整步骤;以及当判定出该传送时间与该媒体时间相差不超过该预定量时,不执行该调整步骤。
在一些实施例中,当判定出该传送时间比该媒体时间高出一第一预定量以上时,传输包含通过使用低于该第一类型编码的一比特率来编码的该媒体数据的该第二部分的该第二传输单元。
此外,当判定出该传送时间比该媒体时间低于一第二预定量以上时,传输包含通过使用高于该第一类型编码的一比特率来编码的该媒体数据的该第二部分的该第二传输单元。
在一些实施例中,该处理电路被配置为在传输该第二传输单元之前等待一预定的等待时间期间,该预定的等待时间期间是根据该媒体时间所决定。
在示范性实施方式中,第二传输单元的传输包含:从一存储器中的多个区块中选择包含以该第二类型编码进行编码的媒体数据的该第二部分的一区块,该多个区块包含以不同于该第二类型编码的个别类型编码进行编码的媒体数据的该第二部分。
处理电路可以被配置以控制接口用以:从多个客户端接收对该媒体数据的请求;以传输单元将该媒体数据传输至该多个客户端,该传输单元包含具有相同媒体时间的任意编码类型的媒体数据;以及以传输单元将附加媒体数据传输至该多个客户端,该传输单元包含具有相同媒体时间的任意编码类型及一客户端的媒体数据,其中,对于该多个客户端中的该些客户端而言,该附加媒体数据的内容不同。
根据一个实施例,处理电路还被配置为:从该客户端接收连接请求;在一特定客户端线程中与该客户端建立连接;以及存储该客户端的该连接启动的一时刻。
较佳地,该媒体数据是音频数据。确切地,该串流是一相容Icecast的串流。
在一些实施例中,处理电路被配置为:从多个个别的媒体文件中获取媒体数据区块;将连续的区块排序为连续串流;以及根据Icecast协议将该连续串流传输至该客户端。
根据本发明的另一实施例,提供了一种串流系统,包含:如上所述的串流服务器,该串流服务器进一步提供有连接至一存储器的一接口;以及该存储器中存储有媒体数据,该媒体数据被分成具有相同媒体时间段的区块,该相同媒体时间段的区块是以不同的比特率和/或使用不同的编译码器进行编码,其中,该存储器包含用于向该串流服务器提供区块的一接口。
上述实施例可以和任何一个示范性实施方式组合。
附图说明
以下的参考图示和附图更详细地描述本发明的实施例,其中:
图1是基于HTTP的示范性视频串流架构的方块图;
图2是用于媒体串流的比特率服务器端自适性的方法示意图;
图3是串流服务器处执行用于比特率自适性的方法流程图;
图4是串流服务器处执行用于比特率自适性的方法的细节流程图;
图5A和图5B两者联合示出了信息图,其示出了媒体准备部分、串流服务器和客户端之间的交流;
图6是串流系统的示范性架构中的工作串流的方块图;以及
图7是串流服务器的示范性结构的方块图。
在下文中,若无另外明确指出,则相同的组件符号代表相同或等效的特征。附图是示范性实施例,并且该些实施例并不限制本发明的公开内容。其他特征和选择在以下描述中将是显而易见的。
具体实施方式
图1是示范性串流架构,其包含三个功能块:媒体准备部分100、串流服务器200和客户端300。这三个功能块可以分开设置。媒体准备部分100通常可以对应于服务器、多个服务器或集合服务器。媒体准备服务器100的主要功能是准备串流媒体。向媒体准备服务器100提供诸如音频、视频和/或相关文本信息之类的媒体,使媒体被编码或分段。例如,可以经由网络(任何数据网络)或经由任何可连接的存储介质以原始格式(没有压缩,如由记录装置撷取的情形)或者是包含遗失或完好压缩的格式,将媒体提供给媒体准备服务器100。媒体准备服务器100接着对媒体进行编码以获得分别具有一或多个比特率的编码媒体。可以使用相同的编码器或几个不同的编码器获得不同的媒体表示。
可能需要将媒体分割成相同或对齐的回放时段的部分。如此一来能够在客户端不包含内容连续性的情况下在不同的表示形式之间进行切换。有时将相同回放时段的部分称为区块(chunk)。尽管各部分的回放时段相同,但通常不同表示之间的区块长度会有所不同,并且同一表示内的区块长度也可能会有所不同。然后将分割后的区块存储在媒体准备服务器100中。媒体准备服务器100提供接口,串流服务器200可以在该接口上存取该区块。这可以是用于下载区块的任何协定。
需要注意的是,媒体准备服务器100可以是与仅存储媒体区段(segment)的文件服务器相对应的简单媒体服务器。媒体区段可以由内容提供商从其各自的站点存储或周期性地下载。本发明不受媒体准备服务器100的任何特定应用的限制。实际上,媒体准备服务器100和串流服务器200不必分开,并且可以在同一服务器、多个服务器或集合服务器上实现。
串流服务器200从客户端300接收串流请求,获取适当的区块并将其传输到客户端300。在图1的示范性结构中,串流服务器200通过HTTP协议与客户端300通信。由串流服务器200提供索引文件(index file)。可以由媒体准备服务器100或在串流服务器处生成索引文件。索引文件对应于回放列表,该回放列表包含对各个媒体区块按照其顺序的参考,其中的媒体区块在客户端300被要求与回放。例如,在HTTP串流的情况下,索引可以包含含有区块的媒体文件的统一资源定位符(Uniform Resource Locator,URL)。然而,本发明不需要任何索引文件,因为它不限于HLS或MPEG-DASH串流或列出多个URL的任何串流支持索引文件。相反地,为了提供HTTP串流,可以使用单个URL地址。
索引文件的URL在HTTP服务器上发布,即在串流服务器200上发布。客户端(软件)300读取索引,然后按索引给定的顺序提出列举媒体文件的请求并连续回放。在媒体回放时,与用于媒体准备的对应于编码器的译码器将被应用在客户端300。一般来说,客户端300通过任何类型的数据网络与串流服务器200进行通信,数据网络可能包含因特网以及诸如基于数字用户线(Digital Subscriber Line,DSL)的网络、无线网络(例如,无线局域网络(WLAN)、通用移动通信系统(UMTS)、长期演进技术(LTE)等)、局域网络/局部局域网络(WAN/LAN)等等之类的存取网络。
媒体准备部分100、串流服务器200和一或多个客户端300形成串流系统101。
提供了串流服务器200和相应的串流方法,该串流服务器200和相应的串流方法经由HTTP将串流内容动态地传递到客户端300。
在图2中示出了动态方法的深度概述。确切地,在步骤S210中,串流服务器200从客户端300接收对串流的请求。在步骤S220中,串流服务器200将媒体传输到客户端300。在步骤S230中,服务器切换媒体的表示,并在步骤S240中以调整后的(切换的)表示来传输媒体。下面将解释该方法的更多细节。
根据一实施例,提供了一种用于由串流服务器200执行的通过HTTP的媒体串流的方法。该方法在图3中示出。媒体可以是音频、视频和/或相关的文本或图形信息、任何其他信息或上述的组合。一般来说,串流服务器可以是任何串流源端,包含一或多个串流服务器和/或媒体(准备)服务器。
该方法包含:步骤S310,从客户端300接收对媒体数据的请求;以及步骤S320,将第一传输单元发送到到客户端300,该第一传输单元包含通过应用第一类型编码而被编码的媒体数据的第一部分。另外,该方法包含:步骤S330,决定第一传输单元向客户端的传送时间;以及步骤S350,根据通过步骤S320传输一第二传输单元所判定的传送时间来调整该串流的比特率,该第二传输单元包含该媒体数据的一第二部分,该第二部分是藉由使用比特率不同于该第一类型编码的一第二类型编码所进行编码的。
第一和第二单元可以是媒体串流的区块,以使得第一区块在回放序列中位于第二区块前面。第一类型和第二类型编码,举例来说,可以是由不同品质(quality)编码的相同媒体的两种表示,也因此产生不同比特率。然而,本发明不限于提供由相同编译码器编码的两个表示。表示可以由不同编译码器提供。在此,术语“品质”可以指不同量化阶差大小的使用。步骤S330中的传送时间的决定可以包含测量传送时间和/或估计传送时间,例如根据测量来决定。
从图3中可以看出,该方法还可以包含:步骤S340,判定被决定的传送时间与媒体时间相差的量超过一预定量,并在判定出该传送时间与媒体时间相差没超过该预定量时(步骤S340中为“否”)执行不调整步骤。当判定出传送时间与媒体时间的相差超过该预定量时(步骤S340中为“「是”)执行调整步骤。这里的传送时间可以指将区块从串流服务器200传输到客户端300所必需的时间间隔。媒体时间可以指回放时间(内容长度),即,用于回放该区块的媒体的媒体时间间隔。
图4示出了步骤S350:比特率的示范性调整(对应于表示)。当在步骤S352中判定出传送时间比媒体时间高出第一预定量以上时,进行步骤S320来传输包含通过使用低于该第一类型编码的一比特率来编码的该媒体数据的该第二部分的该第二传输单元。换句话说,在步骤S354减少比特率。
另一方面,当在步骤S352中判定出传送时间比媒体时间短第二预定量以上时,传输包含通过使用高于该第一类型编码的一比特率来编码的该媒体数据的该第二部分的该第二传输单元。换句话说,在步骤S356增加比特率。
第一预定量可以是包含0的任何量。然而,实际上,可以根据相同媒体的表示的比特率的粒度(granularity)来设置第一预定量。这是因为可以通过选择由不同比特率编码的相同媒体的另一区块来执行步骤S350来调整。不会每个比特率值都有被提供区块,而是以某些间距(例如8kbps、16kbps、32kbps等)提供区块。本发明不限于任何特定的比特率或粒度。比特率之间的差异可能会更小,从而导致调整精细,但区块的存储需求也更高。比特率之间的差异可以不同。
第一预定量可以但不一定必须与第二预定量相同。这些量可以由串流服务器的管理员/提供者通过将其设置为各自的数值来决定,或可以被固定地编程、或由任何其他方式配置。
根据一示范性实施例的方法包括:在传输该第二传输单元之前等待一预定的等待时间期间(waiting time period),该预定的等待时间期间是根据该媒体时间所决定。这是为了避免客户端300提早请求其他区块。例如,如果传送时间小于回放时间,则在调整后增加比特率以增加传送时间。等待步骤被引入是用于以避免客户端300请求以与调整之前相同的低延迟来请求另外的区块(媒体文件)。
参照图1所示,串流服务器对第二传输单元的传输包含从一存储器中的多个区块中选择包含以该第二类型编码进行编码的媒体数据的该第二部分的一区块,该多个区块包含以不同于该第二类型编码的个别类型编码进行编码的媒体数据的该第二部分。相对于串流服务器,存储器可以是内部或外部存储器。存储器可以对应于文件服务器(媒体服务器),该文件服务器可以是媒体准备服务器或集合的一部分。
媒体服务器能够处理来自一或多个客户端300的请求。该方法可以包含以下步骤:从该多个客户端接收对该媒体数据的请求;以传输单元对该多个客户端传输媒体数据,该传输单元包含以任何编码类型编码的具有相同媒体时间的该媒体数据;以传输单元对该多个客户端传输附加的媒体数据,该传输单元包含的附加媒体数据至,该传输传输单元包含的该媒体数据对于任何编码类型具有相同媒体时间;其中,对于该多个客户端中的该些客户端而言,该附加媒体数据的内容不同。
换句话说,可以向两个客户端的(相同或不同)串流添加与请求的串流不同的个人化数据。
具体地,步骤S210可以包含:从该客户端接收连接请求;在一特定客户端线程(thread)中与该客户端建立连接;以及存储该客户端的该连接启动的一时刻(timeinstant)。连接开始的时刻可以是时间戳。
尽管本发明不限于任何特定类型的媒体,但是可以容易地应用于音频串流。因此,媒体数据是音频数据。然而,本发明也可以容易地应用于其他种类的媒体。例如,在此描述的任何实施例都适用于视频串流以及包含音频和/或视频和/或文本或图形信息的一般媒体串流。
在有利的实施方式中,串流是与Icecast相容的串流。
例如,串流服务器可以应用混合方法以符合Icecast。串流服务器端(例如,媒体准备部分100)以对应于不同比特率的具有不同编译码器和/或品质等级的音频来编码。音频也被分区块(分段)并放入各自的文件中,每个文件包含一个区块。然后,音频区块被放在一起形成连续串流(例如,音频数据传输串流(Audio Data Transport Stream,ADTS)容器中的进阶音频编码(Advanced Audio Coding,AAC)串流、Ogg容器中的MP3或Opus、或任何其他流格式),再一次传递给客户端300,以便几乎所有串流装置都能够以这种方式回放音频。换句话说,即使是串流客户端300不支持诸如HLS或DASH之类的分块HTTP串流,这是当今大多数可用的独立互联网广播可能会接收到音频的情况。
这样的串流服务器200提供了与Icecast协议兼容的HTTP服务器,使得广播商不必担心如何连接到串流服务器,因为对于大多数广播商都可以做得与使用传统的基于Icecast的串流之前完全一样。
基于Icecast的(源)串流意味着以连续串流的形式传递编码音频,该传递是通过HTTP PUT/SOURCE协议以及用于更新元数据并将其同步到所传递的媒体的附加HTTP请求。包含媒体准备部分100的串流服务器端使用不同的编译码器和品质级别对音频进行编码,并存储集中文件的区块。这些音频区块是向客户端装置传递的基础。
返回图2,在步骤S210中,串流服务器200接受HTTP客户端连接。一个客户端可以请求一或多个HTTP连接。串流服务器200使用Icecast兼容的HTTP标头进行应答。解析HTTP请求URL,串流服务器200决定要传送哪个串流,例如Icecast的挂载点(mountpoint)。Icecast(串流式)服务器可以容纳多个广播(或挂载点),每个广播包含一个单独的内容串流。挂载点是(串流或媒体)服务器上标识特定串流的唯一名称。挂载点可对应一个档名。一个侦听器可以一次侦听一个挂载点。
每个客户端连接使用其本身线程进行处理。连接开始的实时时间存储在内存中。例如,实时时间表示绝对时间。服务器随后使用该时间进行不同的计算,例如为了确定传送时间。关于移动串流,音频缓冲器是较佳的。在新的连接开始时,音频材料的定义(实时)长度被尽快地传输到客户端300,例如音频的实时时间为30秒,即,回放30秒时间。服务器计算音频内容的长度(30秒)与包括这30秒的回放时间的该(一或多个)视频区块的传送时间的差异。
之后,在仍然向客户端发送新音频的同时,连续地(规则地)计算音频长度与传输时段之间的差异,例如,每个预定的时段。假如传输5秒钟的音频数据需要6秒钟,则缓冲区将降低1秒。客户端缓冲区的服务器端计算在内部称为虚拟缓冲区。缓冲区是用于衡量传送时间和回放时间之间的差异。例如,假如传送时间与回放时间相同,这是理想情况,则无需在客户端进行缓冲,就可以在媒体到达时进行回放。然而,由于媒体比特率的变化和包含链路品质和共存串流量传输的媒体条件的变化,这种情况不太可能发生。假如传送时间低于回放时间,则该客户端需要缓冲媒体直到其回放时间。假如传送时间高于回放时间,在某些时间下将不会回放媒体数据,从而导致串流媒体的中断和暂停。因此,需要将传送时间和回放时间之间的差异维持越小越好。另一方面,当传送延迟大于回放时间时,感知品质会因中断而大大降低。因此,实际上需要有一些非零缓冲区以补偿可能的延迟。
对于每个传输单元(可以是定义长度的完整音频区块,甚至单个音频帧),都会为该特定交谈(explicit session)计算并更新虚拟缓冲区。需要注意的是,传输单元可以是任何指定的时段。
假如虚拟缓冲区达到定义的级别,则服务器将决定是否必须对带宽/比特率进行调整。举例来说,假如虚拟缓冲区的阈值降至25秒以下,则可以降低比特率。在这种情况下,服务器将获取使用较低比特率设置编码的音频区块。假如虚拟缓冲区再次达到所需的水平,则品质/比特率可以再次提高,以传输下一个音频区块。
假如达到了所需的虚拟缓冲级别,则服务器将在传输下一个音频部分之前等待定义的时间。服务器必须等待,因为“只”有实时速率的音频输入,否则客户端会请求音频传输公司尚未编码或尚未传输的音频材料。
使用此技术,还可以为每个客户端交谈明确地交换每个音频区块。可以将每个毫秒的音频传送到与来源无关的每个客户端,使得可以依广播公司需求为每个收听者替换广告或指定的音轨。
图5A和图5B总结了实施例的方法,并且示出了媒体准备部分100、串流服务器200和客户端300之间的示范性互联。图5B是图5A的延续。
特别地,HTTP客户端(对应于客户端300)请求来自串流处理器(串流服务器200的一部分)的串流。然后,串流处理器向集合服务器(代表媒体准备部分100)请求适当的区块,在此例子中的该集合服务器是HTTP服务器。需要注意的是,媒体准备部分100和串流服务器200之间的区块传送(意味着任何协议)可以是包含二进制数据交换的任何种类的传送,例如可存取的文件目录、网络文件系统(NFS)网络共享、服务器消息块块(smb)网络共享、HTTP服务器或任何其他自定义协议。
然后,HTTP(集合)服务器将所请求的区块提供给串流服务器(图5A和图5B中未示出),该串流服务器设置传送时间的量测,例如,通过存储时间戳,并提供区块至该HTTP客户端。串流服务器测量传送时间。可以当作HTTP协议或TCP协议的一部分来执行或通过监视来自客户端的反馈来以其他方式执行,例如存储HTTP传送方法开始时的时间戳,并在给定数据量的传送末尾评估另一个时间戳。一旦完成部分传送,将计算时间差(delta)。可以基于从在串流服务器处的媒体数据(客户端)的接收器接收到的确认来识别传输结束。例如,传输控制协议(TCP)确认或任何其他层协议确认,或者通常是来自客户端的任何反馈。
获得测量结果后,判定传送时间是否高于或低于音频(一般是媒体)的实时时间,即在传送时间内传输的数据的回放时间。假如传送时间较长(例如差了第一预定时间量),将调用串流处理器以降低媒体的比特率级别(图5B)。换句话说,串流服务器从集合服务器请求适当的区块,这意味着以比特率编码的表示中的区块要比传送时间过长的区块的比特率低。然后将这些区块从串流服务器(由串流处理器)提供给客户端。因此,无论客户端向串流服务器的请求为何,串流服务器控制到客户端的串流的比特率。这有助于通过串流服务器的自动品质控制来自适性地提供串流。
另一方面,假如测量的传送时间较低(例如,差了第二个预定时间量),将调用串流处理器以增加媒体的比特率级别(图5B)。换句话说,串流服务器从集合服务器请求适当的区块,这意味着以比特率编码的表示中的区块要比传送时间过短的区块的比特率高。然后将这些区块从串流服务器(由串流处理器)提供给客户端。通过这种方式,为客户端提供了适当的比特率,避免了客户端需要较大的缓冲区。换句话说,串流服务器自动提供了客户端可以接收的品质。
需要注意的是,第一预定时间量可以与第二预定时间量相同,但不必一定相同。如图5B所示,比特率的增加和减少受到具有较低或较高比特率的区块的可用性所限制。假如比特率尚未达到被支持的最低级别,则可以降低比特率。假如比特率尚未达到被支持的最高级别,则可以提高比特率。
可以在串流期间重复该方法。特别地,可以针对每个区块或针对每个预定数目的区块来测量传送时间,即,在串流期间连续地进行测量。对于不太复杂的实现,可以执行测量不是连续的而是有一定的周期性的,例如每30秒或每分钟一次等。在某些实现中,可以始终通过向上或向下一个品质级别逐步执行递增和递减操作。在其他实现中,由客户端选择适当的品质级别(比特率)来决定回放品质,例如HLS和MPEG-DASH。此实现的品质不能强加于服务器端,在很大程度上取决于客户端计算可用带宽的实现。
串流处理器是串流服务器的功能单元,其可以在处理电路上运行的软件中实现或嵌入在处理电路的硬件中。
根据一个实施例,一种存储在非暂时性存储介质上的计算机程序,当在处理器上执行该计算机程序时,该计算机程序执行上述任何方法的所有步骤。换句话说,该方法可以被具体化为用于串流服务器的程序代码。
根据图7所示的另一个实施例,提供了串流服务器700,其包含:接口730,用于将媒体数据HTTP串流到客户端,并且可以由处理电路710控制。处理电路710被配置为控制接口730用于:从客户端接收媒体数据请求;向客户端传输第一传输单元,该第一传输单元包含通过应用第一类型编码而编码的媒体数据的第一部分;决定第一传输单元向客户端的传送时间;通过使用比特率来应用不同于该第一类型编码的一第二类型编码来传输包含该媒体数据的一第二部分的一第二传输单元,以基于所决定的该传送时间来调整该串流的比特率。
串流服务器还可以包含用于(暂时)存储从媒体准备服务器或从本身的媒体存储获得的区块的存储器720。
图6是数据源和客户端之间的示范性流程。特别是,数据源提供原始、无损或高品质有损编码数据。此处的数据源可以是任何直接来源,例如一或多个相机。然而,数据源也可以是存储器,例如位于内容提供商、移动存储、或其他来源。数据源可将媒体数据提供给对应媒体准备服务器100的(HTTP)服务器,该服务器使用编码器将媒体数据编码为各别具有不同品质级别(在图6中以品质1…品质N表示)的N个表示。编码的N个表示存储在可通过数据管理者存取的数据存储器中(也是媒体准备服务器100的一部分)。串流服务器可要求数据管理者提供如上所述的适当区块。然后,数据管理者取得适当的区块(即,要提供给客户端的区块序列中的区块,并且在品质级别1到N中具有适当的品质k。如上所述,参照图5A和图5B,基于传送时间的测量以及与各个区块或多个区块的回放时间的比较来决定适当的品质级别k。因此,当串流客户端请求连续HTTP串流(例如Icecast支持的HTTP串流)时,串流服务器开始请求适当的区块,测量传送时间并将这些区块作为连续HTTP串流发送给客户端,其可能会更改比特率以适应客户端功能/链接品质。
在一些实施例中,提供了一种系统,该系统包含:如上所述的串流服务器200,进一步提供连至一存储器的一接口;以及该存储器100中存储有媒体数据,该媒体数据被分成具有相同媒体时间段(media time duration)的区块,该相同媒体时间段的区块是以不同的比特率和/或使用不同的编译码器进行编码,其中,该存储器包含用于向该串流服务器提供区块的一接口。
需要注意的是,关于方法的以上描述也可以应用于对应执行该方法的步骤的装置,反之亦然。
本发明可以通过软件、硬件或两者的任何组合来实现。特别地,串流服务器可以是具有一或多个处理器的通用计算机或计算机集合,其中串流服务器的功能(例如串流处理器或数据管理者与媒体准备服务器中的数据管理者进行通信以获取适当的区块)是由软件实现的。然后,软件会配置串流服务器(一或多个处理器)以执行该功能。然而,一般来说,本发明不限于任何特定的实现和使用。相反地,串流服务器也可以全部或部分地由专用或可编程硬件来实现。
综上所述,本发明涉及媒体串流,尤其涉及一种媒体串流方法、程序、服务器和系统。媒体的一部分是从一串流服务器传输至一客户端且一传送时间是针对媒体的该部分所决定。该传送时间与媒体的该部分的回放时段被进行比较。当决定出该传送时间与该回放时间相差超过预定量时,该媒体的该比特率会被调整。
Claims (21)
1.一种在超文本传输协议(HTTP)上由一串流服务器(200)所执行的媒体串流的方法,其特征在于,包括以下步骤:
(步骤S310)从一客户端(300)接收对媒体数据的一请求;
(步骤S320)向所述客户端(300)传输一第一传输单元,所述第一传输单元包含通过使用一第一类型编码来编码的媒体数据的一第一部分;
(步骤S330)决定所述第一传输单元对所述客户端的传送时间;以及
(步骤S350)通过传输一第二传输单元,以基于所决定的传送时间来调整所述串流的比特率,所述第二传输单元包含通过使用一第二类型编码来编码的所述媒体数据的一第二部分,所述第一类型编码与所述第二类型编码的比特率不同;
其中,所述第二传输单元的所述传输包含:
从一存储器中的多个区块中选择包含以所述第二类型编码进行编码的媒体数据的所述第二部分的一区块,所述多个区块包含以不同于所述第二类型编码的个别类型编码进行编码的媒体数据的所述第二部分;以及
在连续的HTTP协议串流中将所述区块传输到所述客户端。
2.根据权利要求1所述的方法,其特征在于,进一步包括:
(步骤S340)判定所决定的所述传送时间与一媒体时间的差异是否大于一预定量;
当判定出所述传送时间与所述媒体时间相差超过所述预定量时,执行所述调整步骤(步骤S350);以及
当判定出所述传送时间与所述媒体时间相差不超过所述预定量时,不执行所述调整步骤(步骤S350)。
3.根据权利要求2所述的方法,其特征在于,当判定出所述传送时间比所述媒体时间高出一第一预定量以上时,传输包含通过使用低于所述第一类型编码的一比特率来编码的所述媒体数据的所述第二部分的所述第二传输单元。
4.根据权利要求2或3所述的方法,其特征在于,当判定出所述传送时间比所述媒体时间低于一第二预定量以上时,传输包含通过使用高于所述第一类型编码的一比特率来编码的所述媒体数据的所述第二部分的所述第二传输单元。
5.根据权利要求4所述的方法,其特征在于,包括以下步骤:在传输所述第二传输单元之前等待一预定的等待时间期间,所述预定的等待时间期间是根据所述媒体时间所决定。
6.根据权利要求5所述的方法,其特征在于,包括以下步骤:
从多个客户端接收对所述媒体数据的请求;
以传输单元将所述媒体数据传输至所述多个客户端,所述传输单元包含具有相同媒体时间的任意编码类型的媒体数据;以及
以传输单元将附加媒体数据传输至所述多个客户端,所述传输单元包含具有相同媒体时间的任意编码类型及一客户端的媒体数据,其中,对于所述多个客户端中的所述多个客户端而言,所述附加媒体数据的内容不同。
7.根据权利要求6所述的方法,其特征在于,包括以下步骤:
从所述客户端接收连接请求;
在一特定客户端线程中与所述客户端建立连接;以及
存储所述客户端的所述连接启动的一时刻。
8.根据权利要求7所述的方法,其特征在于,所述媒体数据是音频数据。
9.根据权利要求8所述的方法,其特征在于,所述串流是一相容Icecast的串流。
10.根据权利要求9所述的方法,其特征在于,包括以下步骤:
从多个个别的媒体文件中获取媒体数据区块;
将连续的区块排序为连续串流;以及
根据Icecast协议将所述连续串流传输至所述客户端。
11.一种串流服务器(700),其特征在于,包括:
一接口(730),用于执行对一客户端的HTTP串流;
一处理电路(710),可控制所述接口,且配置以用于:
从所述客户端接收对媒体数据的请求;
向所述客户端传输一第一传输单元,所述第一传输单元包含通过使用一第一类型编码来编码的媒体数据的一第一部分;
决定所述第一传输单元对所述客户端的传送时间;
通过传输一第二传输单元,以基于所决定的传送时间来调整所述串流的比特率,所述第二传输单元包含通过使用一第二类型编码来编码的所述媒体数据的一第二部分,所述第一类型编码与所述第二类型编码的比特率不同;
所述第二传输单元的所述传输包含:
从一存储器中的多个区块中选择包含以所述第二类型编码进行编码的媒体数据的所述第二部分的一区块,所述多个区块包含以不同于所述第二类型编码的个别类型编码进行编码的媒体数据的所述第二部分;以及
在连续的HTTP协议串流中将所述区块传输到所述客户端。
12.根据权利要求11所述的串流服务器,其特征在于,所述处理电路(710)进一步被配置以:
判定所决定的所述传送时间与一媒体时间的差异是否大于一预定量;
当判定出所述传送时间与所述媒体时间相差超过所述预定量时,执行所述调整步骤;以及
当判定出所述传送时间与所述媒体时间相差不超过所述预定量时,不执行所述调整步骤。
13.根据权利要求12所述的串流服务器,其特征在于,当判定出所述传送时间比所述媒体时间高出一第一预定量以上时,传输包含通过使用低于所述第一类型编码的一比特率来编码的所述媒体数据的所述第二部分的所述第二传输单元。
14.根据权利要求12或13所述的串流服务器,其特征在于,当判定出所述传送时间比所述媒体时间低于一第二预定量以上时,传输包含通过使用高于所述第一类型编码的一比特率来编码的所述媒体数据的所述第二部分的所述第二传输单元。
15.根据权利要求14所述的串流服务器,其特征在于,所述处理电路被配置为在传输所述第二传输单元之前执行等待一预定的等待时间期间,所述预定的等待时间期间是根据所述媒体时间所决定。
16.根据权利要求15所述的串流服务器,其特征在于,所述处理电路被配置以控制所述接口以用于:
从多个客户端接收对所述媒体数据的请求;
以传输单元将所述媒体数据传输至所述多个客户端,所述传输单元包含具有相同媒体时间的任意编码类型的媒体数据;以及
以传输单元将附加媒体数据传输至所述多个客户端,所述传输单元包含具有相同媒体时间的任意编码类型及一客户端的媒体数据,其中,对于所述多个客户端中的所述多个客户端而言,所述附加媒体数据的内容不同。
17.根据权利要求16所述的串流服务器,其特征在于,所述处理电路进一步被配置以:
从所述客户端接收连接请求;
在一特定客户端线程中与所述客户端建立连接;以及
存储所述客户端的所述连接启动的一时刻。
18.根据权利要求17所述的串流服务器,其特征在于,所述媒体数据是音频数据。
19.根据权利要求18所述的串流服务器,其特征在于,所述串流是一相容Icecast的串流。
20.根据权利要求19所述的串流服务器,其特征在于,所述处理电路被配置以:
从多个个别的媒体文件中获取媒体数据区块;
将连续的区块排序为连续串流;以及
根据Icecast协议将所述连续串流传输至所述客户端。
21.一种系统,其特征在于,包括:
如权利要求11至20中的任一项所述的串流服务器,所述串流服务器进一步提供有连接至所述存储器的一接口;以及
所述存储器中存储有媒体数据,所述媒体数据被分成具有相同媒体时间段的区块,所述相同媒体时间段的区块是以不同的比特率和/或使用不同的编译码器进行编码,
其中,所述存储器包含用于向所述串流服务器提供区块的一接口。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2019/076556 WO2021063488A1 (en) | 2019-10-01 | 2019-10-01 | Server-side adaptive media streaming |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114731450A CN114731450A (zh) | 2022-07-08 |
CN114731450B true CN114731450B (zh) | 2024-08-13 |
Family
ID=68136403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980100989.4A Active CN114731450B (zh) | 2019-10-01 | 2019-10-01 | 服务器端自适性媒体串流 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20220408135A1 (zh) |
EP (1) | EP4038888A1 (zh) |
CN (1) | CN114731450B (zh) |
AR (1) | AR120127A1 (zh) |
CA (1) | CA3154701A1 (zh) |
TW (1) | TWI797483B (zh) |
WO (1) | WO2021063488A1 (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2375680A1 (en) * | 2010-04-01 | 2011-10-12 | Thomson Licensing | A method for recovering content streamed into chunk |
EP2477397A1 (en) * | 2011-01-12 | 2012-07-18 | Nxp B.V. | Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections |
US9137551B2 (en) * | 2011-08-16 | 2015-09-15 | Vantrix Corporation | Dynamic bit rate adaptation over bandwidth varying connection |
US9356821B1 (en) * | 2012-08-08 | 2016-05-31 | Tata Communications (America) Inc. | Streaming content delivery system and method |
HUE043713T2 (hu) * | 2013-03-29 | 2019-09-30 | Intel Ip Corp | Minõségtudatos sebességillesztési technikák DASH streameléshez |
EP2819379A1 (en) * | 2013-06-28 | 2014-12-31 | Thomson Licensing | Method for adapting the downloading behavior of a client terminal configured to receive multimedia content, and corresponding terminal |
US9756374B2 (en) * | 2014-09-10 | 2017-09-05 | Ericsson Ab | Advertisement targeting scheme in a multicast ABR environment based on throttled ad channel streaming |
KR101863598B1 (ko) * | 2016-07-29 | 2018-06-01 | 주식회사 에어브로드 | 스트리밍 서비스를 위한 클라이언트의 동작 방법 |
WO2018165487A1 (en) * | 2017-03-08 | 2018-09-13 | Arris Enterprises Llc | Excess bitrate distribution based on quality gain in sabr server |
US10645437B2 (en) * | 2017-04-03 | 2020-05-05 | Sling Media Pvt Ltd | Systems and methods for achieving optimal network bitrate |
-
2019
- 2019-10-01 WO PCT/EP2019/076556 patent/WO2021063488A1/en active Application Filing
- 2019-10-01 CA CA3154701A patent/CA3154701A1/en active Pending
- 2019-10-01 EP EP19782570.6A patent/EP4038888A1/en active Pending
- 2019-10-01 US US17/765,567 patent/US20220408135A1/en active Pending
- 2019-10-01 CN CN201980100989.4A patent/CN114731450B/zh active Active
-
2020
- 2020-09-30 TW TW109134259A patent/TWI797483B/zh active
- 2020-09-30 AR ARP200102719A patent/AR120127A1/es active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
WO2021063488A1 (en) | 2021-04-08 |
CA3154701A1 (en) | 2021-04-08 |
TWI797483B (zh) | 2023-04-01 |
CN114731450A (zh) | 2022-07-08 |
AR120127A1 (es) | 2022-02-02 |
US20220408135A1 (en) | 2022-12-22 |
EP4038888A1 (en) | 2022-08-10 |
TW202123720A (zh) | 2021-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764642B2 (en) | Managed multiplexing of video in an adaptive bit rate environment | |
US10547659B2 (en) | Signaling and processing content with variable bitrates for adaptive streaming | |
US20080133766A1 (en) | Method and apparatus for streaming media to a plurality of adaptive client devices | |
US10320869B2 (en) | Network-capacity optimized adaptive HTTP streaming | |
EP2752017B1 (en) | Method and apparatus for adaptive transcoding of multimedia stream | |
US8621061B2 (en) | Adaptive bitrate management for streaming media over packet networks | |
US20170257412A1 (en) | Processing of multimedia data | |
CN102714602B (zh) | 通过网络传输用来播放的多媒体内容的系统和方法 | |
US20100312828A1 (en) | Server-controlled download of streaming media files | |
CN106688239B (zh) | 视频下载方法、装置及系统 | |
US20060109856A1 (en) | Method and apparatus for adaptive buffering | |
EP1271953A2 (en) | Improved startup methods and apparatuses for use in streaming content | |
EP3120520B1 (en) | Media streaming | |
EP2437458A1 (en) | Content delivery | |
US20120303833A1 (en) | Methods for transmitting and receiving a digital signal, transmitter and receiver | |
CN1992886A (zh) | 具有带宽适配功能的流媒体服务器 | |
CN114731450B (zh) | 服务器端自适性媒体串流 | |
EP4091332A1 (en) | Adaptive streaming of media content with bitrate switching | |
EP2566171A1 (en) | Method for adapting the segment size in transcoded multimedia streams | |
CN115695846A (zh) | 一种连续隧道场景下优化自适应码率视频调度方法和系统 | |
CN113852865A (zh) | 码率调整方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |