CN110679153B - 用于提供重新缓冲事件的时间放置的方法 - Google Patents

用于提供重新缓冲事件的时间放置的方法 Download PDF

Info

Publication number
CN110679153B
CN110679153B CN201880035639.XA CN201880035639A CN110679153B CN 110679153 B CN110679153 B CN 110679153B CN 201880035639 A CN201880035639 A CN 201880035639A CN 110679153 B CN110679153 B CN 110679153B
Authority
CN
China
Prior art keywords
rebuffering
video item
point
buffer
points
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
Application number
CN201880035639.XA
Other languages
English (en)
Other versions
CN110679153A (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.)
Netflix Inc
Original Assignee
Netflix Inc
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 Netflix Inc filed Critical Netflix Inc
Publication of CN110679153A publication Critical patent/CN110679153A/zh
Application granted granted Critical
Publication of CN110679153B publication Critical patent/CN110679153B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • 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/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Advance Control (AREA)
  • Electrotherapy Devices (AREA)

Abstract

一种方法,包括利用计算系统将表示视频项目的数据接收到缓冲器中。该方法还包括将视频项目从缓冲器输出到显示系统。该方法还包括确定缓冲器的利用率下降到预定阈值以下。该方法还包括响应于确定缓冲器的利用率下降到预定阈值以下,确定在预定时间帧内存在所指定的重新缓冲点。该方法还包括响应于确定在预定时间帧内存在所指定的重新缓冲点,利用计算系统在所指定的重新缓冲点处暂停视频项目。

Description

用于提供重新缓冲事件的时间放置的方法
相关申请的交叉引用
本申请要求于2017年5月31日提交的、申请号为15/610053的美国专利申请的优先权,该美国专利申请以其整体进行公开。
技术领域
本公开总体上涉及视频流式传输,并且更具体地涉及视频流内的重新缓冲事件的定时。
背景技术
尽管消费者可以通过经由空中信号来接收或者通过订阅有线电视或卫星电视提供商来对媒体项目(例如,电影和电视节目)进行存取,但是越来越多的消费者正在经由基于互联网的系统来对内容进行存取。一些基于互联网的系统允许用户经由互联网下载内容或者将流内容传输到各种客户端设备。例如,基于互联网的媒体系统可以经由个人计算机、机顶盒或者个人移动设备(例如,智能电话或平板计算机)向用户提供内容。特别地,流式传输媒体系统使得用户能够以流式传输视频格式对媒体内容进行存取,使得用户可以在全部内容被递送到给定用户的客户端设备之前开始消耗(例如,观看和/或收听)内容。这样的系统允许用户对内容进行存取,同时在开始消耗他们所选择的内容之前避免潜在的冗长的下载过程。
当流式传输媒体项目时,用户在能够观看媒体项目之前不必下载整个媒体项目。取而代之的是,一旦表示媒体的数据被传递到用户的设备,则用户几乎可以立即开始消耗媒体项目。当表示媒体项目的数据被传递到用户的设备时,其被暂时地放置在缓冲器中。缓冲器允许更流畅的观看体验,因为如果暂时地中断或减慢了用户的设备与服务器之间的网络连接(数据正在其中进行流式传输),则媒体项目的消耗可能继续使用缓冲器中的数据。理想地,数据传递到缓冲器的速率大于从缓冲器中读取数据以在客户端设备上进行显示的速率。然而,在某些情况下,从缓冲器中读取数据比数据传递到缓冲器更快。如果缓冲器利用率(即,缓冲器内当前的数据量)降为零,则通常暂停媒体流,直到可以将足够的数据传递到缓冲器为止。这会降低针对观看者的体验质量,因为这种回放的突然停止被观看者感知为冻结屏幕(有时覆盖有沙漏或旋转轮图标)以及相应的音频的缺失(即静音)。用户通常将不知道缓冲器中的数据量,并且因此用户将回放的停止视为随机定时事件。当再次将足够的数据接收到缓冲器中时,媒体项目的回放可能会突然恢复。用户不喜欢所产生的媒体项目的不连续回放。
附图说明
图1是示出根据本公开的一些实施例的可以被用于执行重新缓冲事件的最佳放置的说明性服务器计算系统和客户端计算系统的图示。
图2是示出根据本公开的一些实施例的视频项目内的所指定的重新缓冲点的图示。
图3A、图3B、图3C和图3D是示出根据本公开的一些实施例的将所指定的重新缓冲点用于所指定的重新缓冲事件的图示。
图4A和图4B是示出根据本公开的一些实施例的可以被分配给视频项目的部分以帮助标识所指定的重新缓冲点的各种元数据的图表。
图5是示出根据本公开的一些实施例的对指示视频项目的部分中的特写镜头的特征进行检测的图示。
图6是示出根据本公开的一些实施例的对指示视频项目的部分中的固定镜头的特征进行检测的图示。
图7是示出根据本公开的一些实施例的对指示视频项目的部分中的缩小镜头的特征进行检测的图示。
图8是示出根据本公开的一些实施例的用于在所指定的重新缓冲点处暂停视频项目的说明性方法的流程图。
通过参考以下详细描述,本领域普通技术人员将更好地理解这些附图。
具体实施方式
参考以上简要地描述的附图,在本部分中描述了根据本公开的系统和方法的示例性应用。提供这些示例以增加上下文并且帮助理解本发明。因此,对本领域技术人员将显而易见的是,可以在没有这些具体细节中的一些或所有的情况下实践本发明。在其他实例中,没有详细地描述公知的处理步骤或操作,以避免不必要地模糊本公开。此外,本文描述的概念和原理的其他应用是可能的,使得以下示例不应被视为限制性的。本文所述的原理和概念可以被应用于为重新缓冲事件选择经优化的时间,该重新缓冲事件可以为流式传输的媒体项目的观看者减少重新缓冲的负面方面中的至少一些。
在下面的详细描述中,参考了附图,这些附图形成了该描述的部分,并且在附图中通过说明的方式示出了本公开的特定实施例。尽管充分详细地描述了这些实施例以使得本领域技术人员能够实践本发明,但是应当理解,这些示例不是限制性的,使得可以使用其他实施例,并且可以在不脱离本发明的精神和范围的情况下进行改变。
如上所述,在常规的流式传输实现方式中,如果没有足够快地将数据传递到客户端设备,则必须暂停视频以等待更多数据。在已经接收到足够数量的数据之后,视频可以恢复。各种因素(例如,网络条件)可能会影响客户端设备足够快地接收数据的能力。由于对网络条件的控制(如果存在的话)通常很少,因此这种暂停对用户来说可能表现为随机的,经常会打断重要的故事元素。这些中断通常被认为是没有音频的冻结屏幕。还可以向用户呈现延迟的指示,例如“缓冲中”消息、旋转轮或沙漏图标。这些允许利用附加数据对缓冲器进行填充的暂停将被称为重新缓冲事件。
重新缓冲事件使得观看者感到沮丧,因为它们中断了观看体验。当视频在重要场景或重要对话的中间暂停时,重新缓冲可能甚至更不受欢迎。因此,本公开涉及对用于必要的重新缓冲事件的暂停的放置进行优化以便于避免在不期望的时间处在视频流中暂停的方法和系统。换句话说,如果必须发生重新缓冲事件,则可以将重新缓冲点设置为在对用户更方便的时间处发生而非随机发生。
在一个示例中,可以在特定内容片段(例如,视频项目)内对用于重新缓冲点的位置进行标识。这些所标识的位置将被称为所指定的重新缓冲点。所指定的重新缓冲点可以对应于视频项目内对于重新缓冲更方便的时刻或时间。例如,所指定的重新缓冲点可以对应于场景变化、镜头变化或对话中的暂停。在一个示例中,如果缓冲器利用率太低,则即使缓冲器利用率尚未低于将以其他方式触发重新缓冲事件的点,视频项目也可以在所指定的重新缓冲点中的一个处暂停。换句话说,在缓冲器耗尽时发生重新缓冲的视频流式传输的常规实现方式中,在将发生这种用于重新缓冲的暂停之前,可以暂停视频流以进行重新缓冲。此外,在一些示例中,如果从流式传输服务器到客户端系统的网络连接使得数据传递到缓冲器的速率小于数据被消耗的速率,则视频项目可能会在某些所指定的重新缓冲点处短暂地暂停,而不是由于缓冲器内数据的耗尽在视频内的明显随机点处暂停。
图1是示出了可以被用于执行重新缓冲事件的最佳放置的说明性服务器计算系统102和客户端计算系统120的图示。服务器计算系统102可以是由流式传输媒体服务拥有、操作或以其他方式管理的许多服务器中的一个。服务器计算系统102包括处理器108、存储器104、重新缓冲点标识模块110和网络接口112。服务器计算系统102还可以包括诸如对服务器操作系统(OS)(例如,
Figure GDA0003517131960000041
OS、
Figure GDA0003517131960000042
OS、
Figure GDA0003517131960000043
OS)进行操作的独立服务器和企业级服务器或者其他合适的基于服务器的操作系统102。服务器计算系统102可以是内容分发网络中的服务器。应当理解,图1所示的服务器计算系统102可以以其它方式进行部署,并且由这种服务器执行的操作和/或提供的服务可以针对给定的实现方式而进行组合或分离,并且可以由更多或更少数量的单独服务器设备来执行。
服务器108可以包括一个或多个单独处理器或处理核心。类似地,存储器104可以包括一个或多个不同类型的存储器设备。存储器104可以存储用于在处理器108上执行的机器可读指令。这种指令可以与各种应用程序以及操作系统相关联。此外,存储器104可以存储用于流式传输的视频项目106。这种视频项目106可以包括诸如完整长度电影、一系列剧集、或者电影或剧集的部分。也可以考虑其他类型的视频项目。视频项目106可以以适合于存储和/或流式传输的机器可读格式进行编码。更具体地,视频项目106可以包括对一系列帧进行指定的数据的集合,每个帧包括图像或者可以被处理以获得图像的信息。当依次显示帧时,它们会产生视频。可以使用对数据进行压缩的各种技术来对视频项目106进行编码。包括视频项目106的数据还可以包括与视频数据相对应的音频数据。换句话说,音频数据在时间上与视频数据对齐。
如上所述,存储器104可以包括多个存储器模块。存储器模块可以是各种类型的。存储器104中的一些可以是易失性存储器,例如随机存取存储器(RAM)。存储器104中的一些可以是非易失性存储器,例如硬盘驱动器或固态驱动器(SSD)。除了存储形成应用程序的机器可读指令之外,存储器104可以存储视频项目106以进行分析和流式传输。存储器104还可以存储这种分析的结果,例如视频项目106内与所指定的重新缓冲点相对应的位置或时间。
服务器计算系统102包括网络接口112,该网络接口112允许服务器计算系统102经由网络114(例如,互联网)与其他计算系统进行通信。网络接口112包括硬件、软件或者两者的组合以对数据进行编码从而在网络114上进行传输。网络接口112可以利用各种通信技术,例如以太网、光纤和无线通信技术。
在一些示例中,存储视频项目106的服务器计算系统102可以执行视频项目106的分析以标识重新缓冲点。在这种示例中,服务器计算系统102可以包括重新缓冲点标识模块110。重新缓冲点标识模块110包括硬件、软件或者两者的组合,其对表示视频项目106的数据进行分析并且对重新缓冲点的位置进行标识。所标识的重新缓冲点可以以多种方式来表示。在一个示例中,所标识的重新缓冲点可以被表示为视频项目106内的时间点(例如,包括分钟、秒和几分之一秒的时间戳)。在一些示例中,与重新缓冲点相对应的帧可以利用元数据进行标记,该元数据指示这种帧对应于重新缓冲点。所标识的重新缓冲点的放置可以在流式传输开始时(例如,在清单文件中或者在清单文件中所指向的元数据文件中)或者在流式传输处理期间被传输到客户端计算系统120。清单文件还可以指向相同视听内容对用户可用的一个或多个流的位置,该流具有不同的比特率和/或质量。具有经由网络114到服务器计算系统102的高质量连接的客户端计算系统120可以从清单文件中标识的多个流中选择高质量流。具有低质量(例如,低带宽)连接的客户端计算系统120可以选择低质量流。在经由网络114的连接质量改变的事件中,客户端计算系统120可以适当地开始对不同的流进行存取以向用户提供最佳体验。可以在流中(例如,在单个帧中或在单独的文件中)包含的数据中对重新缓冲点的位置进行指示。例如,重新缓冲点可以被包括在补充增强信息(SEI)消息中,例如由H.264编解码器或者在数据流中传输补充信息(例如,字幕或描述性文本)的其它类似方法进行包括。
在一些示例中,重新缓冲点标识模块110在该视频项目106被流式传输之前对视频项目106内的重新缓冲点进行标识。例如,如果视频项目106仅被存储并且当前未被进行流式传输,则重新缓冲点标识模块110可以使用该时间来执行对视频项目106的分析以确定重新缓冲点。在一些实施例中,当将视频项目106从为高保真存储而优化的格式编码为适合于流式传输视频的经压缩格式时,可以执行该分析。在一些示例中,可以在将视频项目106上传到服务器计算系统102之前对重新缓冲点进行标识。在一些示例中,可以通过位于服务器计算系统102和客户端计算系统120之间的网络114内的单独服务器(未示出)来对重新缓冲点进行标识,该服务器计算系统102存储视频项目106,该客户端计算系统120消耗视频项目106。
流式传输处理涉及通过网络114(例如,互联网)将表示视频项目106中的所选择的一个视频项目106的数据从服务器计算系统102传输到客户端计算系统120。在本示例中,客户端计算系统120包括处理器128、存储器122、网络接口126、重新缓冲点标识模块130和显示系统132。在一些示例中,客户端计算系统120可以是诸如台式机、笔记本电脑、视频控制台或平板电脑计算设备。
类似于服务器102的存储器104,客户端计算系统120的存储器122可以包括一个或多个不同类型的存储器设备。存储器104可以存储用于在处理器128上执行的机器可读指令。这种指令可以与各种应用程序以及操作系统相关联。此外,存储器122可以包括缓冲器124。缓冲器124是存储器的部分,其被用于在对数据进行处理以经由显示系统132向用户116显示之前临时地存储经由网络114接收的数据。消耗数据的速率可能取决于当前流的分辨率和/或比特率。例如,如果流的分辨率或者比特率相对较高,则使用更多的数据来产生视频。因此,在特定时间段内消耗更多的数据以便向用户116呈现视频项目。相反,如果流的分辨率或者比特率相对较低,则使用更少的数据来产生视频。因此,在特定时间段内消耗较少的数据以便向用户116呈现视频。因此,可以基于所选择的视频项目流的比特率来对缓冲器124的大小进行设置或适配。
在一些示例中,客户端计算系统120可以负责对视频项目106内的重新缓冲点进行标识。在这种情况下,客户端计算系统120包括重新缓冲点标识模块130。在一些示例中,重新缓冲点标识模块130可以被配置为在内容106被接收时对该内容106进行分析,以对重新缓冲点进行标识。换句话说,在客户端计算系统120上对重新缓冲点进行原位标识。这可以消除对与服务器计算系统102的重新缓冲点标识相关联的分析和元数据生成的需要。
类似于服务器系统102的网络接口112,客户端计算系统120的网络接口126包括硬件、软件或者两者的组合以对数据进行编码和解码从而经由网络114进行通信。通过网络接口126经由网络114从服务器系统102接收数据,并且将数据放置在缓冲器124内。
显示系统132包括被用于向用户116呈现视频项目的组件。例如,显示系统132可以包括视频和音频处理硬件和软件。显示系统132还可以包括视频输出设备,例如监视器或屏幕。显示系统132还可以包括音频输出设备,例如被配置为与音频输出设备进行通信的扬声器或耳机或连接。
图2是示出了所指定的重新缓冲点202、204、206、208的图示。根据本示例,视频项目200包括与场景变化相对应的重新缓冲点202、与镜头变化相对应的重新缓冲点204、与对话暂停相对应的重新缓冲点206、以及与具有某些视觉特性(例如,低亮度)的图像相对应的重新缓冲点208。其他标准可以被用于预定用于重新缓冲事件的合适位置。
在一些示例中,重新缓冲点标识模块110、130可以对表示视频项目200的数据进行分析并且标识每个场景变化。场景通常是指涉及在单个位置处的特定动作并且覆盖连续时间段的电影的部分。重新缓冲点标识模块110、130可以通过各种不同的方式来检测场景变化。在一个示例中,可以对表示图像内的颜色的数据进行分析以确定整体颜色外观从一帧变化到下一帧。例如,室外场景可能在图像内具有多种颜色,而将场景更改为室内场景可能具有不同种的颜色。此外,可以对表示音频部分的数据进行分析以确定该视频的音频环境已经改变,从而建议场景变化。例如,其中角色正在驾驶汽车的场景可以包括汽车的声音和交通状况。然后,该场景可能会更改为其中各个角色正在彼此交谈的安静房间的场景。音频环境的这种变化可以帮助标识场景变化。因为场景变化通常会在故事中呈现自然的变化,所以它们对于重新缓冲事件可能更方便。因此,与场景变化相对应的帧可以被标识为重新缓冲点202。
在一些示例中,重新缓冲点标识模块110、130可以对表示视频项目200的数据进行分析,并且对每个镜头变化进行标识,如本文进一步描述的。镜头通常可以表示包括一个连续的相机胶卷的视频的部分。镜头通常也可以表示两次编辑或者剪辑之间的连续影片。重新缓冲点标识模块110、130可以以多种方式对镜头进行检测。在一个示例中,对每个帧内的特征进行分析。这种特征可以包括帧的颜色或者帧的亮度。此外,图像处理算法可以对特征(例如,形状、边缘和拐角)进行标识,以便能够跨越多个帧来跟踪这些特征。如果特定帧与前一帧基本上不同,则可以确定已经发生了剪辑。换句话说,前一镜头已经结束,并且新的镜头已经开始。有时,在对话的中间或者在另一连续声源(例如,喷气式飞机经过(a jetpassing by))的中间期间发生镜头变化。在一些情况下,在对话的中间期间不发生镜头变化。因此,可以区分在对话期间或在连续声源期间发生的镜头变化与在对话期间或在没有连续声源的情况下发生的镜头变化。在对话或者连续声源之间发生的镜头变化处的重新缓冲事件可以被用户116感知为不那么麻烦。因此,与这种镜头变化相对应的帧可以被标识为重新缓冲点204。
在一些示例中,重新缓冲点标识模块110、130可以对视频项目200内的音频数据进行分析,并且对对话中的暂停进行标识。可以通过检测适当频率范围内的音频瞬变或者利用语音活动检测器来检测对话。各种函数和音频特征提取可以被用于分析数据并且确定角色何时说话以及他们何时不说话。在一些示例中,如果在对话中间的暂停长度高于预定阈值,则该暂停内的某个时间点可以被标识为重新缓冲点206。
在一些示例中,重新缓冲点标识模块110、130可以针对其中视觉属性具有所指定的特性(例如,低亮度或相对低亮度)的点来对表示视频项目200的数据进行分析。例如,视频项目的视觉上较暗的部分可以被定义为视频项目200内的其中图像的整体亮度低于绝对阈值、或者如果图像的亮度低于基于先前图像或帧的阈值的任何点。在这些部分期间,在视频内可能存在较少的观看者特别感兴趣的区别特征。因此,这种视觉上较暗的部分可能对于重新缓冲事件更方便。因此,这些部分可以被标识为重新缓冲点208。
在一些示例中,可以将重新缓冲时间范围210标识为重新缓冲点,而不是将视频项目200内的单个时间点、单个时间戳或者单个帧标识为重新缓冲点。例如,可以确定特定时间范围210对应于听觉标记,例如对话中的暂停、环境变化、静音、或者有助于类似声音的循环、时间延长或合成的任何其它声音。在一些示例中,时间范围210可以对应于视觉标记,例如视频项目200的视觉上较暗的部分。在这种情况下,可以认为在该时间范围210内的任何时间段对于重新缓冲事件更方便。
在一些示例中,某些类型的重新缓冲点可以优于其它类型的重新缓冲点。例如,如果可能,可能更优选的是在场景变化期间暂停重新缓冲事件而不是在镜头变化期间暂停重新缓冲事件。类似地,在场景变化期间暂停重新缓冲事件可能比在对话中的暂停期间暂停重新缓冲事件更优选。因此,可以为重新缓冲点分配排名值。确定应该何时将重新缓冲点用于重新缓冲事件的逻辑可以考虑迫切重新缓冲点的排名值。例如,如果对重新缓冲事件的需要更迫切,那么较低排名的重新缓冲点(例如,与对话中的视觉上较暗的部分或暂停相对应的那些点)可以被用于重新缓冲事件。然而,如果对重新缓冲事件的需要不太迫切,则仅较高排名的重新缓冲点(例如,场景变化)可以被用于重新缓冲事件。在一些实施例中,重新缓冲事件可以默认地在某些重新缓冲点处发生,例如在暗场景变化处,即,在场景变黑或褪到黑的情况下,伴随音频数据中的静音。除非缓冲器中的数据量超过特定阈值,例如十秒、三十秒或一分钟,否则可以执行重新缓冲。在这种实例中,可以在短时间量内执行重新缓冲。例如,可以在小于一秒或小于半秒内执行重新缓冲。当用户116不太可能察觉到暂停时包括这种暂停可以使得缓冲器能够在预期网络连接的任何下降时被扩展,例如当在小区塔之间切换时。
缓冲点的使用可以根据与接收视频流的客户端计算系统120相关联的各种条件而变化。例如,各种网络条件可能会影响重新缓冲点的使用。如果流式传输服务提供商和客户端计算系统120之间的网络连接比用于以特定分辨率进行流式传输的理想速率慢,则客户端计算系统120可以被配置为在特定重新缓冲点处暂停以便保持缓冲器利用率高于期望阈值。例如,客户端计算系统120可以在每个场景变化处暂停几秒钟或者少于一秒,以确保缓冲器利用率不会下降到期望阈值以下。在一些示例中,如果可以经由网络将内容传递到客户端计算系统120的速率较低,则客户端计算系统可以在较低排名的重新缓冲点(例如,对话中的暂停)处暂停。
在一些示例中,每个暂停的长度可以取决于将用于视频项目200的数据传递到客户端计算系统120的当前速率。通常,可以通过在重新缓冲点处暂停更长的时间来处理较低的速率。相反,可以通过在重新缓冲点处暂停更短的时间来处理较高的速率。这种暂停的长度可以随着流式传输处理期间网络条件的变化而动态地调整。例如,如果网络条件改善,则可以缩短这种暂停的长度。在一些示例中,如果网络条件显著改善,则可以确定不需要暂停以将缓冲器利用率保持在期望阈值以上。相反,如果网络条件恶化,则可以在重新缓冲点处应用更长的暂停。因此,可以使用重新缓冲的当前速率来确定用于重新缓冲的长度以及用于重新缓冲的重新缓冲点的类型。
用于重新缓冲事件的暂停的长度也可能会根据特定重新缓冲点的排名或类型而变化。例如,较高排名的重新缓冲点(例如,与场景变化相对应的重新缓冲点)可能具有较长的暂停,因为这种点对观看体验的干扰较小。相反,较低排名的重新缓冲点(例如,对话中的间隙)可能具有较短的暂停,因为这种点可能稍微更干扰观看体验。例如,给定特定条件,在场景变化期间可以使用一秒钟的暂停,而在对话中的间隙期间可以使用小于500毫秒的暂停。
图3A-图3D是示出根据本公开的一些实施例的将所指定的重新缓冲点306用于重新缓冲事件的图示。在一些示例中,当缓冲器利用率310下降到预定阈值308以下时,可以触发用于重新缓冲事件的暂停。可以以多种方式来定义缓冲器利用率310。在一个示例中,缓冲器利用率310可以由缓冲器内当前未消耗的数据量来定义。在一些示例中,缓冲器利用率310可以由用于缓冲器内的视频项目的播放时间量来定义。例如,其可以是缓冲器具有足够的数据用于一分钟32秒的播放时间的情况。
图3A-图3D示出了用于视频项目200的时间线。线302表示视频项目200内的当前正在显示以供观看的时间点。线304表示视频项目200内的其中假设没有接收到新数据而将消耗缓冲器的时间点。换句话说,如果没有更多的数据被传递到缓冲器,则视频项目可以继续播放直到由线304表示的点。因此,线302和线304之间的时间范围表示缓冲器利用率310。
图3A示出了当前缓冲器利用率310高于预定阈值。因此,视频项目的呈现将正常进行。在图3B中,随着视频项目的播放,缓冲器利用率310下降到预定阈值308以下。这可能是由于其中数据传递到缓冲器的速率小于其中数据被处理以在显示系统132中呈现的速率所致。因此,可以确定缓冲器利用率310被预测为下降到其中需要重新缓冲事件的点。常规流式传输系统可以简单地在确定需要重新缓冲事件的任何点处或者在缓冲器中的所有数据已被处理的点处暂停。然而,根据本文公开的原理,预定或者预标识重新缓冲点可以被用作其中发生重新缓冲事件的点。因为重新缓冲点对应于视频项目200中的较少干扰的点,所以用户116可以具有更好的体验。
图3C示出了线302已经到达重新缓冲点306。在该重新缓冲点处,视频项目200可以被暂停以允许重新缓冲。视频项目200在显示系统132中的呈现可以被暂时地停止。图3D示出了在视频项目200已经被暂停之后并且在其恢复之前的时间点。如图所示,由暂停提供的附加时间允许将更多数据添加到缓冲器,从而将缓冲器利用率310扩展到远高于预定阈值308的点。在一些示例中,在重新缓冲点306处的用于重新缓冲的暂停可以是允许缓冲器利用率在恢复之前达到预定大小所需的一段时间。在一些实施例中,用于重新缓冲的暂停的持续时间可以由随后的重新缓冲点来确定。例如,视频项目200可以被暂停以进行重新缓冲,直到另一重新缓冲点或者某一类型的另一重新缓冲点存在于经缓冲的数据中为止。或者在随后的重新缓冲之后可以添加一定量的时间或数据作为重新缓冲衬垫。例如,用于重新缓冲的暂停可以持续到与第二描绘的重新缓冲点306相关联的数据已经被添加到缓冲器为止,或者持续到与第二描绘的重新缓冲点306相关联的数据已经被添加之后的附加数据的阈值量为止。
在一些示例中,正在显示视频的客户端系统可以在每个所指定的重新缓冲点处对缓冲器的当前利用率进行评估。如果在特定的所指定的重新缓冲点处缓冲器利用率低于特定阈值,则视频项目可以在该特定的所指定的重新缓冲点处暂停。此外,缓冲器的当前利用率可以帮助确定在该特定的重新缓冲点处应该将视频项目暂停多长时间。例如,如果当前缓冲器利用率接近阈值,则暂停可能相对较短。然而,如果当前缓冲器利用率远低于阈值,则暂停可能相对较长。如果缓冲器利用率高于阈值,则可能无需在该重新缓冲点处暂停视频项目。
图4A和图4B是示出可以被分配给内容的片段内的镜头和帧以帮助标识重新缓冲点的元数据的图表。在一些示例中,重新缓冲点标识模块110、130可以包括硬件、软件或二者的组合,以分析视频项目200的数据并且对视频项目200内的不同镜头和帧进行标识。例如,取决于实现方式,重新缓冲点标识模块110、130可以指示用于视频项目200内的每个不同镜头或者用于视频项目200的当前缓冲部分内的每个不同镜头的起点和终点。重新缓冲点标识模块110、130还可以对视频项目200内的帧的选择进行标识。重新缓冲点标识模块110、130还可以对与每个帧相关联的图像进行分析以检测帧内的各种特征。这种特征可以包括诸如出现在镜头或帧中的角色的面部。基于这种特征,重新缓冲点标识模块110、130可以将元数据分配给在视频项目200内检测到的各种镜头和图像。然后,可以使用这种元数据来将视频项目200内的重新缓冲点以及排名值分配给这些重新缓冲点。例如,在显示第一演员而不是第二演员的时间期间,用于重新缓冲的暂停可能是优选的。
帧对应于静止图像,当与其他帧按照顺序组合在一起时,便会产生运动图像。形成视频项目200的数据可以描述视频项目200内的每个帧。重新缓冲点标识模块110、130可以对视频项目200内的多个帧进行分析,并且基于在这些帧内检测到的特征而将元数据分配给这些帧中的每个帧。一系列帧可能会形成镜头。镜头通常可以表示包括一个连续相机胶卷的视频的部分。镜头通常还可以表示两次编辑或剪辑之间的连续影片。重新缓冲点标识模块110、130可以以各种方式来检测镜头。在一个示例中,使用图像处理算法来对每一帧内的特征进行分析。这种特征可以包括帧的颜色、帧的亮度或者机器可标识的特征,例如形状和边缘。如果特定帧与前一帧基本上不同,则可以确定已经发生了剪辑。换句话说,前一镜头已经结束,并且新的镜头已经开始。在已经标识了各种镜头之后,重新缓冲点标识模块110、130可以对镜头内不同帧的特征之间的差异进行标识。这些差异可以被用于对镜头进行分类并且将各种元数据分配给镜头。
重新缓冲点标识模块110、130还对每个镜头进行分析,以便将包括镜头类别的元数据分配给该镜头。这可以通过对表示镜头内的帧的机器可读数据进行分析来完成。在一个示例中,重新缓冲点标识模块110、130选择特定镜头内的至少两个帧。重新缓冲点标识模块110、130对在那些帧内发现的特征进行分析,并且对那些帧的特征之间的差异进行标识。例如,如果一个帧的各个特征之间的空间关系大于另一帧的各个特征之间的空间关系,则可以确定该镜头是缩小镜头。例如,如果一个帧的特征被确定为角色面部的特征,并且另一帧的特征也被确定为角色面部的特征,则如果面部占据超过帧的阈值量,则可以确定该镜头是特写镜头。例如,如果确定一个帧的特征相对于另一帧中的特征已经以特定方式偏移,则可以确定该镜头是固定镜头。也考虑其他类型的镜头。在一些示例中,其中存在重新缓冲点的镜头类型可能会影响该重新缓冲点的排名值。例如,与特写镜头相比,在固定镜头期间暂停可能会更方便。
重新缓冲点标识模块110、130还可以对视频项目200内的选定数目的帧进行分析。对视频项目200内的帧进行分析可以涉及对表示视频项目200的机器可读数据进行检查。在一些示例中,可以对视频项目的每一单个帧进行分析。然而,在一些示例中,可以对每一X数目的帧进行分析。在一些示例中,X可以在约5至60的范围内。也考虑用于X的其他值。重新缓冲点标识模块110、130还可以将元数据分配给经分析的每个帧。
图4A示出了包括用于特定帧的元数据(也称为帧元数据)的说明性图表400。元数据可以指示帧的视觉属性401、帧的结构属性403以及帧的时间属性405。视觉属性401包括亮度402、清晰度404和对比度406。其他视觉属性可以包括帧的颜色组成或色温。结构属性403包括帧面408和帧显著性410。时间属性405包括帧运动412和帧方向414。
重新缓冲点标识模块110、130可以基于与帧内的每个像素相关联的平均亮度值而将亮度值402分配给帧。具体地,重新缓冲点标识模块110、130可以对表示帧的数据进行检查。该数据可以定义用于帧内的每个像素的颜色值。例如,如果在YUV(也称为YCbCr)颜色空间中表示用于像素的数据,则Y值表示像素亮度。例如,如果在RGB颜色空间中表示用于像素的数据,则可以将用于特定像素的亮度定义为用于像素的平均颜色值(例如,Br=(R+G+B)/3,其中Br是亮度,R是红色值,G是绿色值,并且B是蓝色值)。考虑用于确定亮度值的其他方式。
重新缓冲点标识模块110、130可以基于对定义帧的数据的分析,将清晰度值404和对比度值406分配给帧。例如,重新缓冲点标识模块110、130可以应用函数来确定帧的清晰度值和对比度值。清晰度(有时称为锐度)是衡量图像的对比度的强烈程度的一种度量。对比度是指图像内的色差。可以使用基于表示帧的数据来确定清晰度值和对比度值的各种方法。
重新缓冲点标识模块110、130还可以对出现在镜头内的面部408进行标识。例如,可以基于对帧内的特征的分析来确定帧包括一个或多个面部。可以应用各种面部识别函数来标识面部的存在,并且然后对数据中表示的实际面部进行标识。例如,Viola-Jones算法是检测面部的一种流行选择。帧内各种角色的面部也可以被分配流行度值。该流行度值可以以多种方式导出。在一个示例中,流行度值基于其中该角色出现在视频项目内的时间百分比。在一些示例中,可以使用外部资源来确定角色的流行度。例如,流行度值可以由人类用户来预定义。在一些示例中,可以应用对公共可用信息(例如,网页和社交媒体)的分析,以便将流行度值分配给特定角色。特定镜头或场景内角色的流行度也可能会影响该镜头或场景内重新缓冲点的排名值。例如,在显示更流行的角色或演员的同时暂停重新缓冲可能是更好的选择。
重新缓冲点标识模块110、130可以将显著性数据分配给帧。显著性数据可以包括诸如显著性图。显著性图对图像的部分的唯一性进行标识。例如,可以用值来标识图像的部分(例如,像素或相邻像素的集合)的颜色唯一性。显著性图还可以包括被分配给图像内的焦点人物或对象的显著性值。例如,显著性值可以标识该人物或对象相对于其中该对象或人物所处的背景突出了多少。
重新缓冲点标识模块110、130还可以确定帧的时间特征。例如,通过对表示帧和相邻帧的数据进行分析,可以确定特定的焦点对象或者人物相对于图像的其他对象或者背景正在以特定速度和方向进行移动。可以确定该信息以分配帧运动值412和帧方向值414。
帧运动值412和帧方向值414可以被用于确定所指定的重新缓冲点。例如,如果在视频项目内的特定帧处存在很多运动,则这可能指示在场景期间正在发生更多动作。因此,在该帧处引起重新缓冲事件可能更加不方便。然而,如果存在较少的运动,则其可能是用于重新缓冲事件的更方便的帧。因此,可以将具有小于预定运动值阈值的帧运动值412的帧标识为所指定的重新缓冲点。在一些示例中,具有低运动值的帧可以具有排名值,其小于与镜头变化或者场景变化相对应的帧。
重新缓冲点标识模块110、130还可以确定用于帧的重新缓冲点排名值416。重新缓冲点排名值可以基于与帧或者帧在镜头或场景内的位置相关联的多种因素。例如,排名值的范围可能是0-100,其中零是用于重新缓冲点的不良选择,并且100是用于重新缓冲点的理想选择。因此,位于对话内并且描绘重要角色说话的帧可以具有为零的重新缓冲点排名值,并且与场景的结束或者开始处的淡出或淡入相对应的帧可以具有更接近100的重新缓冲点排名值。此外,例如,位于镜头的结束或开始处的帧可以具有接近75的重新缓冲点排名值。重新缓冲点排名值416还可能受到帧的其他属性401、403、405以及如本文所述的其他考虑因素的影响。在其中在服务器计算系统102上执行的重新缓冲点标识模块110确定属性401、403和405的一些实施例中,客户端计算系统120利用该元数据来产生包括重新缓冲点排名值416的附加元数据。
图4B示出了包括用于特定镜头的元数据(也称为镜头元数据)的说明性图表420。根据本示例,元数据包括镜头类别422、视觉属性424、结构属性426和时间属性428。
镜头类别422对镜头的类型进行标识。例如,镜头类别可以包括但不限于特写镜头、固定镜头、缩小镜头或者在电视和电影业中使用的其他类别的镜头。也可以定义其他类型的镜头类别。如上所述,可以基于镜头内的至少两个不同帧之间的特征差异来定义镜头类别。
视觉属性数据424可以包括信息(例如,亮度、清晰度和对比度)。这些可以表示为用于镜头的平均值。例如,可以对来自镜头的帧的样本进行分析和平均以确定各种视觉属性值。结构属性数据426可以包括镜头的结构特征,例如哪些角色出现在镜头内。时间属性数据428可以指示其中镜头正在移动的方向或者其中镜头中的所标识的对象正在移动的方向(如果有的话)。时间属性数据428还可以指示任何焦点对象相对于背景正在移动的方向。镜头元数据中可能包括其他能够有助于对重新缓冲点进行标识的信息的片段。
图5是示出对指示特写镜头的特征进行检测的图示。图5示出了两个不同帧502、504的图像。在本示例中,第一帧502对应于镜头内的较早帧,并且第二帧504对应于镜头内的较后帧。对帧502、504进行分析以对每个帧502、504内的某些特征进行标识。在一些示例中,这些特征可以被标识为主要特征和次要特征。在本示例中,帧502、504具有主要特征506a、506b,其是出现在镜头内的单个角色的面部。此外,帧502、504包括次要特征508a、508b,例如角色的衣服的部分(在该示例中,角色的领带)。
在一些示例中,可以应用各种函数来标识主要特征和次要特征。通常,将角色的面部指定为主要特征。可以将相对于背景的其余部分突出的其他对象指定为次要特征。如果在镜头内没有面部,则可以使用其他机制来标识主要特征。例如,可以将最突出的对象指定为主要特征。可选地,可以不标识主要特征,并且可以仅标识次要特征。在一些示例中,在主要特征和次要特征之间可能没有区别。
可以通过比较两个帧之间的特征来分配镜头类别。在图5中,将来自第一帧502的主要特征506a与来自第二帧504的相应主要特征506b进行比较显示在主要特征506的大小或位置方面几乎没有差异。特征之间的迹线基本上平行和水平。这表明在第一帧502与第二帧504之间几乎没有运动。此外,将来自第一帧502的次要特征508a与来自第二帧504的次要特征508b进行比较显示在次要特征的位置方面几乎没有差异。此外,主要特征506在帧内占据一定量的空间。例如,主要特征506可以具有包括至少一个尺寸的整体尺寸,该至少一个尺寸大于整个帧的相应尺寸的三分之一。例如,被标识为主要特征506a、506b的面部具有大于帧的整体高度的三分之一的高度。通过示例的方式提供了三分之一的阈值;在其他实施例中可以使用其他值或者百分比。基于该信息,可以确定该镜头是特写镜头。因此,可以相应地对镜头进行分类。
图6是示出对指示固定镜头的特征进行检测的图示。图6示出了两个不同帧602、604的图像。在帧内检测到的主要特征606a、606b是人,并且在帧602、604内检测到的次要特征608a、608b包括风景。可以通过对两个帧602、604之间的特征进行比较来分配镜头类别。将第一帧的主要特征606a和次要特征608a之间的关系与第二帧604的主要特征606b和次要特征608b之间的关系进行比较显示两个变化之间的距离以及所标识的特征的一个相对尺寸(例如,高度)变化,而另一尺寸(例如,宽度)不变化或者变化没那么大。这可以指示镜头包括相机相对于所标识的特征的垂直移动。换句话说,帧内的相应点之间的迹线不是完全水平的,而是稍微对角的。线的相对较浅的斜率指示尽管在两个帧502、504之间存在一些运动,但是其不是突然的或者快速的运动。此外,与图像相比,主要特征606a(即,人)占据相对较小量的空间。基于该信息,可以确定镜头是固定镜头。因此,可以相应地对镜头进行分类。
图7是示出对指示缩小镜头的特征进行检测的图示。图7示出了两个不同帧702、704的图像。在帧内检测到的特征706a、706b包括其中角色正在看着的焦点对象。可以通过对两个帧702、704之间的特征进行比较来分配镜头类别。第一帧中的特征706a的相对大小与第二帧704中的特征706b的相对大小的比较显示相对大小变化。具体地,第二帧704内的特征706b小于第一帧702的相应特征706a。相应点之间的迹线的会聚性质表明,第二帧704中的相应特征比其在第一帧702中更小。基于该信息,可以确定镜头是缩小镜头。因此,可以相应地对镜头进行分类。如果已经确定第二帧704内的特征706b大于第一帧702的相应特征706a,则可能已经确定该镜头是放大镜头。
图5-图7示出了对镜头内的特征进行检测以将镜头类别分配给这些镜头的一些示例。也可以检测其他类型的镜头。此外,在本文描述的重新缓冲点标识模块的一些实施例中,可以使用用于对不同类型的镜头进行标识的其他类型的函数。
图8是示出用于在所指定的重新缓冲点处暂停视频项目的说明性方法的流程图。方法800包括若干列举的步骤或操作。方法800的实施例可以在所列举的步骤之前、之后、之间包括附加步骤,或者作为所列举的步骤的部分。一些实施例可以省略一个或多个所列举的操作。此外,方法800的一些实施例包括具有存储在其上的指令的非暂态机器可读介质,其使得处理器执行所描述的操作中的全部或者一些。根据本示例,方法800包括操作802,用于将流式传输视频项目接收到缓冲器中或者对包括流式传输视频项目的数据进行提取或者读取。视频项目可以是诸如完整长度电影或者一系列剧集。视频项目的其他示例也是预期的。视频项目可以作为流传递。换句话说,视频项目由客户端设备来显示,同时数据仍从服务器设备传输到客户端设备。因此,视频项目可以在完全下载到客户端设备之前开始呈现。
方法800还包括操作804,用于将视频项目从缓冲器输出到显示系统。显示系统可以包括诸如视觉输出设备(例如,屏幕)和音频输出设备(例如,扬声器或者其连接的集合)。将视频项目从缓冲器输出到显示系统消耗缓冲器内的数据。当以这种方式观看流式传输视频项目时,表示视频项目的数据从远程服务器接收到本地缓冲器中。通常,如果缓冲器内的这种数据在附加数据能够被传递之前被消耗以供呈现,则视频项目必须暂停以允许重新缓冲。这种重新缓冲事件没有考虑正在呈现的内容的各个方面,并且可能降低观看者的体验质量。
方法800还包括操作806,用于确定在预定时间帧内存在所指定的重新缓冲点。所指定的重新缓冲点可以对应于场景变化、镜头变化或者视频项目内的对于暂停更方便的其它点。可以在视频项目被流式传输之前对重新缓冲点进行标识,或者可以在将数据被放入缓冲器时由客户端计算系统对重新缓冲点进行标识。预定时间帧可以对应于当前在缓冲器内的数据。具体地,预定时间帧可以在其中视频当前所处的点和其中缓冲器被完全消耗的点之间延伸。在一些示例中,在缓冲器内的未消耗数据内可能没有所指定的重新缓冲点。然而,可能存在如下情况:这种重新缓冲点将在缓冲器被完全消耗或者以其他方式触发重新缓冲事件之前出现。方法800的实施例可以包括响应于确定缓冲器利用率下降到预定阈值以下而从多个潜在重新缓冲点中选择特定重新缓冲点的操作。当缓冲器中的数据量下降到预定数据值以下时,或者当缓冲器中的数据量以预测在预定时间量内下降到预定阈值以下的速率减少时,可以确定缓冲器利用率下降到预定阈值以下。因此,该确定可以是实际确定或者预测确定。此外,方法800的一些实施例可以包括对缓冲器进行评估以确定缓冲器充满度的等级或者分配给缓冲器的存储器的实际占用百分比,以便确定是否需要用于重新缓冲的暂停的操作。在一些实施例中,缓冲器充满度的评估可以被用于确定用于重新缓冲的暂停应该持续多久或者暂停应该在何时停止。
方法800还包括操作808,用于响应于确定在预定时间帧内存在所指定的重新缓冲点并且应当执行重新缓冲以避免完全清空缓冲器,而在所指定的重新缓冲点处暂停视频项目。通过在所指定的重新缓冲点处而不是在仅由缓冲器中的数据量所确定的随机点处暂停视频项目,减轻了重新缓冲事件的不便。因此,当正在观看流式传输内容时,向观看者提供更好的体验。在一些实例中,可以在观看者没有察觉到用于重新缓冲的暂停的情况下执行重新缓冲。因此,尽管重新缓冲事件的常规实现方式通常包括呈现给用户的场景的一些改变以传达正在执行重新缓冲(例如,旋转轮出现在帧上),但是本公开的一些实施例可以不包括任何向用户指示正在发生重新缓冲事件的指示。因为重新缓冲是在经标识的适当时间处执行,所以重新缓冲对用户而言较不引人注意。例如,添加在所标识的淡出处示出黑色帧的单个秒可能不会被用户感知为重新缓冲,而是简单地感知为视频项目中的较长过渡。
此外,客户端计算系统120的一些实施例可以通过拉伸缓冲器中存在的视频和/或音频内容来“暂停”视频项目的回放。客户端计算系统120可以插入视频和音频信息,使得视频的给定部分被拉伸以增加时间。例如,缓冲器124可以包括能够被处理为5秒视频的数据。可以通过添加附加帧或者通过显示更长时间段的帧来“拉伸”该数据中的一些或全部,以使得数据在6秒而不是5秒内呈现。音频可以以不改变音调的方式被相应地拉伸。在一些实施例中,缓冲器音频的相关部分的傅立叶频谱可以被用于创建频谱简档以合成类似的音频内容。例如,在媒体项目中标识的固定镜头可以从10秒拉伸到12秒,以允许在示出固定镜头时发生两秒的重新缓冲。客户端计算系统120可以通过包括标签的元数据来对固定镜头进行标识,该标签对与镜头相关联的重新缓冲点进行指示。因此,客户端计算系统120可以基于被用于重新缓冲的重新缓冲点的类型来提供重新缓冲响应。
在一些实施例中,在已经选择了重新缓冲点之后,客户端计算系统120可以对要由显示系统132显示的数据应用淡出。淡出可以被提供给包括在经缓冲的数据中的视频和/或音频。在一些实施例中,当重新缓冲可能花费大量时间(例如,大于3、5或10秒)时,可以呈现预定音频内容。类似地,可以呈现预定视频内容,例如示出视频项目的标题的帧或者与视频项目的章节或片段相关联的帧。当呈现预定音频内容时,内容可以被设计为循环,并且可以被从视频项目(例如,视频项目的音轨)本身获得。这种方法可以在延长重新缓冲周期期间提供较好的用户体验,并且可以被包括在方法800的实施例中。
在一些示例中,如果重新缓冲暂停超过某一阈值,则可以向观看者呈现中间呈现,直到缓冲器接收到足够的数据以继续呈现原始内容的片段。中间呈现可以是诸如在暂停发生之前内容的片段的最后10-15秒。在一些示例中,可以在缓冲器已经接收到足够的数据以继续进行之后播放中间内容,使得观看者在视频播放恢复之前立即看到10-15秒。在一些示例中,可以通知观看者正在呈现这种重述。
在一些示例中,可以部分地使用针对使用各种实验收集的数据的分析来确定排名值。例如,可以进行主观视觉实验,其中,向对象示出所模拟的中断视频流,并且要求他们对该中断视频流中的每一个的良好性/质量进行排名。然后,主观评分可以与上述原理结合使用。在一些示例中,可以使用机器学习模型,例如支持向量机、神经网络或其他。这种模型可以被用于训练系统如何以最优方式来分配排名值。然后,当接收到附加数据的集合时,可以重新计算重新缓冲点数和相关联的排名值。
本文描述的处理系统的一些示例可以包括非瞬变、有形的机器可读介质,该非瞬变、有形的机器可读介质包括可执行代码,当该可执行代码由一个或多个处理器运行时可以使得一个或多个处理器执行如上所述的方法800的操作。可以包括方法800的操作的一些常见形式的机器可读介质是诸如软盘、伸缩盘、硬盘、磁带、任何其他磁性介质、CD-ROM、任何其他光学介质、打孔卡、纸带、任何其他具有孔图案的物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其他存储器芯片或者盒带、和/或处理器或计算机适于从其读取的任何其它介质。
本公开的实施例可以通过优化重新缓冲事件的放置来改善在流式传输媒体环境中利用的服务器和客户端系统。可以基于正在被流式传输的数据、正在被流式传输的数据的内容以及客户端设备所经历的网络条件来确定经优化的放置。经优化的放置可以改善这些计算系统,从而提供经改善的用户体验。
尽管已经示出和描述了说明性实施例,但是在前述公开中设想了各种各样的修改、改变和替换,并且在一些实例中,可以采用实施例的一些特征而没有相应地使用其他特征。本领域普通技术人员将认识到许多变化、替代和修改。应当更宽泛地并且以与本文所公开的实施例的范围一致的方式来解释权利要求。因此,本公开的某些方面陈述了以下编号的条款:
1.一种方法,包括:利用计算系统将表示视频项目的数据接收到缓冲器中;利用计算系统将视频项目从缓冲器输出到显示系统;利用计算系统确定缓冲器的利用率下降到预定阈值以下;响应于确定缓冲器的利用率下降到预定阈值以下,确定在预定时间帧内存在所指定的重新缓冲点;以及响应于确定在预定时间帧内存在所指定的重新缓冲点,利用计算系统在所指定的重新缓冲点处暂停视频项目。
2.根据条款1所述的方法,还包括:在预定时间量之后恢复视频项目,该预定时间量是基于缓冲器接收视频项目的速率的。
3.根据条款1-2中任一项所述的方法,其中,所指定的重新缓冲点对应于以下各项中的一项:镜头变化和场景变化。
4.根据条款1-3中任一项所述的方法,其中,所指定的重新缓冲点对应于其中帧运动值低于预定运动值阈值的帧。
5.根据条款1-4中任一项所述的方法,其中,所指定的重新缓冲点对应于下述点:在该点处,表示视觉属性的值低于预定视觉属性阈值。
6.根据条款1-5中任一项所述的方法,其中,所指定的重新缓冲点是视频项目的对话中的暂停。
7.根据条款1-6中任一项所述的方法,其中,所指定的重新缓冲点是从视频项目内的多个潜在的重新缓冲点中选择的,多个潜在的重新缓冲点具有不同的类型,不同的类型被分配不同的排名值。
8.根据条款7所述的方法,其中,仅在所指定的重新缓冲点在特定排名以上时,才发生暂停视频项目。
9.根据条款1-8中任一项所述的方法,其中,所指定的重新缓冲点是在视频项目被流式传输到计算系统之前在视频项目内被标识的。
10.根据条款1-9中任一项所述的方法,其中,所指定的重新缓冲点是在视频项目的所指定的重新缓冲点所处的部分位于缓冲器内时由计算系统标识的。
11.一种方法,包括:利用计算系统将表示视频项目的第一数据接收到缓冲器中并且接收对用于视频项目的所指定的重新缓冲点的集合进行指示的第二数据;利用计算系统将表示视频项目的第一数据从缓冲器输出到显示系统;确定第一数据被接收的速率比第一数据被从缓冲器输出到显示系统的速率小阈值量;以及响应于确定第一数据被接收的速率比第一数据被输出到显示系统的速率小阈值量,在所指定的重新缓冲点的集合中的一个所指定的重新缓冲点处暂停媒体流。
12.根据条款11所述的方法,其中,所指定的重新缓冲点的集合包括镜头变化、场景变化、具有预定义的视觉特性的场景、以及对话中的暂停。
13.根据条款12所述的方法,其中,不同类型的重新缓冲点被分配不同的排名。
14.根据条款13所述的方法,其中,所指定的重新缓冲点的集合中的一个所指定的重新缓冲点是基于第一数据被接收的速率与第一数据被从缓冲器输出到显示系统的速率之间的差异来选择的。
15.根据条款14所述的方法,其中,从中选择所选择的重新缓冲点的可接受的重新缓冲点的子集随着差异的增加而包括更多类型的重新缓冲点。
16.根据条款13-15中任一项所述的方法,还包括:在重新缓冲点的集合的多个重新缓冲点处暂停媒体流,其中,多个所选择的重新缓冲点中的每个所选择的重新缓冲点处基于被分配给该重新缓冲点的排名值而暂停不同的时间段。
17.根据条款11至16中任一项所述的方法,其中,视频项目被暂停的时间段是基于对缓冲器何时将低于预定值的预测的。
18.一种在流式传输媒体回放中优化重新缓冲事件的放置的方法,该方法包括:利用服务器计算系统来接收流式传输视频项目;执行图像处理以对流式传输视频项目中的多个所指定的重新缓冲点进行标识;将对所标识的多个所指定的重新缓冲点进行表征的信息存储在存储器中;以及经由网络将对所标识的多个所指定的重新缓冲点进行表征的信息传输到客户端计算系统。
19.根据权利要求18所述的方法,其中,对所标识的多个所指定的重新缓冲点进行表征的信息包括以下各项中的至少一项:与所指定的重新缓冲点相关联的时间戳和帧号、以及对与每个所指定的重新缓冲点相关联的重新缓冲点类型进行指示的标签。
20.根据权利要求18所述的方法,还包括:将流式传输视频项目传输到客户端计算系统,其中,传输流式传输视频项目是结合传输对所标识的多个所指定的重新缓冲点进行表征的信息来执行的。

Claims (20)

1.一种用于提供重新缓冲事件的时间放置的方法,所述方法包括:
利用计算系统将表示视频项目的数据接收到缓冲器中;
利用所述计算系统将所述视频项目从所述缓冲器输出到显示系统;
利用所述计算系统基于包括镜头类型、帧运动值、出现在镜头中的角色的面部或镜头中的角色的流行度中的至少一个的标准,为在所述视频项目中标识的多个重新缓冲点中的每个重新缓冲点分配重新缓冲点排名值;
利用所述计算系统确定所述缓冲器的利用率下降到预定阈值以下;
响应于确定所述缓冲器的利用率下降到所述预定阈值以下,利用所述计算系统确定在预定时间帧内在缓冲的视频项目中存在多个重新缓冲点;
根据分配的重新缓冲点排名值选择在所述缓冲的视频项目中的所述多个重新缓冲点中的一个重新缓冲点;以及
利用所述计算系统在所选择的重新缓冲点处暂停所述视频项目。
2.根据权利要求1所述的方法,还包括:在预定时间量之后恢复所述视频项目,所述预定时间量是基于所述缓冲器接收所述视频项目的速率的。
3.根据权利要求1所述的方法,其中,所述所选择的重新缓冲点对应于以下各项中的一项:镜头变化和场景变化。
4.根据权利要求1所述的方法,其中,所述所选择的重新缓冲点对应于其中帧运动值低于预定运动值阈值的帧。
5.根据权利要求1所述的方法,其中,所述所选择的重新缓冲点对应于下述点:在该点处,表示视觉属性的值低于预定视觉属性阈值。
6.根据权利要求1所述的方法,其中,所述所选择的重新缓冲点是所述视频项目内的听觉标记。
7.根据权利要求1所述的方法,其中,所述多个潜在的重新缓冲点具有不同的类型,所述不同的类型被分配不同的排名值。
8.根据权利要求7所述的方法,其中,仅在所述所选择的重新缓冲点在特定排名以上时,才发生暂停所述视频项目。
9.根据权利要求1所述的方法,其中,所述所选择的重新缓冲点是在所述视频项目被流式传输到所述计算系统之前在所述视频项目内被标识的。
10.根据权利要求1所述的方法,其中,所述所选择的重新缓冲点是在所述视频项目的所述所选择的重新缓冲点所处的部分位于所述缓冲器内时由所述计算系统标识的。
11.一种用于提供重新缓冲事件的时间放置的方法,所述方法包括:
利用计算系统将表示视频项目的第一数据接收到缓冲器中并且接收对用于所述视频项目的所指定的重新缓冲点的集合进行指示的第二数据;
利用所述计算系统将表示所述视频项目的第一数据从所述缓冲器输出到显示系统;
利用所述计算系统基于包括镜头类型、帧运动值、出现在镜头中的角色的面部或镜头中的角色的流行度中的至少一个的标准,为在所述视频项目中标识的所指定的重新缓冲点的集合中的每个重新缓冲点分配排名值;
确定所述第一数据被接收的速率比所述第一数据被从所述缓冲器输出到所述显示系统的速率小阈值量;以及
响应于确定所述第一数据被接收的速率比所述第一数据被输出到所述显示系统的速率小所述阈值量,根据分配的重新缓冲点排名值从所述所指定的重新缓冲点的集合中选择在缓冲的视频项目中的多个重新缓冲点中的一个重新缓冲点;以及
在所选择的重新缓冲点处暂停媒体流。
12.根据权利要求11所述的方法,其中,所述所指定的重新缓冲点的集合包括镜头变化、场景变化、具有预定义的视觉特性的场景、以及对话中的暂停。
13.根据权利要求12所述的方法,其中,不同类型的重新缓冲点被分配不同的排名。
14.根据权利要求13所述的方法,其中,所述所指定的重新缓冲点的集合中的一个所指定的重新缓冲点是基于所述第一数据被接收的速率与所述第一数据被从所述缓冲器输出到所述显示系统的速率之间的差异来选择的。
15.根据权利要求14所述的方法,其中,从中选择所选择的重新缓冲点的可接受的重新缓冲点的子集随着所述差异的增加而包括更多类型的重新缓冲点。
16.根据权利要求13所述的方法,还包括:在重新缓冲点的集合的多个重新缓冲点处暂停所述媒体流,其中,多个所选择的重新缓冲点中的每个所选择的重新缓冲点处基于被分配给该重新缓冲点的排名值而暂停不同的时间段。
17.根据权利要求11所述的方法,其中,所述视频项目被暂停的时间段是基于对所述缓冲器何时将低于预定值的预测的。
18.一种在流式传输媒体回放中优化重新缓冲事件的放置的方法,所述方法包括:
利用服务器计算系统来接收流式传输视频项目;
基于包括镜头类型、帧运动值、出现在镜头中的角色的面部或镜头中的角色的流行度中的至少一个的标准,为在所述视频项目中标识的多个指定的重新缓冲点中的每个重新缓冲点分配重新缓冲点排名值;
将对所标识的多个所指定的重新缓冲点进行表征的信息存储在存储器中;以及
经由网络将对所述所标识的多个所指定的重新缓冲点进行表征的信息连同分配的重新缓冲点排名值传输到客户端计算系统,允许所述客户端计算系统根据所述分配的重新缓冲点排名值选择在缓冲的视频项目中的多个重新缓冲点中的一个重新缓冲点并且在所选择的重新缓冲点处暂停所述流式传输视频项目。
19.根据权利要求18所述的方法,其中,对所述所标识的多个所指定的重新缓冲点进行表征的信息包括以下各项中的至少一项:
与所指定的重新缓冲点相关联的时间戳和帧号、以及对与每个所指定的重新缓冲点相关联的重新缓冲点类型进行指示的标签。
20.根据权利要求18所述的方法,还包括:将所述流式传输视频项目传输到所述客户端计算系统,其中,传输所述流式传输视频项目是结合传输对所述所标识的多个所指定的重新缓冲点进行表征的信息来执行的。
CN201880035639.XA 2017-05-31 2018-05-21 用于提供重新缓冲事件的时间放置的方法 Active CN110679153B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/610,053 2017-05-31
US15/610,053 US10425683B2 (en) 2017-05-31 2017-05-31 Temporal placement of a rebuffering event
PCT/US2018/033729 WO2018222435A1 (en) 2017-05-31 2018-05-21 Temporal placement of a rebuffering event

Publications (2)

Publication Number Publication Date
CN110679153A CN110679153A (zh) 2020-01-10
CN110679153B true CN110679153B (zh) 2022-06-07

Family

ID=63586813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880035639.XA Active CN110679153B (zh) 2017-05-31 2018-05-21 用于提供重新缓冲事件的时间放置的方法

Country Status (10)

Country Link
US (5) US10425683B2 (zh)
EP (1) EP3632121A1 (zh)
JP (1) JP7155164B2 (zh)
KR (1) KR102489164B1 (zh)
CN (1) CN110679153B (zh)
AU (1) AU2018275194B2 (zh)
BR (1) BR112019024004A2 (zh)
CA (1) CA3064557C (zh)
MX (1) MX2019014297A (zh)
WO (1) WO2018222435A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10425683B2 (en) 2017-05-31 2019-09-24 Netflix, Inc. Temporal placement of a rebuffering event
US10848819B2 (en) 2018-09-25 2020-11-24 Rovi Guides, Inc. Systems and methods for adjusting buffer size
US11265597B2 (en) * 2018-10-23 2022-03-01 Rovi Guides, Inc. Methods and systems for predictive buffering of related content segments
CN113727386B (zh) * 2021-08-09 2023-06-23 中国联合网络通信集团有限公司 一种通信方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088395A (zh) * 2009-12-02 2011-06-08 杭州华三通信技术有限公司 一种调整媒体数据缓存的方法和装置
CN102883152A (zh) * 2011-07-14 2013-01-16 Nxp股份有限公司 具有适应性的媒体流传输
CN105165096A (zh) * 2013-06-07 2015-12-16 英特尔公司 缓冲-感知无线电资源管理
CN105933624A (zh) * 2016-06-17 2016-09-07 武汉斗鱼网络科技有限公司 一种用于网站视频录制方法及装置
US9584787B1 (en) * 2012-06-08 2017-02-28 Amazon Technologies, Inc. Performance optimization for streaming video
CN107211193A (zh) * 2015-02-07 2017-09-26 王舟 感知体验质量估计驱动的智能适应视频流传输方法和系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002359833A (ja) 2001-03-27 2002-12-13 Hitachi Ltd データ通信システムおよび送信装置、通信端末
EP2919453B1 (en) * 2001-07-19 2019-04-10 British Telecommunications public limited company Video stream switching
JP4310158B2 (ja) 2002-10-08 2009-08-05 キヤノン株式会社 受信装置及び受信方法
US8355434B2 (en) * 2005-01-10 2013-01-15 Qualcomm Incorporated Digital video line-by-line dynamic rate adaptation
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US8504709B2 (en) * 2006-05-03 2013-08-06 Sony Corporation Adaptive streaming buffering
US20080109556A1 (en) * 2006-11-07 2008-05-08 Sony Ericsson Mobile Communications Ab Adaptive insertion of content in streaming media
US20110283014A1 (en) * 2010-05-14 2011-11-17 Rahul Malik Distribution of Multimedia Content over a Network
US20130326551A1 (en) * 2012-05-30 2013-12-05 Debdeep CHATTERJEE Wireless multimedia quality of experience reporting
EP2949123A2 (en) * 2013-02-27 2015-12-02 Apple Inc. Adaptive streaming techniques
US20140282690A1 (en) * 2013-03-12 2014-09-18 International Business Machines Corporation Pre-Defined Streaming Media Buffer Points
US20150312369A1 (en) * 2013-06-26 2015-10-29 Intel Corporation Checkpoints for media buffering
CN103530253B (zh) * 2013-09-30 2016-08-17 华为技术有限公司 集群多全局缓冲池系统、中心节点、计算节点及管理方法
EP2916544A1 (en) * 2014-03-06 2015-09-09 Alcatel Lucent Method to determine the quality of a video stream
US9912604B2 (en) * 2015-07-29 2018-03-06 Nxp Usa, Inc. Reduction of silicon area for ethernet PFC protocol implementation in queue based network processors
US10425683B2 (en) 2017-05-31 2019-09-24 Netflix, Inc. Temporal placement of a rebuffering event

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088395A (zh) * 2009-12-02 2011-06-08 杭州华三通信技术有限公司 一种调整媒体数据缓存的方法和装置
CN102883152A (zh) * 2011-07-14 2013-01-16 Nxp股份有限公司 具有适应性的媒体流传输
US9584787B1 (en) * 2012-06-08 2017-02-28 Amazon Technologies, Inc. Performance optimization for streaming video
CN105165096A (zh) * 2013-06-07 2015-12-16 英特尔公司 缓冲-感知无线电资源管理
CN107211193A (zh) * 2015-02-07 2017-09-26 王舟 感知体验质量估计驱动的智能适应视频流传输方法和系统
CN105933624A (zh) * 2016-06-17 2016-09-07 武汉斗鱼网络科技有限公司 一种用于网站视频录制方法及装置

Also Published As

Publication number Publication date
AU2018275194A1 (en) 2019-11-07
US20180352292A1 (en) 2018-12-06
AU2018275194B2 (en) 2022-10-13
US20240089530A1 (en) 2024-03-14
US20220345776A1 (en) 2022-10-27
CA3064557C (en) 2022-03-29
EP3632121A1 (en) 2020-04-08
KR20200013658A (ko) 2020-02-07
US20200007930A1 (en) 2020-01-02
JP2020522193A (ja) 2020-07-27
KR102489164B1 (ko) 2023-01-13
US11388472B2 (en) 2022-07-12
MX2019014297A (es) 2020-01-27
WO2018222435A1 (en) 2018-12-06
JP7155164B2 (ja) 2022-10-18
US11863814B2 (en) 2024-01-02
US20210289258A1 (en) 2021-09-16
US10425683B2 (en) 2019-09-24
US11025986B2 (en) 2021-06-01
BR112019024004A2 (pt) 2020-06-02
CN110679153A (zh) 2020-01-10
CA3064557A1 (en) 2018-12-06

Similar Documents

Publication Publication Date Title
CN110679153B (zh) 用于提供重新缓冲事件的时间放置的方法
JP6562992B2 (ja) デジタルビデオストリーミングにおけるトリック再生
WO2015031548A1 (en) Audio video playback synchronization for encoded media
CN110692251B (zh) 组合数字视频内容的方法及系统
US20220188357A1 (en) Video generating method and device
US9749550B2 (en) Apparatus and method for tuning an audiovisual system to viewer attention level
EP3525475A1 (en) Electronic device and method for generating summary image of electronic device
US11483535B2 (en) Synchronizing secondary audiovisual content based on frame transitions in streaming content
JP6641230B2 (ja) 映像再生装置及び映像再生方法
Akgul et al. Automated adaptive playback for encoder-adjudicated live sports
US11908340B2 (en) Magnification enhancement of video for visually impaired viewers
US20230276111A1 (en) Video processing
KR20220039114A (ko) 전자 장치 및 그 동작 방법
JP2011182274A (ja) 映像記録再生装置

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