CN105723720B - 自适应特技播放串流 - Google Patents
自适应特技播放串流 Download PDFInfo
- Publication number
- CN105723720B CN105723720B CN201380011874.0A CN201380011874A CN105723720B CN 105723720 B CN105723720 B CN 105723720B CN 201380011874 A CN201380011874 A CN 201380011874A CN 105723720 B CN105723720 B CN 105723720B
- Authority
- CN
- China
- Prior art keywords
- version
- speed
- special play
- bit rate
- frame per
- 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
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 title claims abstract description 88
- 230000003044 adaptive effect Effects 0.000 title claims description 4
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000004891 communication Methods 0.000 claims description 21
- 238000013500 data storage Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 9
- 239000000872 buffer Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000007906 compression Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 235000013290 Sagittaria latifolia Nutrition 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 235000015246 common arrowhead Nutrition 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011664 signaling Effects 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/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/234381—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 by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明公开了用于控制特技播放视频串流的方法和装置。在接收到以正常重放速度的某倍数的快播速度(例如,快进或快退)播放视频的请求时,特技播放轨道的多个可能的帧率版本之一可以基于请求的快播速度和可用的网络带宽进行选择,并且服务器可以向客户端串流特技播放轨道的选定帧率版本以播出。各种帧率版本可以在它们应跳过视频的I帧的速率方面彼此不同。
Description
背景技术
除非在本文中以其它方式指示,在这个部分中所描述的资料并非权利要求的现有技术并且不应由于包括于这个部分中而承认是现有技术。
随着网络化和计算技术的进步,现在客户端装置常常接收并且播出从网络服务器实时串流出的视频。实际上,例如客户端可以被编程或者以其它方式被布置成具有提供用户界面的媒体播放器,在用户界面,客户端可以接收串流播出特定视频的用户请求。然后媒体播放器可以使客户端与服务器根据接受的协议(诸如超文本传输协议(HTTP)、实时串流协议(RTSP)、实时传输协议(RTP)、实时控制协议(RTCP)、以及实时消息传送协议(RTMP))互动,以请求服务器将特定媒体串流。在客户端响应地从服务器接收串流的视频时,客户端然后可以在用户界面播出视频以供用户娱乐。
为了便于在网络上使视频串流以在请求的客户端播出,视频可以被数字化并且使用特定编码器-解码器(编解码器)编码以便产生编码的比特流,并且服务器可以将编码的比特流分成块的序列并且在每个块中封装多个报头诸如RTP报头。服务器然后可以使用网络协议诸如因特网协议(IP)将封装块的序列传输到客户端。在客户端接收编码的比特流的封装块时,客户端然后将这些块组合为其原始的编码比特流并且在数据存储装置中缓冲比特流。从缓冲器,客户端然后可使用编解码器来解码比特流并且可以在用户界面处播出所得到的原始视频。
实际上,媒体播放器可允许使用户请求以快进模式(即为其正常播出速度的某倍数的快进速度)来播出视频。为了在请求时便于这种快进播出,服务器可以向客户端串流视频的特殊“特技播放(trick-play)轨道”,使得客户端可以以所请求的快进速度进行播放。
特技播放轨道可以是原始视频的更稀疏的版本,具有更少的帧使得特技播放轨道可以更快传输以在客户端播出。例如,如果原始视频包含I帧、P帧和B帧,每一个具有指示其在视频中的时间位置的特定时间戳,特技播放轨道可以包含仅I帧以及其原始时间戳。因此,如果客户端接收从服务器串流的特技播放轨道并且在I帧指示的时间播出I帧,结果可以有效地为原始视频的幻灯片演示,缺少从一个I帧到下一个I帧的流畅视频过渡。然而,客户端可以方便地将这种特技播放轨道的播出加速到所请求的快进速度,以便提供所请求的快进播出。例如,如果I帧在原始视频中以一秒一个的速率正常出现,并且如果所请求的快进速度为2x,那么客户端可以以每秒2个(即,每半秒一个帧)的速率来播出I帧序列。同样,如果快进速度为4x,那么客户端可以以每秒4个的速率来播出I帧序列(即,每四分之一秒一个)。
类似过程可以适用于视频的快退播出。特别地,服务器可以以逆序、带有相对应调整的时间戳,向客户端串流特技播放轨道,该特技播放轨道包含视频的I帧。在客户端接收从服务器串流的这种特技播放轨道时,客户端可以以其指示的时间戳播出I帧并且有效地提供视频的逆序幻灯片演示。同样,客户端可以将这种特技播放轨道的播出加速到请求的快退速度,以便提供请求的快退播出。
发明内容
在本文中公开了与控制自服务器串流视频有关的装置和方法。
在一方面,例如,本发明公开了一种非暂时性计算机可读介质,在这种非暂时性计算机可读介质上存储指令,可执行这些指令来使得处理单元执行包括下列的功能:检测以限定视频的正常重放速度多倍的快播速度播放视频的请求;以及,响应于这种请求,(i)从视频的特技播放轨道的多个版本选择一版本,所选版本当以所请求的快播速度播出时,将具有并不超过网络带宽阈值的比特率的最高I帧率;以及(ii)使特技播放轨道的选定版本在网络上从服务器向客户端串流以播出。
在另一方面,本发明公开了一种控制从服务器串流视频的方法。该方法可包括接收以限定视频的正常重放速度多倍的快播速度播放视频的请求。另外,该方法可包括识别与视频相对应的特技播放轨道的多个不同帧率版本,其中每个帧率版本具有不同于每个其它帧率版本的比特率的相应比特率,至少部分地由于每个帧率版本跳过与每个其它帧率版本不同的视频的I帧数量。另外,该方法可包括通过下列操作来从识别的多个帧率版本选择最佳帧率版本:(i)如果每个帧率版本的比特率乘以请求的快播速度得到每个帧率版本增加的比特率,确定哪个帧率版本将具有小于网络带宽阈值的最高增加的比特率;以及(ii)选择所确定的帧率版本为最好帧率版本。并且该方法然后可包括使服务器将选定的帧率版本在网络上向客户端串流。
在又一方面,本发明公开了一种计算装置,其可以包括网络通信接口、用户界面、处理器、数据存储装置和存储于数据存储装置中并且可以由处理器执行以实现各种功能的程序指令。特别地,这些功能可包括:接收以限定视频的正常重放速度多倍的快播速度播放视频的请求。另外,这些功能可包括:响应于该请求,(a)至少部分地基于请求的快播速度和网络带宽阈值来选择视频的特技播放轨道的版本,其中至少部分地基于请求的快播速度和网络带宽阈值来选择特技播放轨道的版本包括:选择跳过视频I帧的速率足以使得当以所请求的快播速度播放时特技播放轨道的版本将具有不超过网络带宽阈值的比特率的特技播放轨道版本作为特技播放轨道的版本;以及(b)使服务器将特技播放轨道的选定版本在网络上向计算装置串流以在用户界面处播出。
另外,在另一方面,本发明公开了一种控制以限定视频正常重放速度多倍的请求的快播速度快播播出视频的方法。该方法可包括为了使以所请求的快播速度播放的特技播放轨道具有小于或等于网络带宽测度的比特率,确定视频的特技播放轨道应跳过视频的I帧的最低速率。另外,该方法可包括使服务器将以确定的速率跳过I帧的特技播放轨道串流到客户端。
适当地参考附图,通过阅读下文的详细描述,这些以及其它方面、优点和替代方案将变得更明显。
另外,应了解在本发明内容部分和其它部分中所提供的描述仅计划用作示例。因此其它布置和其它元件(例如,机器,接口、功能、功能次序等)可替代地使用,并且某些元件可一并省略。另外,本文所描述的元件中的许多是功能实体,它们可实施为离散或分布式组件或者与其它组件结合,且以各种各样的合适组合和位置实施。
附图说明
图1为其中可实施本发明的方法的示例的网络布置的简化框图。
图2为可以在图1的网络布置内操作的客户端装置的简化框图。
图3为可在图1的网络布置内操作的服务器的简化框图。
图4为描绘了可以根据示例实施方式执行的功能的流程图。
图5为描绘了可以根据示例实施方式执行的功能的另一流程图。
图6为描绘了可根据示例实施方式执行的功能的又一流程图。
图7为描绘了可以根据示例实施方式执行的功能的再一流程图。
具体实施方式
在下文的描述中,参考附图,附图构成本发明的部分。在详细描述、附图和权利要求中描述的说明性实施例并无限制意义。可以利用其它实施例,并且可以做出其它变化,而不偏离本文所给出的主题的精神或范围。应易于了解如在本文中总体上描述和附图中示出的公开的方面可以以很多种不同的配置来布置、替代、组合、分离和设计,其全都在本文中明确地设想到。
一般而言,为了便于高效传输和存储视频,视频可以数字化地表示为时间戳记帧的序列,包括I帧、P帧和B帧。每个I帧(内编码帧)可以是表示视频中瞬间的基本上全数字图像。P帧(预测帧)和B帧(双向帧),另一方面,可以限定仅相对于一个或多个其它帧的变化,诸如从I帧和/或其它帧的向量置换。当播出以此方式表示的视频时,计算装置可以在在其时间戳记的瞬间展现每个I帧并且然后可以根据连续I帧之间的P帧和/或B帧使展现的图像出现变化。从用户观点而言,结果可能是无缝视频运动。
另外,为了便于这种视频在网络上从服务器串流到客户端,将视频表示为帧序列的数字比特流可以利用合适编解码器编码以便压缩比特流。特别地,编解码器可以通过操作以接收表示视频的原始比特流并且采用压缩该比特流的每个顺序时间间隔的算法,以便表示具有比原始比特流更少比特的每个时间间隔。这个压缩过程可以帮助便于实时视频串流和播出,通过允许视频在支持有限传输速度或“带宽”的网络上足够快地传输和接收。特别地,通过利用更少的比特来表示视频的顺序时间间隔,需要更少的带宽来支持媒体到请求客户端的实时传输。
实际上,用于将视频比特流编码的编解码器可以造成视频的每个帧由特定数量的比特(即,特定数据量)表示。由于I帧本身将包含比P帧和B帧更多的数据,用于表示每个I帧的比特数量可以大于用于表示每个P帧和B帧的比特数量。因此,所得到的编码的比特流的比特率可以随着时间变化。
当客户端设法通过从服务器串流来播出特定视频时,客户端可以向服务器传输请求以开始视频到客户端的串流,并且服务器可以响应地这样做。例如,在参加RTSP信令以与服务器建立串流媒体会话之后,客户端可以向服务器传输RTSP PLAY请求,请求开始串流。响应地,服务器然后可以检索或者建立视频的编码的版本并且向客户端串流编码的版本用于播出。在客户端接收编码的版本时,客户端然后缓冲编码的版本并且从缓冲器,解码并播出视频,在由每个帧相应时间戳指示的时间展示每个帧。
如上文所指出的那样,为了便于以快播速度播出这个视频,服务器可以被布置成向客户端串流视频的特技播放轨道,诸如仅包含视频的时间戳记I帧的视频的版本。特别地,当客户端接收用户请求以规定的快播速度(例如,2x、4x等)播出视频时,客户端可以向服务器发送PLAY请求或其它控制信号来请求服务器将特技播放轨道串流,并且服务器可以这样做。在客户端接收从服务器串流的特技播放轨道时,客户端然后可以缓冲特技播放轨道并且从缓冲器,以请求的快播速度播出特技播放轨道。
在典型实践中,当客户端以正常速度播出视频时,即当客户端从服务器接收编码的视频流并且解码并播出视频时,将触发这种快播模式。为了在这种情境下切换到快播模式,客户端可以确定在原始视频中的当前播出时间点并且请求服务器过渡到串流在相对应时间点开始的特技播放轨道。例如,客户端可以向服务器传输包括switch-stream报头等的PLAY请求和指明特技播放轨道的起始文件偏移的范围报头。服务器然后可以响应地从串流原始视频过渡为串流视频的相对应特技播放轨道,并且客户端可以相对应地过渡到开始以请求的快播速度播出进来的特技播放轨道。
为了便于确定与原始视频的当前播出时间点相对应的特技播放时间点,客户端可以具有映射原始视频的各个时间点(例如,视频文件的各种文件偏移)与特技播放轨道的各个时间点(例如,特技播放文件或者视频文件的特技播放部分的各种文件偏移)的索引。实际上,例如,服务器或另一网络实体可以存储这种索引,并且客户端可以通过向服务器或其它实体请求并且接收索引而获得索引,诸如通过发送超文本传输协议(HTTP)请求和接收提供索引的HTTP响应。客户端然后可以在其数据存储装置中存储索引以在请求特技播放串流时参考(和用于控制媒体串流和播出的其它目的)。
一般而言,当客户端接收从服务器串流的任何比特流用于在客户端播出时(例如,用于由客户端解码并播出),最佳地,流的比特率不大于网络带宽。如果流的比特率大于网络带宽,那么流可能并不像客户端播出它(例如,对它进行解码并且播出它)那样快地到达客户端。因此,客户端重放缓冲器可能流干(即,经历缓冲器欠载),这可能中断重放。另一方面,如果流的比特率并不超过网络带宽,那么客户端将能足够快地接收比特流以连续播出它,而不经历缓冲器欠载,从而提供改进的用户体验。
为了应对视频串流中的网络带宽约束,客户端可以与服务器一起工作以使得服务器将不可能超过当前网络带宽量度的视频的最高比特率版本串流(例如,考虑到视频的平均比特率或最大比特率)。实际上,例如,视频的索引可能规定多个不同的比特率版本,并且客户端可以确定网络带宽(诸如通过接近排空其缓冲器然后测量从服务器自由到达客户端的数据的填充缓冲器的速率)并且从索引选择具有不超过确定的网络带宽的最高比特率的比特率版本。客户端然后可以向请求服务器播放该选定比特率版本的服务器发送PLAY请求等。这种自适应播放过程可以在开始视频串流会话时执行和/或周期性地执行或者在整个串流会话期间执行以便在网络带宽变化时在各个比特率版本的串流之间动态过渡。
一般而言,关于视频的特技播放轨道可以采用这个相同过程,诸如包括视频的仅I帧的视频的特技播放轨道。然而,对于将用于快播的特技播放轨道,产生复杂化因素。即,即使特技播放轨道(例如,编码特技播放轨道)的比特率将本身并不超过网络带宽并且因此可以足够快速地接收以在客户端播出,当以请求的快播速度播出时这种轨道的有效比特率可能超过网络带宽,因此可能造成缓冲器欠载运行。
为了理解这个问题,考虑仅包含各具有其原始时间戳的原始视频的I帧的特技播放轨道并且假定该特技播放轨道被编码为产生具有N的比特率的比特流(并且该比特率足够快以其原始时间顺序播出I帧)。另外,假定网络带宽高于特技播放比特率N六倍。在那种情况下,将能从服务器向客户端串流特技播放轨道并且使客户端以其正常速度播出特技播放轨道,例如,I帧在其原始时间并且也能使客户端以高达其正常速度六倍的速度播出特技播放轨道,即I帧播放的速率是I帧在原始视频中出现的速率的六倍。然而,如果客户端试图以比6x更快的播出速度播出特技播放轨道,有限的网络带宽可能防止特技播放轨道足够快地到达从而避免缓冲器欠载并且可能导致播出中断。
目前公开的方法和装置可以帮助克服这个问题并且通过提供特技播放轨道的各种不同帧率版本并且基于不仅网络带宽的考虑而且也基于请求的快播速度以及可能其它因素(诸如缓冲充盈度)的考虑来选择一个这样的版本从而改进特技播放串流。
有利地,特技播放轨道的各种帧率版本可以至少在它们在原始视频的每个基本单位时间包括多少I帧和因此它们跳过多少居间的I帧方面彼此不同。例如,第一帧率版本(″+1/1″)可以具有序列中的视频的所有I帧,使得如果这些I帧以视频的其正常时间戳播出,每秒将存在特定数量的I帧。接下来更低帧率版本(″+1/2″)那么可以具有序列中视频的每隔一个I帧,使得如果这些I帧以视频的其正常时间戳播出,每秒将播出+1版本一半的I帧。并且仍接下来的更低帧率版本(″+1/3″)可以具有序列中视频的每隔两个I帧,使得如果这些I帧将以视频的其正常时间戳播出,每秒将播出+1版本的1/3的I帧。
对于I帧的不同速率,特技播放轨道的各种帧率版本,如果在其原始时间播出其I帧(即,在它们将在原始视频中出现的相同时间点),将在每个I帧将出现多长时间方面彼此不同。例如,如果原始视频每秒具有一个I帧,那么播出特技播放轨道的+1/1版本将每秒展现一新的I帧,而播出特技播放轨道的+1/2版本将每2秒展现一新的I帧,并且播出特技播放轨道的+1/3版本将每3秒展现一新的I帧。
此外,假定相同的编解码器用于特技播放轨道的这些帧率版本中的每一个,并且假定每个I帧因此由相同比特数量(可能平均起来)表示,特技播放轨道的各种帧率版本将在其编码的比特率方面彼此不同。例如,如果,如上文所讨论+1/1版本具有N的比特率,那么I帧为+1/1版本一半的+1/2版本可以具有N/2的比特率,并且具有+1/1版本的I帧的数量1/3的+1/3版本可以具有N/3的比特率。(实际上,这些数量的某些变化可能由于开销信息或其它因素而发生。)
而且,通过采用不同的编解码器或者不同的编解码器参数,也能提供这种不同帧率版本的不同比特率版本,诸如每个帧率版本的多个不同比特率版本。然而,在任何情况下,可能存在特技播放轨道的多个不同帧率版本,每个帧率版本在I帧率(例如,跳过I帧的速率)和/或比特率方面与每个其它帧率版本不同,在I帧率与比特率之间具有可能的直接相关性。
在以特定快播速度播出特技播放轨道时,将最希望包括尽可能多的I帧,因为每秒播出的I帧越多,播出将越流畅。因此,如果特技播放轨道的+1/1版本具有如上文所讨论的最大I帧率,最佳地以所请求的任何快播速度播出+1/1版本。例如,如果+1/1版本的I帧以与原始视频相符的每秒一个的速率发生,并且请求的快播速度是2x,将以每秒2个的速率最佳地播出+1/1版本的I帧。同样,如果请求的快播速度为3x,将能以每秒3个的速率播出+1/1版本的I帧。
然而,如上文所指出的那样,太快地加速进来流的播出将不当地造成客户端重放缓冲器流干。例如,关于上述示例,如果网络带宽为特技播放轨道的编码的+1/1版本的比特率的六倍,并且请求的快播速度为8x,客户端可能不足够快接收+1/1版本以能以8x速度播出+1/1版本并且客户端可能会经历缓冲器欠载。
根据本公开,为了帮助避免这个问题,客户端可以替代地选择当以请求的快播速率播出时将不超过当前的网络带宽并且因此不可能造成缓冲器欠载的最高可用的帧率版本(例如,每秒最多数量的I帧)。
为了实际上这样做,客户端可以选择当以请求的快播速度播出时将具有不超过当前网络带宽的比特率的最高I帧率(或最低I帧跳过率)的帧率版本。此外,如果多个帧率版本具有最高I帧率并且将以请求的快播速度播出而不造成缓冲器欠载,客户端然后可以选择那些帧率版本中的最高比特率版本。客户端然后可以请求服务器向客户端串流选定的帧率版本。并且当客户端接收从服务器串流的选定帧率版本时,客户端可以缓冲帧率版本(若适当)并且以请求的快播速度播出该帧率版本。
为了便于这样做,服务器可能存储或以其它方式访问特技播放轨道的各种帧率版本的预先生成的实例,可能作为包含原始视频的媒体容器的部分,或者服务器可以在运行中生成选定帧率版本(诸如通过以足以产生所希望的帧率版本的速率来剥除特技播放轨道的+1/1版本的I帧)。这些可以是编码的版本,并且因此,每个帧率版本的相关比特率可以是该帧率版本的编码表示的比特率。另外,视频的索引然后可以分别映射原始视频与特技播放轨道的每个版本以能与原始视频相对应地进行特技播放播出并且可以分别规定特技播放轨道的每个帧率版本的比特率。如上文所指出的那样,客户端可以从服务器或另外的实体获得这个索引,并且可以将它用作判断特技播放轨道的哪个版本以要求服务器串流的基础,至少基于以下考虑(i)请求以什么速度重放和(ii)当前网络带宽。
实际上,例如,当客户端接收以特定速度快播播出的请求时,客户端可以将当前网络带宽除以请求的快播速度以确定最大特技播放比特率并且客户端然后可以选择具有小于或等于该确定的最大值的最高比特率的帧率版本。
作为这种情况的具体示例,假定+1/1版本具有6,000Kbps的比特率,+1/2版本具有3,000Kbps的比特率,并且+1/3版本具有比特率1,500Kbps,并且假定请求速度为2x并且当前网络带宽为7,000Kbps。在此示例中,将网络带宽7,000Kbps除以速度2将得到特技播放轨道播出的能容许的最高比特率将是3,500Kbps。(即,具有高达3,500Kbps的比特率的特技播放轨道可以在7,000Kbps网络带宽中以双倍速度接收并且因此可以以2x快播速度播出而不会出现缓冲器欠载)。因此,在此示例中,客户端可以选择帧率版本+1/2,其具有3,000Kbps的比特率,因为这是具有小于3,500Kbps的确定的最大值的比特率的最高帧率版本。
以另一方式来看待这点,客户端可以为特技播放轨道的可用帧率版本中的每一个确定如果版本以请求的快播速度播出,帧率版本的有效增加的比特率是多少,并且客户端然后可以利用具有不超过网络带宽的最高增加比特率的帧率版本。
考虑上文所述的数字,例如,客户端可以确定以2x播出速度,版本+1/1的增加的比特率将是12,000Kbps,版本+1/2的增加的比特率将是6,000Kbps,并且版本+1/3的增加的比特率将是3,000Kbps。而客户端然后可以推断出将具有不超过7,000Kbps网络带宽的最高增加的比特率的这些帧率版本之一是版本+1/2,因为其增加的比特率将是仅6,000Kbps。因此,客户端可以同样选择帧率版本+1/2进行串流。
在选择了特技播放轨道的帧率版本进行串流时,客户端然后可以请求服务器将特技播放轨道的选定帧率版本串流到客户端。并且当客户端接收从服务器串流的特技播放轨道的帧率版本时,客户端可以以请求的快播速度播出特技播放轨道。继续上述示例,例如,如果特技播放轨道的+1/2版本具有在正常播放时间中分别出现在0秒、2秒、4秒、6秒、8秒等的I帧I0、I2、I4、I6、I8等,客户端可以通过在0秒、1秒、2秒、3秒、4秒等播出它们而以2x速度播出那些I帧,同样不会经历缓冲器欠载。
在替代实施方式中,如由客户端所执行的上述这种方法的各个方面可以替代地由服务器来执行。例如,实际上,客户端可以确定网络带宽并且可以向服务器以HTTP、RTSP、RTMP、RTCP或其它控制消息来报告该网络带宽和请求的快播速度。服务器然后可以采用上文所讨论的过程来选择特技播放轨道的最佳帧率版本以串流到客户端。并且服务器然后可以将该选定的帧率版本串流到客户端用于播出。
而且,无论客户端还是服务器通过这个过程选择所希望的帧率版本,服务器可以从数据存储装置检索选定版本并且将该版本串流到客户端,或者服务器可以在运行中生成该版本。例如,如上文所提到那样,服务器可以检索具有原始视频的全部I帧的特技播放轨道的+1/1版本并且可以以足以生成用于串流到客户端的所希望的版本的速率剥除I帧。
参考附图,图1为其中可以实施本方法的示例的网络布置的简化框图。如图1所示,网络布置包括客户端装置12、网络(例如,因特网或其它网络)14以及服务器16,其中服务器访问特技播放轨道的多个帧率版本18,并且客户端访问规定了各种帧率版本的视频索引20。
利用这种布置,如上文所讨论,客户端12可以设置串流媒体会话,服务器16将通过串流媒体会话而经由网络14将视频串流到客户端。例如,客户端可以向服务器发送RTSPDESCRIBE请求并且可以响应地从服务器接收RTSP DESCRIBE答复,RTSP DESCRIBE答复指明服务器可以串流到客户端的视频流。另外,客户端可以向服务器发送RTSP PLAY请求以使得服务器向客户端串流视频。
在从服务器向客户端串流之前和/或期间,客户端可以接收以特定速度快播播出的用户请求并且然后可以参考索引20,可以通过上文所讨论的过程来选择特技播放轨道的规定帧率版本之一。客户端然后可以向服务器发送RTSP PLAY请求等以请求从服务器串流特技播放轨道的选定帧率版本并且服务器可以这样做。在客户端从服务器接收特技播放轨道的选定帧率版本时,客户端然后可以以请求的快播速度播出选定帧率版本。
客户端装置12可以是被布置成请求并且接收串流媒体并且在接收媒体时播出媒体的任何计算装置。例如,客户端装置可以是个人计算机、平板计算机、手持蜂窝电话或其它通信装置、集成音频或视频播放器、游戏装置或现在已知或者后来发展的任何其它装置。图2为示出了可以包括于这种装置中便于实际执行方法方面的组件的简化框图。
如图2所示,示例客户端装置包括网络通信接口22、用户界面24、处理器26和数据储存装置28,全都由系统总线或其它连接机构30联接在一起。
网络通信接口22可以包括有线或无线接口,有线或无线接口被布置成允许客户端12在网络14上并且经由网络14与实体通信,诸如与服务器16通信。例如,网络通信接口22可以包括用来在局域网上并且依次经由路由器和/或一个或多个其它网络元件与网络14上的实体通信的有线或无线以太网接口。作为另一示例,网络通信接口可以包括蜂窝无线接口,其被布置成根据诸如LTE、WiMAX、CDMA、GSM等协议参与无线接入网的空中接口通信并且经由无线电接入网与网络14上的实体通信。其它示例也是可能的。
用户界面24能使客户端12与客户端的用户互动并且因此可以包括输出组件,诸如显示屏,音频扬声器等,和输入组件,诸如键盘、摄像机、触摸板或触摸屏等。另外,用户界面24可以包括用于将媒体从数字形式转换为模拟形式以便于向用户播出数字化媒体的电路。
在用户界面,客户端可以播放从服务器串流的视频,诸如特技播放轨道。另外,客户端可以呈现查找功能,诸如用户可以用来选择播出视频的特定部分的滚动条,并且客户端还可以呈现快播按钮,诸如快进和快退按钮,用户可以使用快进和快退按钮来请求客户端以特定快播速度播出视频。
处理器26可以包括一个或多个通用处理器(例如,INTEL微处理器)和/或一个或多个专用处理器(例如,专用集成电路、数字信号处理器等)。如果处理器26包括多个处理器,处理器可以被布置成组合地(例如,并行地)或单独地工作。另外,处理器26可以总体地或者部分地与网络通信接口22或一个或多个其它组件集成。
数据存储装置28可以包括一个或多个易失性和/或非易失性存储组件,诸如目前已知或者后来开发的磁性、光学、有机、闪速或其它类型的存储装置并且可以与处理器26总体地或部分地集成和/或可以从客户端12移除或者可以与客户端12在外部连接(通过有线或无线手段)。如图所示,数据存储装置28包含程序指令32和程序数据34。一般而言,程序指令32可以由处理器26实行以执行本文所描述的各种客户端功能。替代地,某些或全部这样的功能可以由各种其它机器实施方式来执行。程序数据34然后可以包括数据,诸如缓冲以用于播出的接收的视频内容、视频索引的数据和限定客户端可以在用户界面24上展示以便于用户请求视频播出,包括快播播出的图形用户界面的数据。
服务器16可以是被布置成接收串流视频的请求并且串流所请求的视频以用于播出的任何计算装置。因此,服务器将可能是服务器级计算机。然而,服务器可以是更简单的,诸如上文所描述、但被布置成具有逻辑以作为服务器操作的装置之一。图3为示出可以包括于这种服务器中以便于实际执行方法的方面的组件的简化框图。
如图3所示,示例服务器包括网络通信接口40、处理器42和数据存储装置44,其全都通过系统总线或其它连接机构46联接在一起。
网络通信接口40可包括有线或无线接口,有线或无线接口被布置成允许服务器16在网络14上并且经由网络14与实体诸如客户端12通信。因此,网络通信接口40可以包括有线或无线以太网接口,蜂窝通信接口或任何其它类型的网络接口。
处理器42可以包括一个或多个通用处理器和/或一个或多个专用处理器并且可以总体地或部分地与网络通信接口集成。并且数据存储装置44可以包括一个或多个易失性和/或非易失性存储组件并且可以总体地或部分地与处理器42集成。如图所示,数据存储装置44包含可以用来执行本文所描述的各种服务器功能的程序指令48和程序数据50,诸如用于向客户端12串流以播出的特技播放轨道的视频和各种帧率版本。
图4为描绘根据本发明方法的示例实施方式可以执行以控制特技播放串流的功能的下一流程图。这些功能可以由编码于非暂时性计算机可读介质(例如,磁性、光学或其它类型的数据存储机构,诸如在上文中讨论的那些)上编码的指令限定,这些指令可以由处理单元,诸如为客户端或服务器一部分的处理器来执行。或者,可以在另一情形下来执行本方法。
如图4所示,在框60,示例方法包括检测以限定视频正常重放速度多倍的快播速度播放视频的请求。例如,如上文所讨论,这可以是以2x、3x、4x或者视频的正常重放速度的某些其它整数或非整数倍的速度播放视频的请求。用户可以或可不知道当提交以特定量或者以该量的某倍数加速播放的请求时被请求的实际速度。例如,用户可以选择一定数量的箭头或速度条来指示所希望的快播水平,并且客户端可以将其处理为用于以相对应的快播速度播出的请求。另外,如上文所指出的那样,快播可以是快进或快退。
这种检测以快播速度播放视频的请求的功能可以包括接收表示在客户端用户界面处输入请求的信号。例如,如果客户端的处理器执行这个功能,当用户在用户界面处提供请求快播播出的输入时,处理器可以接收这种信号。替代地或额外地,如果服务器的处理器执行这个功能,当客户端响应于接收限定该请求的用户输入而向服务器发送这个信号时,处理器可以从客户端接收这个信号。
在该流程中某些其它地方可能发生的框62,示例方法还可以包括确定网络带宽阈值。网络带宽阈值可以是网络带宽的实时(即,当前或基本上当前)量度或者这种量度的某些偏移。因此,带宽阈值可以不时变化或者可以是恒定的并且可能甚至是预定的。
如果由客户端的处理器执行,如上文所提到的那样,确定网络带宽阈值的这个功能可以包括客户端接近排尽其重放缓冲器并且然后允许向缓冲器填充来自服务器的进来的数据并且测量缓冲器填充的速率,或者以其它方式测量数据从服务器到达客户端的到达速率。然后,客户端可以认为测量的速率或者测量的速率的某些倍数或偏移版本为网络带宽阈值。替代地,客户端可以以某些其它方式确定网络带宽阈值和/或由另一实体告知网络带宽阈值。另一方面,如果由服务器的处理器执行这个功能,这些功能可以包括从客户端或者从在服务器与客户端之间的通信路径中的一个或多个其它实体接收网络带宽或者网络带宽阈值的报告,或者服务器可以以任何其它方式来确定网络带宽阈值。如上文所提到的那样,例如,服务器可以从客户端接收规定请求的快播速度和网络带宽阈值的信号,以便允许服务器选择特技播放轨道的最佳帧率版本。
在框64,示例方法还包括以下步骤:通过下列方式响应于视频快播请求:(i)从视频的特技播放轨道的多个版本选择当以请求的快播速度播出时具有不超过网络带宽阈值的比特率的最高I帧率的版本;以及,(ii)使特技播放轨道的选定版本在网络上从服务器向客户端串流用于播出。
选择特技播放轨道版本的功能将呈现各种形式。例如,如上文所讨论那样,这种功能可以包括将网络带宽阈值除以请求的快播速度以确定特技播放轨道的最大容许的比特率并且然后选择具有不超过最大容许比特率的最高比特率的特技播放轨道的版本。替代地,这种功能可以包括对于特技播放轨道的每种可能版本确定如果以请求的快播速度播出(例如,如果特技播放轨道的正常速度比特率乘以请求的快播速度)该版本的有效比特率是多少,并且然后选择将具有不超过网络带宽阈值的最高有效比特率的版本。这种功能的其它实施方式也是可能的。
此外,如上文所指出那样,从多个版本选择该版本的功能可以包括参考规定多个版本的视频索引并且从规定的多个版本选择该版本。版本由索引规定的事实可以或可不表示版本已经存在。索引可以例如仅总体上指示可以串流的特技播放的版本。
依次,使特技播放轨道的选定版本在网络上从服务器向客户端串流的功能也可以呈现各种形式。例如,如果这种功能由客户端的处理器来执行,那么这种功能可包括在网络上经由客户端的网络通信接口向服务器传输控制信号,诸如请求服务器向客户端串流特技播放轨道的选定版本的HTTP、RSTP、RTMP或RTCP请求。替代地,如果由服务器的处理器来执行这个功能,这个功能可包括处理器使服务器的网络通信接口实时向客户端串流特技播放轨道的选定版本。
如上文还所提到那样,服务器可以被布置成在运行中生成特技播放轨道的选定版本。例如,一旦选择了该选定版本,服务器可以通过以足以生成选定版本的速率从特技播放轨道的+1/1版本剥除I帧而生成该版本。
在框66,示例方法还包括接收从服务器串流的特技播放轨道的选定版本并且在接收从服务器串流的特技播放轨道的选定版本时,以请求的快播速度播出特技播放轨道的选定版本。例如,如上文所指出的那样,客户端可以加速其展现特技播放轨道的I帧的速率使得I帧以快播速度展现。
图5为描绘了可以根据本方法的示例实施方式执行以控制特技播放串流的功能的接下来的另一流程图。这个方法可以由客户端、服务器和/或其它实体或实体组合来执行。
如图5所示,在框68,示例方法包括接收以限定视频正常重放速度多倍的快播速度播放视频的请求。
在框70,示例方法然后还包括识别与视频相对应的特技播放轨道的多个不同帧率版本,其中每个帧率版本具有不同于每个其它帧率版本的比特率的相应比特率,至少部分地由于每个帧率版本跳过与每个其它帧率版本的视频的不同数量的I帧。例如,在获得规定了多个不同帧率版本的视频的索引之后,这个功能可以包括参考该索引以确定各个可用版本。
在框72,示例方法然后可以包括从识别的多个帧率版本选择最佳帧率版本,通过以下步骤:(i)如果每个帧率版本的比特率乘以请求的快播速度得到每个帧率版本增加的比特率,确定哪个帧率版本将具有小于网络带宽阈值(诸如,基于数据从服务器到达客户端的速率)的最高增加的比特率;以及,(ii)选择所确定的帧率版本为最佳帧率版本。例如,如上文所讨论,这个功能可以包括(a)将网络带宽阈值除以请求的快播速度以确定最大特技播放比特率;以及(b)选择具有不超过确定的最大特技播放比特率的最高比特率的帧率版本作为最佳帧率版本。
在框74,示例方法然后还可包括使服务器在网络上向客户端串流选定帧率版本。例如,这个功能可包括客户端向服务器传输控制信号,控制信号指导服务器向客户端串流选定帧率版本。
在框76,示例方法然后包括接收从服务器串流的特技播放轨道的选定帧率版本,并且在接收从服务器串流的特技播放轨道的选定帧率版本时,以请求的快播速度播出特技播放轨道的选定帧率版本。
图6是描绘可以根据本方法的示例实施方式执行以控制特技播放串流的紧接着的另一流程图。这个方法可以由计算装置诸如客户端执行。
如图6所示,在框78,示例方法包括从用户界面接收以限定视频正常重放速度多倍的快播速度播放视频的请求。另外,在框80,示例方法包括,响应于请求,(a)至少部分地基于请求的快播速度和网络带宽阈值来选择视频的特技播放轨道的版本,其中至少部分地基于请求的快播速度和网络带宽阈值选择特技播放轨道的版本包括选择特技播放轨道的一版本作为特技播放轨道的版本,所选版本的跳过视频的I帧的速率足以使得当以请求的快播速度播放时所述特技播放轨道的所述版本将具有不超过网络带宽阈值的比特率;以及,(b)使服务器在网络上向计算装置串流特技播放轨道的选定版本以在用户界面处播出。
如在上文所讨论的示例中,这个示例方法还可包括确定网络带宽阈值。另外,使服务器向计算装置串流特技播放轨道的选定版本的功能可以同样包括经由计算装置的网络通信接口向服务器传输控制信号,控制信号指导服务器向计算装置串流特技播放轨道的选定版本。
此外,如在上文所讨论的示例中,计算装置的数据存储装置可以保持规定特技播放轨道的多个版本的视频索引,特技播放轨道的多个版本至少在其跳过视频I帧的相应速率和因此其相应比特率方面彼此不同。在那种情况下,选择特技播放轨道的版本的功能可以包括(i)参考索引以识别特技播放轨道的规定的多个版本中的一个或多个,所选版本当以请求的快播速度时具有将不超过网络带宽阈值的增加的比特率;以及,(ii)选择特技播放轨道的一个或多个识别的版本中具有最高比特率的版本。例如,该功能可包括(a)将网络带宽阈值除以请求的快播速度以确定最大特技播放比特率;以及(b)从特技播放轨道的多个版本中选择具有不超过确定的最大特技播放比特率的最高比特率的版本。
最后,图7为描绘了可以根据本方法的示例实施方式执行以控制以限定视频的正常重放速度多倍的请求的快播速度快播播出视频的功能的又一流程图。如同上文所描述的实施方式,这个示例方法可以由客户端、服务器和/或任何其它实体或者实体组合来执行。
如图7所示,在框82,这个示例方法包括为了使以请求的快播速度播放的特技播放轨道具有小于或等于网络带宽量度的比特率,确定视频的特技播放轨道应跳过视频I帧的最低速率。例如,假定每个I帧将以特定比特数量(例如,平均)编码,执行这个功能的实体可以将网络带宽(以每秒多少个比特)除以该比特数量以确定每秒的编码的I帧的可容许数量,即,可容许的I帧速率。假定特技播放轨道的+1/1版本的特定I帧速率(例如,每秒一个I帧),然后,实体可以确定为了在可容许的I帧率内,每秒应跳过的那些I帧的最小量。其它执行这个功能的过程也是可能的。
在框84,示例方法然后包括使服务器向客户端串流以确定的速率跳过I帧的特技播放轨道。例如,如果客户端是确定I帧跳过率的实体,那么客户端然后可以从特技播放轨道的多个预先限定的帧率版本选择最接近地匹配确定的I帧跳过率的最高帧率版本并且然后客户端可以向服务器发送控制信号,控制信号请求服务器向客户端串流特技播放轨道的帧率版本。替代地,客户端可以向服务器发送控制信号,控制信号规定了确定的I帧跳过率并且服务器可以响应地选择最接近匹配的帧率版本或者动态地生成具有该I帧跳过率的版本。服务器然后可以向客户端串流确定的特技播放轨道以播出。
在上文所讨论的这个和其它实施方式中,如上文所指出的那样,特技播放轨道可包括仅原始视频的I帧,并且可以因此省略原始视频的任何P帧和B帧。替代地,特技播放轨道也可以包括某些P帧和B帧。
另外,应了解如本文所用的“比特率”预期并不具有限制意义而是可以涵盖数据率的几乎任何量度,包括(但不限于)每秒或其它单位时间的比特数,每秒或其它单位时间的字节数等。同样,如本文所用的术语“带宽”也可以涵盖任何这样的数据率量度。在带宽与比特率相比的情况下,最佳地,比较是关于相同数据单位和时间单位,除非采用换算因数来便于这种比较。
虽然在本文中公开了各种方面和实施例,其它方面和实施将对于本领域技术人员是显然的。本文所公开的各种方面和实施例是出于说明目的并且预期并无限制意义,真实范围和精神由所附权利要求指示。
Claims (29)
1.一种计算设备,包括:
处理器;
数据存储器,其具有存储于其上的指令,该指令可由处理器执行以实施以下功能:
检测以限定视频的正常重放速度的多倍的快播速度播放所述视频的请求;以及
响应于所述请求,(i)从所述视频的特技播放轨道的多个版本选择一版本,该版本当以请求的所述快播速度播出时,将具有并不超过网络带宽阈值的比特率的最高I帧率,其中每个版本具有正常速度比特率,并且最高I帧率的版本当以请求的所述快播速度播出时将具有不超过所述网络带宽阈值的比特率,其中从所述视频的所述特技播放轨道的所述多个版本选择最高I帧率的版本包括选自由下列组成的组的功能(a)确定当以请求的所述快播速度播出时版本中的哪个将具有小于或等于所述网络带宽阈值的最高增加的比特率,以及(b)确定版本中的哪个具有小于或等于所述网络带宽阈值除以请求的所述快播速度的最高正常速度比特率;以及(ii)使所述特技播放轨道的选择的所述版本在网络上从服务器向客户端串流以用于播出。
2.根据权利要求1所述的计算设备,其中,所述功能还包括确定所述网络带宽阈值。
3.根据权利要求1所述的计算设备,其中,确定所述网络带宽阈值包括基于数据从所述服务器到达所述客户端的速率来确定所述网络带宽阈值。
4.根据权利要求1所述的计算设备,其中,检测所述请求包括接收表示在所述客户端的用户界面处已经输入的所述请求的信号。
5.根据权利要求4所述的计算设备,其中,所述处理器为所述客户端的部分。
6.根据权利要求4所述的计算设备,其中,所述处理器为所述服务器的部分,
其中,接收表示所述请求的所述信号包括接收来自所述客户端的所述信号;并且
其中,使所述特技播放轨道的选择的所述版本在所述网络上从所述服务器向所述客户端串流以用于播出包括使所述服务器的网络通信接口将所述特技播放轨道的选择的所述版本实时串流到所述客户端。
7.根据权利要求6所述的计算设备,其中,从所述客户端向所述服务器传输的所述信号包括规定请求的所述快播速度和所述网络带宽阈值的信号。
8.根据权利要求7所述的计算设备,其中,所述功能还包括:
在运行中生成用于串流到所述客户端的选择的所述版本。
9.根据权利要求8所述的计算设备,其中,在运行中生成选择的所述版本包括从所述特技播放轨道的基本版本剥除多个I帧以产生所述特技播放轨道的选择的所述版本。
10.根据权利要求1所述的计算设备,其中,从所述多个版本选择所述版本包括参考规定所述多个版本的所述视频的索引并且从规定的所述多个版本选择所述版本。
11.根据权利要求10所述的计算设备,
其中,所述索引为所述多个版本中的每个版本分别规定了所述版本的所述正常速度比特率;并且
其中,从所述多个版本选择一版本,该版本当以请求的所述快播速度播出时将具有不超过所述网络带宽阈值的比特率的最高I帧率,包括如果所述多个版本中的每个版本的所述正常速度比特率乘以所述快播速度以建立所述版本的所述增加的比特率,则确定所述多个版本中的哪个版本将具有不超过所述网络带宽阈值的所述最高增加的比特率。
12.根据权利要求1所述的计算设备,
其中,从所述多个版本选择一版本,该版本当以请求的所述快播速度播出时将具有不超过所述网络带宽阈值的比特率的最高I帧率,包括如果所述多个版本中的每个版本的所述正常速度比特率乘以所述快播速度以建立增加的比特率,则确定所述多个版本中的哪个版本将具有不超过所述网络带宽阈值的所述最高增加的比特率。
13.根据权利要求1所述的计算设备,
其中,所述多个版本中的每个版本的所述正常速度比特率是所述版本的特技播放比特率,并且
其中,从所述多个版本选择一版本,该版本当以请求的所述快播速度播出时将具有不超过所述网络带宽阈值的比特率的最高I帧率,包括(i)将所述网络带宽阈值除以请求的所述快播速度以确定最大特技播放比特率,以及(ii)从所述多个版本选择具有不超过确定的所述最大特技播放比特率的最高特技播放比特率的版本。
14.根据权利要求1所述的计算设备,其中,使所述特技播放轨道的选择的所述版本从所述服务器向所述客户端串流以用于播出包括从所述客户端向所述服务器传输控制信号,所述控制信号指导所述服务器将所述特技播放轨道的选择的所述版本串流到所述客户端以用于播出。
15.根据权利要求1所述的计算设备,其中,所述功能还包括:
接收从所述服务器串流的所述特技播放轨道的选择的所述版本;以及
当接收从所述服务器串流的所述特技播放轨道的选择的所述版本时,以请求的所述快播速度播出所述特技播放轨道的选择的所述版本。
16.一种用于自适应特技播放的方法,包括:
接收以限定视频的正常重放速度的多倍的快播速度播放所述视频的请求;
识别与所述视频相对应的特技播放轨道的多个不同帧率版本,其中每个帧率版本具有与每个其它帧率版本的比特率不同的相应比特率,这至少部分地由于每个帧率版本跳过与每个其它帧率版本不同的所述视频的I帧数量;
通过下列操作来从识别的所述多个帧率版本选择最佳帧率版本:(i)如果每个帧率版本的所述比特率乘以请求的所述快播速度以得到每个帧率版本增加的比特率,则确定哪个帧率版本将具有小于网络带宽阈值的最高增加的比特率,以及(ii)选择确定的所述帧率版本作为最高帧率版本;以及
使服务器将选择的所述帧率版本在网络上串流到客户端。
17.根据权利要求16所述的方法,还包括:
基于数据从所述服务器到达所述客户端的速率来确定所述网络带宽阈值。
18.根据权利要求16所述的方法,还包括:
获得所述视频的索引,所述索引规定所述特技播放轨道的所述多个不同帧率版本,
其中识别所述多个不同帧率版本包括参考规定了所述特技播放轨道的所述多个不同帧率版本的所述索引。
19.根据权利要求16所述的方法,其由所述客户端执行。
20.根据权利要求16所述的方法,
其中选择所述最佳帧率版本包括:(a)将所述网络带宽阈值除以请求的所述快播速度以确定最大特技播放比特率,以及(b)选择具有不超过确定的所述最大特技播放比特率的最高比特率的所述帧率版本作为所述最佳帧率版本。
21.根据权利要求16所述的方法,其中,使所述服务器将选择的所述帧率版本在所述网络上串流到所述客户端包括从所述客户端向所述服务器传输控制信号,所述控制信号指导所述服务器将选择的所述帧率版本串流到所述客户端。
22.根据权利要求16所述的方法,还包括:
接收从所述服务器串流的所述特技播放轨道的选择的所述帧率版本;以及
当接收从所述服务器串流的所述特技播放轨道的选择的所述帧率版本时,以请求的所述快播速度播出所述特技播放轨道的选择的所述帧率版本。
23.一种计算装置,包括:
网络通信接口;
用户界面;
处理器;
数据存储装置;以及
程序逻辑,其存储于所述数据存储装置中并且可以由所述处理器执行以执行包括下列的功能:
从所述用户界面接收以限定视频的正常重放速度的多倍的快播速度播放所述视频的请求,以及
响应于所述请求,(a)至少部分地基于请求的所述快播速度和网络带宽阈值来选择所述视频的特技播放轨道的版本,其中至少部分地基于请求的所述快播速度和所述网络带宽阈值来选择所述特技播放轨道的所述版本包括:选择所述特技播放轨道的一版本作为所述特技播放轨道的所述版本,所述版本跳过所述视频的I帧的速率足以使得当以请求的所述快播速度播出时所述特技播放轨道的所述版本将具有不超过所述网络带宽阈值的比特率,以及(b)使服务器将所述特技播放轨道的选择的所述版本在网络上向所述计算装置串流以用于在所述用户界面处播出,
其中所述数据存储装置保持所述视频的索引,所述索引规定所述特技播放轨道的多个版本,其中所述特技播放轨道的所述多个版本至少在其跳过所述视频的I帧的相应速率和因此其相应比特率方面彼此不同;并且
其中选择所述特技播放轨道的所述版本包括(i)参考所述索引以识别当以请求的所述快播速度播出时将具有不超过所述网络带宽阈值的增加的比特率的规定的所述多个特技播放轨道版本中的一个或多个,以及(ii)选择所述特技播放轨道的识别的一个或多个识别的版本中的最高比特率版本。
24.根据权利要求23所述的计算装置,其中,所述功能还包括确定所述网络带宽阈值。
25.根据权利要求23所述的计算装置,其中,确定所述网络带宽阈值包括基于数据从所述服务器到达所述计算装置的速率来确定所述网络带宽阈值。
26.根据权利要求23所述的计算装置,其中,使所述服务器向所述计算装置串流所述特技播放轨道的选择的所述版本包括:经由网络通信接口向所述服务器传输控制信号,所述控制信号指导所述服务器向所述计算装置串流所述特技播放轨道的选择的所述版本。
27.根据权利要求23所述的计算装置,
其中,所述数据存储装置保持所述视频的索引,所述索引规定所述特技播放轨道的多个版本,其中所述特技播放轨道的所述多个版本至少在跳过所述视频的I帧的相应速率和因此其相应比特率方面彼此不同;以及
其中选择所述特技播放轨道的所述版本包括:(a)将所述网络带宽阈值除以请求的所述快播速度以确定最大特技播放比特率,以及(b)从所述特技播放轨道的所述多个版本选择具有不超过确定的所述最大特技播放比特率的最高比特率的版本。
28.一种用于控制以请求的快播速度来快播播出视频的方法,所述请求的快播速度限定所述视频的正常重放速度的多倍,所述方法包括:
确定为了使以所述请求的快播速度播放的所述视频的特技播放轨道具有小于或等于网络带宽量度的比特率,所述特技播放轨道应跳过所述视频的I帧的最低速率;
给予服务器向客户端串流所述视频的特技播放轨道的多个不同帧率版本中任何一个的选项,其中每个帧率版本具有不同于每个其它帧率版本的比特率的比特率,这至少部分地由于每个帧率版本以不同于每个其它帧率版本的速率跳过I帧,选择以确定的所述最低速率跳过I帧的所述帧率版本;以及
使服务器将所述特技播放轨道的选择的所述帧率版本串流到所述客户端。
29.根据权利要求28所述的方法,其中,所述特技播放轨道的选择的所述帧率版本不包括所述视频的任何P帧或B帧。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/419048 | 2012-03-13 | ||
US13/419,048 US8407747B1 (en) | 2012-03-13 | 2012-03-13 | Adaptive trick play streaming |
PCT/US2013/030154 WO2013138224A2 (en) | 2012-03-13 | 2013-03-11 | Adaptive trick play streaming |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105723720A CN105723720A (zh) | 2016-06-29 |
CN105723720B true CN105723720B (zh) | 2018-04-10 |
Family
ID=47892460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380011874.0A Active CN105723720B (zh) | 2012-03-13 | 2013-03-11 | 自适应特技播放串流 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8407747B1 (zh) |
EP (1) | EP2826253A4 (zh) |
JP (1) | JP5899334B2 (zh) |
KR (1) | KR101510822B1 (zh) |
CN (1) | CN105723720B (zh) |
WO (1) | WO2013138224A2 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9749373B2 (en) * | 2012-08-14 | 2017-08-29 | Apple Inc. | System and method for improved content streaming |
US20150237554A1 (en) * | 2014-02-19 | 2015-08-20 | Qualcomm Incorporated | Systems, methods and apparatus for seamless handoff at the application layer between disparate networks for interactive applications |
KR20150133037A (ko) | 2014-05-19 | 2015-11-27 | 삼성전자주식회사 | 콘텐츠 재생 방법 및 이를 구현하는 전자 장치 |
US20150350622A1 (en) | 2014-05-30 | 2015-12-03 | Apple Inc. | Packed i-frames |
US9935993B2 (en) * | 2015-03-31 | 2018-04-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Streaming video over a hybrid network |
US10419815B2 (en) * | 2015-09-23 | 2019-09-17 | Comcast Cable Communications, Llc | Bandwidth limited dynamic frame rate video trick play |
WO2017123474A1 (en) * | 2016-01-15 | 2017-07-20 | Vid Scale, Inc. | System and method for operating a video player displaying trick play videos |
CN107493482B (zh) * | 2016-06-12 | 2020-02-04 | 杭州海康威视数字技术股份有限公司 | 一种视频回放方法及装置 |
CN106454417B (zh) * | 2016-11-11 | 2019-08-09 | 青岛海信宽带多媒体技术有限公司 | 流媒体倍速播放方法及装置 |
CN108574874B (zh) | 2017-03-10 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 一种视频播放速度调整方法及装置 |
CN107613365A (zh) * | 2017-09-04 | 2018-01-19 | 浙江大华技术股份有限公司 | 一种视频播放方法及装置 |
CN110121098B (zh) * | 2018-02-05 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 视频播放方法、装置、存储介质和电子装置 |
CN110198485A (zh) * | 2018-08-21 | 2019-09-03 | 腾讯科技(北京)有限公司 | 视频资源的播放方法和装置、存储介质及电子装置 |
CN110266706A (zh) * | 2019-06-26 | 2019-09-20 | 三星电子(中国)研发中心 | 一种多媒体流数据的播放方法和装置 |
CN111405370B (zh) * | 2019-11-13 | 2022-04-05 | 杭州海康威视系统技术有限公司 | 一种视频回放方法和装置 |
EP4074056A4 (en) * | 2019-12-12 | 2023-11-29 | ARRIS Enterprises LLC | METHODS AND SYSTEMS FOR SPECIAL PLAYBACK USING PARTIAL VIDEO FILE SEGMENTS |
CN111341413B (zh) * | 2020-02-27 | 2023-04-25 | 东北石油大学 | 应用上的运动频率调节处理方法和装置 |
US20230029446A9 (en) * | 2020-07-13 | 2023-01-26 | Arris Enterprises Llc | Media streams |
US11647063B2 (en) * | 2020-11-04 | 2023-05-09 | Arris Enterprises Llc | Method and apparatus for presentation of video content |
CN113207040A (zh) * | 2021-04-15 | 2021-08-03 | 广州市云上科技有限公司 | 一种视频远程快速回放的数据处理方法、装置及系统 |
CN113115100B (zh) * | 2021-04-23 | 2023-03-14 | 深圳力维智联技术有限公司 | 视频调整方法、监控设备、计算机程序产品及存储介质 |
CN115278313A (zh) * | 2022-07-12 | 2022-11-01 | 杭州座头鲸科技有限公司 | 一种高倍率多路数的视频并发倍速方法 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6064794A (en) * | 1995-03-30 | 2000-05-16 | Thomson Licensing S.A. | Trick-play control for pre-encoded video |
US6965724B1 (en) * | 1995-03-30 | 2005-11-15 | Thomson Licensing S.A. | Trick-play modes for pre-encoded video |
WO1999065239A2 (en) * | 1998-06-11 | 1999-12-16 | Koninklijke Philips Electronics N.V. | Trick play signal generation for a digital video recorder |
US6622171B2 (en) * | 1998-09-15 | 2003-09-16 | Microsoft Corporation | Multimedia timeline modification in networked client/server systems |
US6654539B1 (en) * | 1998-10-26 | 2003-11-25 | Sony Corporation | Trick playback of digital video data |
US7080774B1 (en) | 1999-11-17 | 2006-07-25 | Wu Li Investments | Apparatus for providing an electronic display with selectable viewing orientations |
US7237254B1 (en) * | 2000-03-29 | 2007-06-26 | Microsoft Corporation | Seamless switching between different playback speeds of time-scale modified data streams |
US7302490B1 (en) * | 2000-05-03 | 2007-11-27 | Microsoft Corporation | Media file format to support switching between multiple timeline-altered media streams |
US6970640B2 (en) * | 2001-05-14 | 2005-11-29 | Microsoft Corporation | Systems and methods for playing digital video in reverse and fast forward modes |
US6968091B2 (en) * | 2001-09-18 | 2005-11-22 | Emc Corporation | Insertion of noise for reduction in the number of bits for variable-length coding of (run, level) pairs |
US20050155072A1 (en) * | 2003-10-07 | 2005-07-14 | Ucentric Holdings, Inc. | Digital video recording and playback system with quality of service playback from multiple locations via a home area network |
KR20060103895A (ko) | 2003-11-18 | 2006-10-04 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 가변 비트율 매체 스트림의 재생시의 버퍼 재충전 시간결정 |
BRPI0416607A (pt) * | 2003-11-18 | 2007-01-16 | Koninkl Philips Electronics Nv | método de reproduzir um sinal a ser reproduzido em modo especial de leitura a partir de um fluxo de vìdeo armazenado, aparelho de armazenamento e reprodução de fluxo de vìdeo, programa de computador, e, portador |
JP4118232B2 (ja) * | 2003-12-19 | 2008-07-16 | 三菱電機株式会社 | 映像データ処理方法および映像データ処理装置 |
US8010985B2 (en) * | 2004-06-01 | 2011-08-30 | General Instrument Corporation | Method and system for resource management in a video on-demand server |
US7240162B2 (en) | 2004-10-22 | 2007-07-03 | Stream Theory, Inc. | System and method for predictive streaming |
US7720350B2 (en) * | 2004-11-30 | 2010-05-18 | General Instrument Corporation | Methods and systems for controlling trick mode play speeds |
US20060294128A1 (en) | 2005-05-21 | 2006-12-28 | Kula Media Group | Enhanced methods for media processing and distribution |
US20070058926A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Optimizing trick modes for streaming media content |
JP2008113301A (ja) * | 2006-10-31 | 2008-05-15 | Hitachi Ltd | ビデオ送信装置及びビデオ送信方法 |
US20080148327A1 (en) * | 2006-12-18 | 2008-06-19 | General Instrument Corporation | Method and Apparatus for Providing Adaptive Trick Play Control of Streaming Digital Video |
US8997161B2 (en) * | 2008-01-02 | 2015-03-31 | Sonic Ip, Inc. | Application enhancement tracks |
US8219711B2 (en) | 2008-11-24 | 2012-07-10 | Juniper Networks, Inc. | Dynamic variable rate media delivery system |
KR101480469B1 (ko) * | 2008-12-01 | 2015-01-09 | 엘지전자 주식회사 | 영상표시장치, 영상전송장치, 영상전송방법 및 기록매체 |
KR101750048B1 (ko) * | 2009-11-13 | 2017-07-03 | 삼성전자주식회사 | 변속 재생 서비스 제공 방법 및 장치 |
CA2786812C (en) * | 2010-01-18 | 2018-03-20 | Telefonaktiebolaget L M Ericsson (Publ) | Method and arrangement for supporting playout of content |
US8589583B2 (en) | 2010-09-08 | 2013-11-19 | Hulu, Inc. | Method and apparatus for adaptive bit rate switching |
WO2012047158A1 (en) * | 2010-10-05 | 2012-04-12 | Telefonaktiebolaget L M Ericsson (Publ) | A client, a content creator entity and methods thereof for media streaming |
US8914534B2 (en) * | 2011-01-05 | 2014-12-16 | Sonic Ip, Inc. | Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol |
US8806188B2 (en) * | 2011-08-31 | 2014-08-12 | Sonic Ip, Inc. | Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files |
-
2012
- 2012-03-13 US US13/419,048 patent/US8407747B1/en active Active
-
2013
- 2013-03-11 CN CN201380011874.0A patent/CN105723720B/zh active Active
- 2013-03-11 EP EP13761150.5A patent/EP2826253A4/en not_active Withdrawn
- 2013-03-11 KR KR1020147027129A patent/KR101510822B1/ko active IP Right Grant
- 2013-03-11 JP JP2014561180A patent/JP5899334B2/ja active Active
- 2013-03-11 WO PCT/US2013/030154 patent/WO2013138224A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2013138224A3 (en) | 2015-07-09 |
KR101510822B1 (ko) | 2015-04-17 |
US8407747B1 (en) | 2013-03-26 |
EP2826253A2 (en) | 2015-01-21 |
CN105723720A (zh) | 2016-06-29 |
KR20140138226A (ko) | 2014-12-03 |
EP2826253A4 (en) | 2016-07-13 |
JP2015515776A (ja) | 2015-05-28 |
JP5899334B2 (ja) | 2016-04-06 |
WO2013138224A2 (en) | 2013-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105723720B (zh) | 自适应特技播放串流 | |
CN105163134B (zh) | 直播视频的视频编码参数设置方法、装置及视频编码设备 | |
US10459943B2 (en) | System and method for splicing media files | |
US9247276B2 (en) | System and method for progressive delivery of media content | |
CN109565620A (zh) | 低延迟http实时流传输 | |
CN110636346B (zh) | 一种码率自适应切换方法、装置、电子设备及存储介质 | |
US8321905B1 (en) | Fast switching of media streams | |
CN103327361B (zh) | 实时视频通讯回放数据流的获取方法、装置及系统 | |
US20110099594A1 (en) | Streaming encoded video data | |
RU2011142761A (ru) | Система и способ сжатия мультипотокового видео | |
JP2019517219A (ja) | トリックプレイ再生の間にオーディオコンテンツを提供するためのシステムおよび方法 | |
US20160212054A1 (en) | Multiple Protocol Media Streaming | |
CN108040038A (zh) | 网络互动直播的方法、网络主播端和用户端 | |
JP2014520422A (ja) | 受信ビットレートの動的適応方法および関連する受信機 | |
KR20130000885A (ko) | 고화질 비디오 스트리밍 서비스 방법 및 시스템 | |
JP4526294B2 (ja) | ストリームデータ送信装置、受信装置、プログラムを記録した記録媒体、およびシステム | |
JP2014090419A (ja) | 通信パラメータに従ってコンテンツをダウンロードするための方法、および、関連するコンテンツ受信機 | |
WO2024114146A1 (zh) | 媒体流处理方法、装置、计算机设备和存储介质 | |
JP2011061533A (ja) | コンテンツ配信システム、体感品質推定装置、方法、及び、プログラム | |
Filteau et al. | Real-time streaming application for IoT using Raspberry Pi and handheld devices | |
US10965729B2 (en) | Live streaming of media for low-latency applications such as live casino gaming applications | |
JP2017130957A (ja) | 送信装置、送信方法、再生装置、及び再生方法 | |
CN107172503A (zh) | 显示设备 | |
JP7057720B2 (ja) | 動画ストリーム受信装置及びプログラム | |
Bentaleb et al. | BML 3: Accurate Bandwidth Measurement for QoE Optimization in Low Latency Live Streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |