CN112154672B - 一种检索媒体数据的方法、设备及可读存储介质 - Google Patents

一种检索媒体数据的方法、设备及可读存储介质 Download PDF

Info

Publication number
CN112154672B
CN112154672B CN201980031271.4A CN201980031271A CN112154672B CN 112154672 B CN112154672 B CN 112154672B CN 201980031271 A CN201980031271 A CN 201980031271A CN 112154672 B CN112154672 B CN 112154672B
Authority
CN
China
Prior art keywords
media data
time
presentation
segment
period
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
CN201980031271.4A
Other languages
English (en)
Other versions
CN112154672A (zh
Inventor
T.斯托克哈默
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN112154672A publication Critical patent/CN112154672A/zh
Application granted granted Critical
Publication of CN112154672B publication Critical patent/CN112154672B/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/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43074Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on the same device, e.g. of EPG data or interactive icon with a TV program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

一种用于检索媒体数据的示例设备,包括:被配置为存储媒体数据的存储器;以及在电路中实现的一个或多个处理器,其被配置为:确定用于媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的该呈现的时间段的数据;检索包括具有在该时间段之前的呈现时间的媒体数据的、该呈现的第一组分段;检索包括具有该时间段之后的呈现时间的媒体数据的、该呈现的第二组分段;响应于确定清单文件包括指定时间段的数据:省略对具有在该时间段期间的呈现时间的媒体数据的检索;并且根据该确定来延长分段时间线。

Description

一种检索媒体数据的方法、设备及可读存储介质
相关申请的交叉引用
本申请要求2018年5月11日提交的美国临时申请第62/670,370号,以及2019年5月8日提交的美国申请第16/406,947号的优先权,其全部内容通过引用结合于此。
技术领域
本公开涉及编码媒体数据的传输。
背景技术
数字视频能力可以被结合到广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电话、视频电话会议设备等。数字视频设备实现视频压缩技术,诸如由MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4第10部分、高级视频编码(Advanced Video Coding,AVC)、ITU-T H.265(也称为高效视频编码(High Efficiency Video Coding,HEVC))定义的标准中描述的技术,以及这些标准的扩展,以更有效地发送和接收数字视频信息。
在视频数据被编码之后,视频数据可以被封包用于传输或存储。视频数据可以被组装成符合多种标准(诸如基于国际标准化组织(International Organization forStandardization,ISO)的媒体文件格式及其扩展,例如AVC)中的任何一种的视频文件。
发明内容
总的来说,本公开描述了用于信令通知用于网络流式传输服务(诸如,基于HTTP的动态自适配流(Dynamic Adaptive Streaming over HTTP,DASH))的媒体数据的缺失部分的技术。在某些情况下,预期的媒体数据分段可能由于流式传输系统的不同部分的故障而不存在。根据本公开的技术,这种预期的媒体数据可以在分段中作为缺失部分来被信令通知,这允许在接收设备中延长分段时间线。也就是说,接收设备可以检索(retrieve)具有在缺失部分之后的呈现时间的媒体数据,并输出该媒体数据,而不输出缺失部分的期望媒体数据。附加地或替代地,缺失部分可以在清单文件中被信令通知,使得接收设备可以避免请求缺失部分。
在一个示例中,一种检索媒体数据的方法包括:确定用于媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的该呈现的时间段的数据;检索包括具有在该时间段之前的呈现时间的媒体数据的、该呈现的第一组分段;响应于确定清单文件包括指定该时间段的数据:省略具有在该时间段期间的呈现时间的媒体数据的检索;检索包括具有该时间段之后的呈现时间的媒体数据的、该呈现的第二组分段;以及根据该确定来延长分段时间线。
在另一个示例中,一种用于检索媒体数据的设备包括:被配置为存储媒体数据的存储器;以及在电路中实现的一个或多个处理器,其被配置为:确定用于媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的该呈现的时间段的数据;检索包括具有在该时间段之前的呈现时间的媒体数据的、该呈现的第一组分段;检索包括具有该时间段之后的呈现时间的媒体数据的、该呈现的第二组分段;响应于确定清单文件包括指定该时间段的数据:省略具有在该时间段期间的呈现时间的媒体数据的检索;并且根据该确定来延长分段时间线。
在另一个示例中,一种计算机可读存储介质上存储有指令,当该指令被执行时,使得处理器:确定用于媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的该呈现的时间段的数据,;检索包括具有在该时间段之前的呈现时间的媒体数据的、该呈现的第一组分段;检索包括具有该时间段之后的呈现时间的媒体数据的、该呈现的第二组分段;响应于确定清单文件包括指定该时间段的数据:省略具有在该时间段期间的呈现时间的媒体数据的检索;并且根据该确定来延长分段时间线。
在另一个示例中,一种用于检索媒体数据的设备包括:用于确定媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的该呈现的时间段的数据的部件;用于检索包括具有在该时间段之前的呈现时间的媒体数据的、该呈现的第一组分段的部件;用于检索包括具有该时间段之后的呈现时间的媒体数据的、该呈现的第二组分段的部件;用于响应于确定该清单文件包括指定该时间段的数据,省略具有在该时间段期间的呈现时间的媒体数据的检索的部件;以及用于响应于清单文件包括指定时间段的数据的确定,根据该确定来延长分段时间线的部件。
在另一示例中,一种检索媒体数据的方法包括:检索媒体数据的表征的第一分段的至少一部分,该第一分段的至少一部分包括指示第一分段包括缺失部分的数据,该缺失部分表示媒体数据不可用但分段时间线可以被延长的时间段;检索具有在缺失部分之后的呈现时间的第二分段的媒体数据;根据该第一分段的至少一部分的数据来延长分段时间线;以及根据延长的分段时间线输出第二分段的媒体数据。
在另一个示例中,一种用于检索媒体数据的设备包括:被配置为存储媒体数据的存储器;以及在电路中实现的一个或多个处理器,其被配置为:检索媒体数据的表征的第一分段的至少一部分,该第一分段的至少一部分包括指示该第一分段包括缺失部分的数据,该缺失部分表示媒体数据不可用但分段时间线可以延长的时间段;检索具有在缺失部分之后的呈现时间的第二分段的媒体数据;根据第一分段的至少一部分的数据来延长分段时间线;以及根据延长的分段时间线输出第二分段的媒体数据。
在另一个示例中,一种计算机可读存储介质上存储有指令,当该指令被执行时,使得处理器检索媒体数据的表征的第一分段的至少一部分,该第一分段的至少一部分包括指示该第一分段包括缺失部分的数据,该缺失部分表示媒体数据不可用但分段时间线可以被延长的时间段;检索具有在缺失部分之后的呈现时间的第二分段的媒体数据;根据第一分段的至少一部分的数据来延长分段时间线;以及根据延长的分段时间线输出第二分段的媒体数据。
在另一示例中,一种用于检索媒体数据的设备包括:用于检索媒体数据的表征的第一分段的至少一部分的部件,该第一分段的至少一部分包括指示第一分段包括缺失部分的数据,该缺失部分表示媒体数据不可用但分段时间线可以延长的时间段;用于检索在缺失部分之后具有呈现时间的第二分段的媒体数据的部件;用于根据第一分段的至少一部分的数据来延长分段时间线的部件;以及用于根据延长的分段时间线输出第二分段的媒体数据的部件。
一个或多个示例的细节在附图和以下描述中阐述。从说明书和附图以及权利要求书中,其他特征、目的和优点将变得显而易见。
附图说明
图1是示出实现用于在网络上流式传输(stream)媒体数据的技术的示例系统的框图。
图2是更详细地示出检索单元的一组示例组件的框图。
图3是示出示例多媒体内容的元素的概念图。
图4是示出示例视频文件的元素的框图。
图5是示出可能发生一个或多个分段的媒体数据丢失的场景的各种示例的概念图。
图6是示出根据本公开的技术确定流式传输的媒体数据包括缺失部分的示例方法的流程图。
图7是示出根据本公开的技术的用于检索清单文件的方法的示例的流程图,该清单文件包括指示呈现包括缺失部分的数据。
图8是示出了根据本公开的技术的用于检索包括数据的分段的方法的示例的流程图,该数据指示该分段包括缺失部分。
具体实施方式
总的来说,本公开描述了用于信令通知网络流式传输服务的媒体数据的缺失部分的技术,网络流式传输服务诸如基于HTTP的动态自适配流式传输(DASH)、HTTP实时流式传输(HTTP Live Streaming,HLS)、微软平滑流式传输等。
在线性(实时)分布的情况下,由于端到端系统不同部分的故障,预期的分段可能不一定存在。DASH行业论坛第4.8节“实施指南:DASH-IF互操作性要点”(第4版,2016年12月)中给出了用例的良好概述,其可在以下地址处查阅:dashif.org/wp-content/uploads/2016/12/DASH-IF-IOP-v4.0-clean.pdf。
一个这样的示例是编码器/封包器故障。如果编码器/封包器由于某种原因故障,并且冗余编码器/封包器开始输出分段,则在由主编码器/封包器写入原点(origin)的最后分段和由冗余编码器/封包器写入的第一分段之间可能存在一个或多个分段的间隙。
另一个示例是当编码器输出是具有虚拟分段(诸如有线实验室EBP(CableLabEBP)或MPEG-2边界描述符)的MPEG-2TS用户数据报协议(User Datagram Protocol,UDP)多播时。这种方法不使用可靠的多播协议。来自这种部署的UDP封包可能包含七个MPEG-2TS封包,而没有其他数据。当发生丢失时,下游封包器可能不会生产分段。
又一个示例是当不同的表征由不同的编码器/封包器生成时。在这种情况下,当编码器出现故障时,可能只有一个或多个表征存在间隙,但剩余的(多个)表征仍有可用的分段。
由于上述讨论,可能会出现两个示例问题。在一个示例中,如果没有产生分段,则对这样的分段的请求(例如,HTTP GET或部分GET请求)可能会导致错误,诸如HTTP 404错误。在操作中产生广泛的404个错误是不希望的,因为它会给内容传递网络(contentdelivery networks,CDN)带来不必要的操作负担。其次,在没有产生一个分段的情况下,至少在某些情况下,客户端的操作流程可能会被中断,尤其是当使用根据DASH-IF IOP的DASH主实时客户端时。分段的丢失导致不再有事件消息(EMSG)和分段信息可以作为DASH-IFIOP v 4.0,第4.5.3条中的文档分发,以便继续操作。DASH客户端然后可以依赖于MPD更新来继续理解细节(例如,后续媒体数据)。
为了解决这些问题,DASH提供了一种使用分段时间线元素来处理分段丢失的机制。可以根据从先前的S元素计算的S@t的期望值中的差来计算间隙。然而,这种方法的一个潜在问题是,在表征中的丢失分段的情况下,可以使用表征级别的分段时间线,而不是像通常所做的那样在适配集合(adaptation set)级别。在适配集合级别使用分段时间线将应用于所有表征,但如果丢失特定于表征的子集,则这将是不正确的。
表征级别的分段时间线的使用向每个表征添加额外的XML元素。这在分段的持续时间完全相同的情况下很有效,因为大的@r值可以减少要表达所有分段所需的S元素的数量。当使用相似但持续时间不相等的分段时(例如,具有+/-1秒变化的2秒分段),分段时间线可能会很快变得相当大。假设需要对适配集合中的所有表征重复相同信息,并且在大量表征的情况下(例如,14个),这会导致非常大的清单文件,诸如媒体呈现描述(mediapresentation description,MPD),在字节和XML元素的数量两方面。较大的MPD尺寸的负面影响是网络开销。大量XML元素的负面影响是客户端侧的MPD解析时间和内存使用的增加。
本公开的技术通常涉及在适配集合级别使用公共分段时间线(其应用于该适配集合中的所有表征)。与信令通知表征级别的分段时间线元素相比,这允许具有较少的元素的相对较小的MPD尺寸,但是具有对缺失部分的表征级别的指示(例如,分段内或完全缺失的分段)。
附加地或替代地,内容准备设备可以添加虚拟分段来替换缺失的信息。例如,编码器、封装单元、DASH封包器等可以产生被标记的良好标识的分段,使得DASH客户端可以将该分段识别为缺失或不完整的。因此,DASH客户端可以向相应的媒体解码器发送指示该问题的数据,即,媒体数据缺失。作为另一种选择,DASH封包器可以产生一个有效分段,其内容可以代表黑屏或一个或多个错误消息。在这两种情况下,这种添加可能会引起观看者的混淆。因此,如果其他呈现提供了有效的替代,则客户端设备可以避免显示错误消息或黑屏。因此,甚至可以避免这样的分段和媒体部分。为此,DASH客户端可能需要知道虚拟分段或良好标识的错误指示分段。
通常,本公开的技术包括两个方面。第一,在实时情况下,内容生成设备(例如,其封装单元)可以生成并插入不完整或完全缺失的分段,该分段被清楚标记为包含缺失部分(例如,该分段是缺失部分分段),但是允许在没有清单文件更新(诸如MPD更新)的情况下在接收设备中延长时间线。第二,缺失部分的信令通知可以包括在清单文件(诸如MPD)中,使得能够访问MPD的客户端(例如,接收设备)可以利用该信息并避免请求缺失信息的分段。具有“缺失”信息的分段可以指如上所述的分段(例如,不完整或完全缺失并标记为不完整或完全缺失的分段),或者可能指不是所期望的主媒体内容的内容,诸如黑屏或错误消息。
本公开的技术可被应用于符合根据以下文件格式中的任何一种封装的视频数据的视频文件:基于ISO的媒体文件格式、可缩放视频编码(Scalable Video Coding,SVC)文件格式、高级视频编码(Advanced Video Coding,AVC)文件格式、第三代合作伙伴计划(Third Generation Partnership Project,3GPP)文件格式、和/或多视角视频编码(Multiview Video Coding,MVC)文件格式、或其他类似的视频文件格式。
在HTTP流式传输中,经常使用的操作包括HEAD、GET和部分GET。HEAD操作检索与给定统一资源定位符(uniform resource locator,URL)或统一资源名称(uniform resourcename,URN)相关联的文件的报头,而不检索与该URL或URN相关联的有效载荷。GET操作检索与给定的URL或URN相关联的整个文件。部分GET操作接收一个字节范围作为输入参数,并检索文件的连续多个字节,其中该多个字节对应于接收的字节范围。因此,可以为HTTP流式传输提供电影片段,因为部分GET操作可以获取一个或多个单独的电影片段。在一个电影片段中,可以有几个不同轨道的轨道分段。在HTTP流式传输中,媒体呈现可以是客户端可访问的结构化数据集合。客户端可以请求并下载媒体数据信息,以向用户呈现流式传输服务。
在使用HTTP流式传输3GPP数据的示例中,多媒体内容的视频和/或音频数据可以有多种表征。如下所述,不同的表征可以对应于不同的编码特性(例如,视频编码标准的不同配置文件(profile)或级别)、不同的编码标准或编码标准的扩展(例如多视角和/或可缩放扩展)或不同的比特率。这种表征的清单可以在媒体呈现描述(MPD)数据结构中定义。媒体呈现可以对应于可由HTTP流式传输客户端设备访问的结构化数据集合。HTTP流式传输客户端设备可以请求和下载媒体数据信息,以向客户端设备的用户呈现流式传输服务。媒体呈现可以在MPD数据结构中描述,其可以包括MPD的更新。
媒体呈现可能包含一个或多个时间段的序列。每个时间段可能会延长到下一个时间段的开始,或者在最后一个时间段的情况下,延长到媒体呈现的结束。每个时间段可以包含相同媒体内容的一个或多个表征。表征可以是音频、视频、定时文本或其他此类数据的多个可选编码版本中的一个。这些表征可以因编码类型而不同,例如,因视频数据的比特率、分辨率和/或编解码器以及音频数据的比特率、语言和/或编解码器。术语“表征”可用于指代对应于多媒体内容的特定时间段并以特定方式编码的编码音频或视频数据的一部分。
特定时间段的表征可以被分配给由MPD中的属性指示的组,该属性指示该表征所属的适配集合。相同适配集合中的表征通常被认为是彼此的替代,因为客户端设备可以在这些表征之间动态和无缝地切换,以执行带宽适配。例如,特定时间段的视频数据的每个表征可以被分配给相同的适配集合,使得可以选择任何表征进行解码,以呈现对应时间段的多媒体内容的媒体数据,诸如视频数据或音频数据。在一些示例中,一个时间段内的媒体内容可以由来自组0的一个表征(如果存在)或者来自每个非零组的至多一个表征的组合来表示。一个时间段的每个表征的定时数据可以相对于该时间段的开始时间来表示。
表征可以包括一个或多个分段。每个表征可以包括初始化分段,或者表征的每个分段可以是自初始化的。当呈现时,初始化分段可以包含用于访问表征的初始化信息。通常,初始化分段不包含媒体数据。分段可以由标识符唯一地引用,诸如统一资源定位符(URL)、统一资源名称(URN)或统一资源标识符(URI)。MPD可以为每个分段提供标识符。在一些示例中,MPD还可以以范围属性的形式提供字节范围,该范围属性可以对应于可由URL、URN或URI访问的文件内的段的数据。
可以为不同类型的媒体数据的基本上同时的检索选择不同的表征。例如,客户端设备可以选择从中检索分段的音频表征、视频表征和定时文本表征。在一些示例中,客户端设备可以选择特定的适配集合来执行带宽适配。也就是说,客户端设备可以选择包括视频表征的适配集合、包括音频表征的适配集合和/或包括定时文本的适配集合。或者,客户端设备可以为某些类型的媒体选择适配集合(例如,视频),并直接为其他类型媒体(例如,音频和/或定时文本)选择表征。
图1是示出实现用于在网络上流式传输媒体数据的技术的示例系统10的框图。在该示例中,系统10包括内容准备设备20、服务器设备60和客户端设备40。客户端设备40和服务器设备60通过网络74通信耦合,网络74可以包括互联网。在一些示例中,内容准备设备20和服务器设备60也可以通过网络74或另一网络耦合,或者可以直接通信耦合。在一些示例中,内容准备设备20和服务器设备60可以包括相同的设备。
在图1的示例中,内容准备设备20包括音频源22和视频源24。音频源22可以包括例如麦克风,该麦克风产生表示要由音频编码器26编码的捕获的音频数据的电信号。可选地,音频源22可以包括存储先前记录的音频数据的存储介质、诸如计算机化合成器的音频数据生成器或任何其他音频数据源。视频源24可以包括产生要由视频编码器28编码的视频数据的摄像机、用先前记录的视频数据编码的存储介质、诸如计算机图形源的视频数据生成单元或任何其他视频数据源。在所有示例中,内容准备设备20不必通信地耦合到服务器设备60,而是可以将多媒体内容存储到由服务器设备60读取的单独介质中。
原始音频和视频数据可以包括模拟或数字数据。模拟数据可以在被音频编码器26和/或视频编码器28编码之前被数字化。音频源22可以在说话参与者说话时从说话参与者获得音频数据,并且视频源24可以同时获得说话参与者的视频数据。在其他示例中,音频源22可以包括包含存储的音频数据的计算机可读存储介质,并且视频源24可以包括包含存储的视频数据的计算机可读存储介质。以这种方式,本公开中描述的技术可以应用于实时的、流式传输的、即时的音频和视频数据,或者应用于存档的、预先记录的音频和视频数据。
对应于视频帧的音频帧通常是包含由音频源22捕获(或生成)的音频数据的音频帧,同时具有视频帧中包含的视频源24捕获(或生成)的视频数据。例如,当讲话参与者通常通过讲话产生音频数据时,音频源22捕获音频数据,同时视频源24捕获讲话参与者的视频数据,即,当音频源22捕获音频数据时。因此,音频帧可以在时间上对应于一个或多个特定的视频帧。因此,对应于视频帧的音频帧通常对应于同时捕获音频数据和视频数据并且音频帧和视频帧分别包括同时捕获的音频数据和视频数据的情况。
在一些示例中,音频编码器26可以在每个编码的音频帧中编码时间戳,该时间戳表示编码的音频帧的音频数据被记录的时间,并且类似地,视频编码器28可以在每个编码的视频帧中编码时间戳,该时间戳表示编码的视频帧的视频数据被记录的时间。在这样的示例中,对应于视频帧的音频帧可以包括包含时间戳的音频帧和包含相同时间戳的视频帧。内容准备设备20可以包括内部时钟,音频编码器26和/或视频编码器28可以从该内部时钟生成时间戳,或者音频源22和视频源24可以使用该内部时钟将音频和视频数据分别与时间戳相关联。
在一些实例中,音频源22可将对应于记录音频数据的时间的数据发送到音频编码器26,且视频源24可将对应于记录视频数据的时间的数据发送到视频编码器28。在一些示例中,音频编码器26可以对编码的音频数据中的序列标识符进行编码,以指示编码的音频数据的相对时间顺序,但是不必指示记录音频数据的绝对时间,并且类似地,视频编码器28也可以使用序列标识符来指示编码的视频数据的相对时间顺序。类似地,在一些示例中,序列标识符可以被映射或者以其他方式与时间戳相关联。
音频编码器26通常产生编码的音频数据流,而视频编码器28产生编码的视频数据流。每个单独的数据流(无论是音频还是视频)可以被称为基本流。基本流是表征的单个的、数字编码的(可能是压缩的)分量。例如,表征的编码的视频或音频部分可以是基本流。基本流在被封装在视频文件中之前可以被转换成封包化的基本流(packetized elementarystream,PES)。在相同的表征中,流ID可以用于将属于一个基本流的PES封包与另一个PES封包分开。基本流的基本数据单元是封包化的基本流(PES)封包。因此,编码的视频数据通常对应于基本视频流。类似地,音频数据对应于一个或多个相应的基本流。
许多视频编码标准,诸如ITU-T H.264/AVC和即将推出的高效视频编码(HEVC)标准,定义了无错误比特流的语法、语义和解码过程,其中任何一个都符合特定的配置文件或级别。视频编码标准通常不指定编码器,但编码器的任务是保证生成的比特流符合解码器的标准。在视频编码标准的上下文中,“配置文件”对应于应用于它们的算法、特征或工具和约束的子集。例如,如由H.264标准定义的,“配置文件”是由H.264标准指定的整个比特流语法的子集。“级别”对应于解码器资源消耗的限制,诸如解码器存储器和计算,其与图片的分辨率、比特率和块处理速率相关。可以用profile_idc(配置文件指示符)值来信令通知配置文件,同时可以用level_idc(级别指示符)值来信令通知级别。
例如,H.264标准认识到,在由给定配置文件的语法施加的界限内,取决于比特流中的语法元素所采用的值(诸如,解码图片的指定尺寸),仍可能需要编码器和解码器的性能的大变化。H.264标准进一步认识到,在许多应用中,实现能够处理特定配置文件中所有假设的语法使用的解码器既不实际也不经济。因此,264标准将“级别”定义为对比特流中语法元素的值施加的一组特定约束。这些约束可能是对值的简单限制。或者,这些约束可以采取对值的算术组合的约束的形式(例如,图片宽度乘以图片高度乘以每秒解码的图片数量)。H.264标准进一步规定,各个实现可以支持针对每个支持的配置文件的不同级别。
符合配置文件的解码器通常支持配置文件中定义的所有特征。例如,作为一种编码特征,B图片编码在H.264/AVC的基线配置文件中不受支持,但在H.264/AVC的其他配置文件中受支持。符合级别的解码器应该能够解码任何不需要超出级别中定义的限制的资源的比特流。配置文件和级别的定义可能有助于解释。例如,在视频传输期间,可以为整个传输会话协商和同意一对配置文件和级别定义。更具体地说,在H.264/AVC中,级别可以定义对需要处理的宏块数量、解码的图片缓冲器(decoded picture buffer,DPB)尺寸、编码图片缓冲器(coded picture buffer,CPB)尺寸、垂直运动矢量范围、每两个连续MB(macroblock,宏块)的最大运动矢量数量以及B块是否可以具有小于8×8像素的子宏块分区的限制。以这种方式,解码器可以确定解码器是否能够正确解码比特流。
在图1的示例中,内容准备设备20的封装单元30从视频编码器28接收包括编码的视频数据的基本流,并从音频编码器26接收包括编码的音频数据的基本流。在一些示例中,视频编码器28和音频编码器26可以各自包括用于从编码的数据形成PES封包的封包器。在其他示例中,视频编码器28和音频编码器26可以各自与各自的封包器接口,用于从编码的数据形成PES封包。在其他示例中,封装单元30可以包括用于从编码的音频和视频数据形成PES封包的封包器。
视频编码器28可以以各种方式对多媒体内容的视频数据进行编码,以产生具有各种比特率和各种特性(诸如像素分辨率、帧速率、符合各种编码标准、符合各种配置文件和/或各种编码标准的配置文件级别、具有一个或多个视图的表征(例如,对于二维或三维回放)或其他这样的特性)的多媒体内容的不同表征。在本公开中使用的表征可以包括音频数据、视频数据、文本数据(例如,对于隐藏字幕)或其他这样的数据。该表征可以包括基本流,诸如音频基本流或视频基本流。每个PES封包可以包括标识该PES封包所属的基本流的流标识。封装单元30负责将基本流组装成各种表征的视频文件(例如,分段)。
封装单元30从音频编码器26和视频编码器28接收表征的基本流的PES封包,并从PES封包形成相应的网络抽象层(network abstraction layer,NAL)单元。编码的视频分段可以被组织成NAL单元,其提供“网络友好”的视频表征,用于解决诸如视频电话、存储、广播或流式传输等应用。NAL单元可分类为视频编码层(Video Coding Layer,VCL)NAL单元和非VCL NAL单元。VCL单元可以包含核心压缩引擎,并且可以包括块、宏块和/或片级数据。其他NAL单元可能是非VCL NAL单元。在一些示例中,在一个时间实例中的编码图片,通常呈现为主要编码图片,可以包含在访问单元中,该访问单元可以包括一个或多个NAL单元。
非VCL NAL单元可能包括参数集NAL单元和SEI NAL单元等。参数集可以包含序列级报头信息(在序列参数集(sequence parameter set,SPS)中)和不经常改变的图片级报头信息(在图片参数集(picture parameter set,PPS)中)。利用参数集(例如,PPS和SPS),不经常改变的信息不需要为每个序列或图片重复;因此,可以提高编码效率。此外,参数集的使用可以实现重要报头信息的带外传输,避免了对用于错误恢复的冗余传输的需要。在带外传输示例中,参数集NAL单元可以在与诸如SEI NAL单元的其他NAL单元不同的信道上传输。
补充增强信息(Supplemental Enhancement Information,SEI)可能包含对来自VCL NAL单元的编码的图片样本进行解码所不需要的信息,但可能有助于与解码、显示、错误恢复和其他目的相关的过程。SEI消息可能包含在非VCL NAL单元中。SEI消息是一些标准规范的标准部分,因此对于符合标准的解码器实现并不总是强制性的。SEI消息可以是序列级SEI消息或图片级SEI消息。一些序列级信息可能包含在SEI消息中,诸如SVC示例中的可缩放性信息SEI消息和MVC中的视图可缩放性信息SEI消息。这些示例SEI消息可以传达关于例如,操作点的提取和操作点的特性的信息。此外,封装单元30可以形成清单文件,诸如描述表征的特性的媒体呈现描述符(MPD)。封装单元30可以根据可延长标记语言(XML)来格式化MPD。
封装单元30可将多媒体内容的一个或多个表征的数据连同清单文件(例如,MPD)一起提供到输出接口32。输出接口32可以包括网络接口或用于写入存储介质的接口,诸如通用串行总线(USB)接口、CD或DVD写入器或刻录机、到磁性或闪存存储介质的接口、或用于存储或流式传输介质数据的其他接口。封装单元30可以向输出接口32提供多媒体内容的每个表征的数据,输出接口32可以经由网络传输或存储介质向服务器设备60发送数据。在图1的示例中,服务器设备60包括存储各种多媒体内容64的存储介质62,每个多媒体内容64包括各自的清单文件66和一个或多个表征68A-68N(表征68)。在一些示例中,输出接口32也可以直接向网络74发送数据。
在一些情况下,诸如实时流式传输,内容准备设备20的各种组件可能会遇到错误,如上所述。各种错误情况在如上所述的DASH-IF IOP v.4的第4.8节中讨论。封装单元30可以检测这种错误,并作为响应执行本公开的各种技术。例如,封装单元30可以生成被标记为缺失部分分段的小分段。附加地或替代地,封装单元30可以生成清单文件66,以包括指示缺失部分分段的信息,使得客户端设备40可以使用清单文件66的信息来避免请求缺失部分分段,以避免例如网络74的浪费带宽。
在一些示例中,表征68可以被分成适配集合。也就是说,表征68的各种子集可以包括相应的共同特性集,诸如编解码器、配置文件和级别、分辨率、视图数量、分段的文件格式、可以标识语言的文本类型信息或要与表征一起显示的文本的其他特性和/或要解码和呈现的音频数据(例如,通过扬声器)、可以描述相机角度的相机角度信息或用于适配集合中的表征的场景的真实世界相机视角、描述特定观众的内容适合性的分级信息等。
清单文件66可以包括指示对应于特定适配集合的表征68的子集的数据,以及适配集合的共同特性。清单文件66还可以包括代表个体特性的数据,诸如比特率,以用于适配集合的个体表征。以这种方式,适配集合可以提供简化的网络带宽适配。可以使用清单文件66的适配集合元素的子元素来指示适配集合中的表征。
服务器设备60包括请求处理单元70和网络接口72。在一些示例中,服务器设备60可以包括多个网络接口。此外,服务器设备60的任何或所有特征可以在内容递送网络的其他设备上实现,诸如路由器、网桥、代理设备、交换机或其他设备。在一些示例中,内容递送网络的中间设备可以缓存多媒体内容64的数据,并且包括基本上与服务器设备60的组件相符合的组件。通常,网络接口72被配置为经由网络74发送和接收数据。
请求处理单元70被配置为从诸如客户端设备40的客户端设备接收对存储介质62的数据的网络请求。例如,请求处理单元70可以实现超文本传输协议(HTTP)版本1.1,如在RFC 2616中菲尔丁等人的“超文本传输协议-HTTP/1.1”(网络工作组,IETF,1999年6月)中所述。也就是说,请求处理单元70可以被配置为接收HTTP GET或部分GET请求,并响应于该请求提供多媒体内容64的数据。这些请求可以指定表征68中的一个的分段,例如,使用该分段的URL。在一些示例中,请求还可以指定分段的一个或多个字节范围,因此包括部分GET请求。请求处理单元70还可以被配置为服务于HTTP HEAD请求,以提供表征68中的一个的分段的报头数据。在任何情况下,请求处理单元70可以被配置为处理请求,以向请求设备(诸如客户端设备40)提供所请求的数据。
附加地或可替换地,请求处理单元70可以被配置为经由广播或多播协议(诸如eMBMS)来传送媒体数据。内容准备设备20可以以与所描述的基本相同的方式创建DASH分段和/或子分段,但是服务器设备60可以使用eMBMS或另一种广播或多播网络传输协议来传送这些分段或子分段。例如,请求处理单元70可以被配置为从客户端设备40接收多播组加入请求。也就是说,服务器设备60可以向包括客户端设备40在内的客户端设备通告与多播组相关联的互联网协议(IP)地址,该多播组与特定媒体内容(例如,实时事件的广播)相关联。客户端设备40接着又可以提交加入多播组的请求。该请求可以通过网络74(例如,组成网络74的路由器)传播,使得路由器将去往与多播组相关联的IP地址的流量定向到订阅客户端设备,诸如客户端设备40。
如图1的示例所示,多媒体内容64包括清单文件66,清单文件66可以对应于媒体呈现描述(MPD)。清单文件66可以包含不同替代表征68(例如,具有不同质量的视频服务)的描述,并且描述可以包括,例如,编解码器信息、配置文件值、级别值、比特率以及表征68的其他描述性特性。客户端设备40可以检索媒体呈现的MPD,以确定如何访问表征68的分段。
特别地,检索单元52可以检索客户端设备40的配置数据(未示出),以确定视频解码器48的解码能力和视频输出44的渲染(rendering)能力。配置数据还可以包括由客户端设备40的用户选择的语言偏好、对应于由客户端设备40的用户设置的深度偏好的一个或多个相机视角、和/或由客户端设备40的用户选择的评级偏好中的任何一个或全部。检索单元52可以包括,例如,被配置为提交HTTP GET和部分GET请求的网络浏览器或媒体客户端。检索单元52可以对应于由客户端设备40的一个或多个处理器或处理单元(未示出)执行的软件指令。在一些示例中,关于检索单元52描述的全部或部分功能可以在硬件、硬件和软件的组合和/或固件中实现,其中可以提供必要的硬件来执行软件或固件的指令。
检索单元52可以将客户端设备40的解码和渲染能力与由清单文件66的信息指示的表征68的特性进行比较。检索单元52最初可以检索清单文件66的至少一部分,以确定表征68的特性。例如,检索单元52可以请求描述一个或多个适配集合的特性的清单文件66的一部分。检索单元52可以选择表征68的子集(例如,适配集合),其具有可由客户端设备40的编码和渲染能力满足的特性。检索单元52然后可以确定适配集合中的表征的比特率,确定当前可用的网络带宽量,并从具有可由网络带宽满足的比特率的表征中的一个中检索分段。
通常,较高比特率的表征可以产生较高质量的视频回放,而当可用网络带宽减少时,较低比特率的表征可以提供足够质量的视频回放。因此,当可用网络带宽相对较高时,检索单元52可以从相对较高比特率的表征中检索数据,而当可用网络带宽较低时,检索单元52可以从相对较低比特率的表征中检索数据。以这种方式,客户端设备40可以在网络74上流式传输多媒体数据,同时还适配网络74的网络带宽可用性的变化。
附加地或可替换地,检索单元52可以被配置为根据广播或多播网络协议,诸如eMBMS或IP多播来接收数据。在这样的示例中,检索单元52可以提交加入与特定媒体内容相关联的多播网络组的请求。在加入多播组之后,检索单元52可以接收多播组的数据,而无需向服务器设备60或内容准备设备20发出进一步的请求。检索单元52可以在不再需要多播组的数据时提交离开多播组的请求,例如,停止播放或将频道切换到不同的多播组。
如上所述,客户端设备40的检索单元52可以确定清单文件66指示一个或多个表征68的一个或多个分段是缺失部分分段。作为响应,检索单元52可以避免检索清单文件66所指示的缺失部分分段。附加地或替代地,检索单元52可以确定检索的分段被标记为缺失部分分段。检索单元52仍然可以延长回放时间线,而不接收对清单文件66的更新。
在一些示例中,内容准备设备20、服务器设备60和客户端设备40可以根据根据如下所述的对DASH的修改来配置:
5.3.9.7缺失部分信令通知
5.3.9.7.1概述
在某些情况下,表征或适配集合的时间连续部分没有被正确呈现,例如由于内容生成中的错误。然而,应该至少在DASH级别上适当地提供内容,例如,通过添加缺失部分分段,或者通过包括被编码但不表示实际主媒体内容的内容。
缺失部分元素可以能够表示DASH客户端应该避免的部分,例如,通过切换到不包含这种缺失部分的表征。
缺失部分元素应包含一个S元素列表,该S元素列表的每个元素描述一系列连续的缺失部分。S元素包含可选的@d属性和@t时间属性,其中@d属性指定缺失部分的MPD持续时间,@t时间属性通过用@t属性的值减去@presentationTimeOffset的值来指定缺失部分的MPD开始时间。
5.3.9.7.2的表XX中提供了缺失部分的属性和元素的语义。分段时间线的XML语法在5.3.9.7.3中提供。
5.3.9.7.2语义
表XX——分段时间线元素的语义
Figure SMS_1
Figure SMS_2
5.3.9.7.3 XML语法
<!-分段时间线->
<xs:复杂类型名称=“缺失部分类型”>
<xs:序列>
<xs:元素名称=“S”最小发生数=“1”最大发生数=“未绑定”>
<xs:复杂类型>
<xs:属性名称=“t”类型=“xs:无符号长整型”使用=“要求的”/>
<xs:属性名称=“d”类型=“xs:无符号长整型”/>
<xs:任何属性名称空间=“##其他”过程内容=“lax”/>
</xs:复杂类型>
</xs:元素>
<xs:任何名称空间=“##其他”过程内容=“lax”最小发生数=“0”最大发生数=“无界”/>
</xs:序列>
<xs:任何属性名称空间=“##其他”过程内容=“lax”/>
</xs:复杂类型>
因此,内容准备设备20和/或服务器设备60可以信令通知清单文件66的缺失部分元素,清单文件66可以是MPD。类似地,客户端设备40的检索单元52可以使用清单文件66的缺失部分元素来确定一个或多个表征68中不将被检索的一个或多个分段(或分段的一部分)。也就是说,其分段或部分可以对应于没有媒体数据可用的回放时间。
附加地或替代地,在一些示例中,内容准备设备20、服务器设备60和客户端设备40可以根据如下所述的对DASH的修改来配置。
以下是针对MPEG-DASH ISO/IEC 23009-1的建议规范文本,根据该规范文本,可以配置内容准备设备20、服务器设备60和客户端设备40可以被配置为:
即使缺失部分分段中的数据可能不存在或仅部分存在,也将为了延长分段时间线的目的来定义该缺失部分分段。该分段可能不包含任何媒体数据,即,可能既不存在电影片段报头,也不存在媒体数据(mdat)盒。它也可能只包含数据的一个子集。如果该分段不是有效的媒体分段,并且内容提供商希望DASH客户端信令通知该时间段没有媒体,则该分段应包括主要标签(band)“缺失(miss)”。该分段还可以包含“emsg”,例如,以指示MPD有效期到期。此外,对于缺失部分分段,以下内容应成立:
·应存在单个分段索引(“sidx”)盒,并且分段索引的值应描述分段时间线的准确定时,即:
o“sidx”盒中的最早_呈现_时间(earliest_presentation_time)应为在MPD的分段时间线中信令通知的S@t的值。
o“sidx”盒中的子分段_持续时间(Subsegment_duration)字段应为在MPD的分段时间线中信令通知的S@d的值。
注意:通过强制实施这些值,即使不存在实际的媒体数据,DASH客户端也能够适当地延长分段时间线。
以下是针对DASH-IF IOP的建议规范文本,根据该规范文本,可以配置内容准备设备20、服务器设备60和客户端设备40:
如果DASH客户端收到具有主要标签“缺失”的分段,则DASH客户端应使用分段索引(“sidx”)盒来延长时间线。如果分段不包含分段索引中指示的所有媒体,则DASH客户端应向媒体解码器通知缺失信息。
以这种方式,内容准备设备20和/或服务器设备60可以在包括缺失部分的分段的分段索引(SIDX)盒中信令通知数据,该数据指示缺失部分的最早呈现时间和持续时间。类似地,客户端设备40可以基于SIDX盒的信息来确定分段时间线将被延长。此外,在一些示例中,客户端设备40可以检索缺失部分的替代媒体数据,或者确定不为缺失部分播放媒体数据。替代媒体数据可以是例如黑屏、一个或多个错误消息等。
网络接口54可以接收并向检索单元52提供所选表征的分段的数据,检索单元52接着又可以向解封装单元50提供该分段。解封装单元50可以将视频文件的元素解封装成组成PES流,对PES流解封包以检索编码的数据,并将编码的数据发送到音频解码器46或视频解码器48,这取决于编码的数据是音频流还是视频流的一部分(如流的PES封包报头所指示的)。音频解码器46将编码的音频数据进行解码并将解码的音频数据发送到音频输出42,而视频解码器48对编码的视频数据进行解码并将解码的视频数据发送到视频输出44,该解码的视频数据可以包括流的多个视图。
视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、检索单元52和解封装单元50每一个都可以被实现为多种合适的处理电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑电路、软件、硬件、固件或其任意组合。视频编码器28和视频解码器48中的每一个可以被包括在一个或多个编码器或解码器中,其中任一个可以被集成为组合视频编码器/解码器(combined video encoder/decoder,CODEC)的一部分。同样,音频编码器26和音频解码器46中的每一个可以被包括在一个或多个编码器或解码器中,其中的任一个可以被集成为组合CODEC的一部分。包括视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、检索单元52和/或解封装单元50的装置可以包括集成电路、微处理器和/或无线通信设备,诸如蜂窝电话。
客户端设备40、服务器设备60和/或内容准备设备20可以被配置为根据本公开内容的技术来操作。出于举例的目的,本公开内容针对客户端设备40和服务器设备60来描述这些技术。但是,应当理解的是,作为服务器设备60的替代(或者除服务器设备60之外),内容准备设备20也可以被配置为执行这些技术。
封装单元30可以形成NAL单元,其包括标识NAL单元所属的节目的报头以及有效载荷,例如音频数据、视频数据或者描述NAL单元所对应的传输或节目流的数据。例如,在H.264/AVC中,NAL单元包括1字节的报头和变化尺寸的有效载荷。在其有效载荷中包括视频数据的NAL单元可以包括各种粒度水平的视频数据。例如,NAL单元可以包括视频数据块、多个块、视频数据切片或者视频数据的整个图片。封装单元30可以从视频编码器28接收具有基本流的PES封包形式的经编码的视频数据。封装单元30可以将每个基本流与相应的节目相关联。
封装单元30还可以根据多个NAL单元来组装访问单元。通常,访问单元可以包括用于表示视频数据帧的一个或多个NAL单元,以及对应于该帧的音频数据(当该音频数据可用时)。访问单元通常包括针对一个输出时间实例的所有NAL单元,例如,针对一个时间实例的所有音频和视频数据。例如,如果每个视图具有每秒20帧(fps)的帧速率,则每个时间实例可以对应于0.05秒的时间间隔。在该时间间隔期间,可以同时渲染针对相同访问单元(相同时间实例)的所有视图的特定帧。在一个示例中,访问单元可以包括一个时间实例中的编码图片,其可以被呈现为主要的编码图片。
因此,访问单元可以包括共同时间实例的所有音频帧和视频帧,例如对应于时间X的所有视图。本公开还将特定视图的编码图片称为“视图分量”。即,视图分量可以包括针对特定时间处的特定视图的编码图片(或帧)。因此,访问单元可以定义为包括共同时间实例的所有视图分量。访问单元的解码顺序不必与输出顺序或显示顺序相同。
媒体呈现可以包括媒体呈现描述(MPD),其可以包含对不同的替代表征(例如,具有不同质量的视频服务)的描述,并且该描述可以包括例如编解码器信息、配置文件值和级别值。MPD是清单文件(诸如,清单文件66)的一个示例。客户端设备40可以检索媒体呈现的MPD,以确定如何访问各种呈现的电影片段。电影片段可以位于视频文件的电影片段盒(moof盒)中。
清单文件66(其可以包括例如MPD)可以对表征68的分段的可用性进行通告。即,MPD可以包括对表征68中的一个的第一分段变为可用的挂钟时间进行指示的信息,以及对表征68内的分段的持续时间进行指示的信息。以此方式,客户端设备40的获取单元52可以基于在特定分段之前的分段的开始时间以及持续时间来确定每个分段何时可用。
在封装单元30已经基于接收到的数据将NAL单元和/或访问单元组装成视频文件之后,封装单元30将视频文件传递给输出接口32以用于输出。在一些示例中,封装单元30可以本地地存储视频文件或者经由输出接口32将视频文件发送给远程服务器,而不是直接地将视频文件发送给客户端设备40。输出接口32可以包括例如发射机、收发机、用于向计算机可读介质(例如,光学驱动器、磁性介质驱动器(例如,软盘驱动器))写入数据的设备、通用串行总线(USB)端口、网络接口或者其它输出接口。输出接口32将视频文件输出到计算机可读介质34,诸如传输信号、磁性介质、光学介质、存储器、闪速驱动器或者其它计算机可读介质。
网络接口54可以经由网络74接收NAL单元或接入单元,并且经由检索单元52将NAL单元或接入单元提供给解封装单元50。解封装单元50可以将视频文件的元素解封装成组成PES流,对PES流解封包以检索编码的数据,并将编码的数据发送到音频解码器46或视频解码器48,这取决于编码的数据是音频流还是视频流的一部分,例如,如流的PES封包报头所指示的。音频解码器46将编码的音频数据进行解码并将解码的音频数据发送到音频输出42,而视频解码器48将编码的视频数据进行解码并将解码的视频数据发送到视频输出44,该解码的视频数据可以包括流的多个视图。
图2是更详细地示出图1的检索单元52的一组示例组件的框图。在该示例中,检索单元52包括eMBMS中间件单元100、DASH客户端110和媒体应用112。
在该示例中,eMBMS中间件单元100还包括eMBMS接收单元106、高速缓存104和代理服务器单元102。在这个示例中,eMBMS接收单元106被配置为经由eMBMS接收数据,例如根据在Paila等人的“单向传输文件递送(File Delivery over Unidirectional Transport,FLUTE)”(网络工作组,RFC 6726,11月,其可以在http://tools.ietf.org/html/rfc6726获得)中描述的单向传输文件递送。也就是说,eMBMS接收单元106可以经由广播,从例如充当广播/多播服务中心(broadcast/multicast service center,BM-SC)的服务器设备60接收文件。
当eMBMS中间件单元100接收文件数据时,eMBMS中间件单元可以将接收的数据存储在高速缓存104中。高速缓存104可以包括计算机可读存储介质,诸如闪存、硬盘、RAM或任何其他合适的存储介质。
代理服务器单元102可以充当DASH客户端110的服务器。例如,代理服务器单元102可以向DASH客户端110提供MPD文件或其他清单文件。代理服务器单元102可以通告MPD文件中的分段的可用时间,以及可以从中检索分段的超链接。这些超链接可以包括对应于客户端设备40的本地主机地址前缀(例如,用于IPv4的127.0.0.1)。以这种方式,DASH客户端110可以使用HTTP GET或部分GET请求从代理服务器单元102请求分段。例如,对于可从链接http://127.0.0.1/rep1/seg3获得的分段,DASH客户端110可以构造包括对http://127.0.0.1/rep1/seg3的请求的HTTP GET请求,并将该请求提交给代理服务器单元102。代理服务器单元102可以从高速缓存104中检索所请求的数据,并响应于这样的请求向DASH客户端110提供数据。
图3是示出了示例多媒体内容120的元素的概念图。多媒体内容120可以与多媒体内容64(图1)或存储在存储介质62中的另一个多媒体内容相对应。在图3的示例中,多媒体内容120包括媒体呈现描述(MPD)122以及多个表征124A–124N(表征124)。表征124A包括可选的报头数据126和分段128A–128N(分段128),而表征124N包括可选的报头数据130和分段132A–132N(分段132)。为了方便起见,使用字母N来标示表征124中的每个中的最后电影片段。在一些示例中,在表征124之间可能存在不同数量的电影片段。
MPD 122可以包括与表征124分离的数据结构。MPD 122可以对应于图1的清单文件66。同样地,表征124可以对应于图1的表征68。一般来说,MPD 122可以包括通常描述表征124的特性的数据,诸如编码和渲染特性、适配集合、MPD 122对应的配置文件、文本类型信息、相机角度信息、评级信息、特技模式信息(例如,指示包括时间子序列的表征的信息),和/或用于检索远程时间段的信息(例如,用于在回放期间将目标广告插入媒体内容)。
报头数据126(当存在时),可以描述分段128的特性,例如,随机接入点(randomaccess point,RAP,也称为流接入点(stream access points,SAP))的时间位置、分段128中的哪个分段包括随机接入点、分段128内随机接入点的字节偏移、分段128的统一资源定位符(URL)或分段128的其他方面。报头数据130(当存在时),它可以描述分段132的类似特性。附加地或替代地,这样的特性可以完全包括在MPD 122中。
分段128、132包括一个或多个编码的视频样本,每个样本可以包括视频数据的帧或切片。分段128的每个编码的视频样本可以具有相似的特性,例如,高度、宽度和带宽要求。这种特性可以由MPD 122的数据来描述,尽管这种数据没有在图3的示例中示出。MPD122可以包括由3GPP规范所描述的特性,其中添加了在本公开中描述的任何或所有信令通知的信息。
分段128、132中的每一个可以与唯一的统一资源定位符(URI)相关联。因此,分段128、132中的每一个都可以使用诸如DASH的流式传输网络协议独立地检索。以这种方式,诸如客户端设备40的目的地设备可以使用HTTP GET请求来检索分段128或132。在一些示例中,客户端设备40可以使用HTTP部分GET请求来检索分段128或132的特定字节范围。
根据本公开的技术,MPD 122可以包括如上所述的缺失部分元素,以指示分段128和/或132中的一个或多个是缺失部分分段。例如,如果分段128B是缺失部分分段,则客户端设备40可替换地检索分段132B,分段132B具有与表征124A的缺失部分(即,分段128B)重叠的回放时间。在该示例中,分段128B和132B包括具有相同回放时间(在此也称为呈现时间)的媒体数据。因此,当分段128B包括缺失部分时(例如,分段128B的一些或全部媒体数据缺失并且不能被检索),分段132B的媒体数据可以充当分段128B的替换媒体数据。例如,客户端设备40可以基于表征124N和表征124A在相同的适配集合中来选择分段132B作为分段128B的替换分段。
图4是示出示例视频文件150的元素的框图,该示例视频文件150可以对应于表征的分段,诸如图3的分段128、132中的一个)。分段128、132中的每一个可以包括基本上符合图4的示例中所示的数据排列的数据。可以说视频文件150封装了分段。如上所述,根据ISO基本媒体文件格式及其扩展的视频文件将数据存储在一系列对象(称为“盒”)中。在图4的示例中,视频文件150包括文件类型(file type,FTYP)盒152、电影(movie,MOOV)盒154、分段索引(segment index,SIDX)盒162、电影片段(movie fragment,MOOF)盒164和电影片段随机访问(movie fragment random access,MFRA)盒166。虽然图4表示视频文件的示例,应当理解,其他媒体文件可以包括根据基于ISO的媒体文件格式及其扩展的其他结构类似于视频文件150的数据类型的媒体数据(例如,音频数据、定时文本数据等)。
文件类型(FTYP)盒152通常描述视频文件150的文件类型。文件类型盒152可以包括标识描述视频文件150的最佳用途的规范的数据。文件类型盒152可替换地置于MOOV盒154、电影片段盒164和/或MFRA盒166之前。
在一些示例中,诸如视频文件150的分段可以包括在FTYP盒152之前的MPD更新盒(未示出)。MPD更新盒可以包括指示对应于包括视频文件150的表征的MPD将被更新的信息,以及用于更新MPD的信息。例如,MPD更新盒可以为用于更新MPD的资源提供URI或URL。作为另一个示例,MPD更新盒可以包括用于更新MPD的数据。在一些示例中,MPD更新盒可以紧随视频文件150的分段类型(STYP)盒(未示出),其中STYP盒可以定义视频文件150的分段类型。
在图4的示例中,MOOV盒154包括电影报头(MVHD)盒156、缺失部分(MS)盒157、轨道(TRAK)盒158和一个或多个电影延长(movie extend,MVEX)盒160。通常,MVHD盒156可以描述视频文件150的一般特性。例如,MVHD盒156可以包括描述视频文件150最初创建的时间、视频文件150最后被修改的时间、视频文件150的时间刻度、视频文件150的回放持续时间的数据,或者一般描述视频文件150的其他数据。
MS盒157可以包括指示视频文件150的一个或多个部分没有被正确呈现的信息,例如由于内容生成中的错误。MS盒157允许诸如客户端设备40的客户端设备避开这样的部分,例如通过切换到不包括这种缺失部分的表征。MS盒157可以包括S元素的列表,每个S元素可以描述一系列连续的缺失部分。S元素可以包含可选的@d属性和@t时间属性,@d属性指定缺失部分的MPD持续时间,@t属性的值可以减去@presentationTimeOffset的值,以指定缺失部分的MPD开始时间。MS盒157可以被包括在视频文件150的分段时间线元素(未示出)中,该分段时间线元素可以被包括在MOOV盒154中。
TRAK盒158可以包括视频文件150的轨道的数据。TRAK盒158可以包括描述对应于TRAK盒158的轨道特性的轨道报头(track header,TKHD)盒。在一些示例中,TRAK盒158可以包括编码的视频图片,而在其他示例中,轨道的编码的视频图片可以包括在电影片段164中,电影片段164可以被TRAK盒158和/或SIDX盒162的数据引用。
在一些示例中,视频文件150可以包括一个以上的轨道。因此,MOOV盒154可以包括与视频文件150中的轨道数量相等的多个TRAK盒。TRAK盒158可以描述视频文件150的相应轨道的特性。例如,TRAK盒158可以描述相应轨道的时间和/或空间信息。当封装单元30(图3)在视频文件(例如,视频文件100)中包括参数集轨道时,类似于MOOV盒104的TRAK盒108的TRAK盒可描述参数集轨道的特性。封装单元30可以信令通知在描述参数集轨道的TRAK盒内的参数集轨道中的序列级SEI消息的存在。
MVEX盒160可以描述相应电影片段164的特性,例如,以信令通知视频文件150包括电影片段164,以及包含在MOOV盒154中的视频数据(如果有的话)。在流式传输视频数据的上下文中,编码的视频图片可以包括在电影片段164中,而不是在MOOV盒154中。因此,所有编码的视频样本可以被包括在电影片段164中,而不是在MOOV盒154中。
MOOV盒154可以包括与视频文件150中的电影片段164的数量相等的多个MVEX盒160。每个MVEX盒160可以描述对应的一个电影片段164的特性。例如,每个MVEX盒可以包括描述对应的一个电影片段164的时间持续时间的电影延长报头盒(MEHD)盒。
如上所述,封装单元30可以在不包括实际编码的视频数据的视频样本中存储序列数据集。视频样本通常可以对应于访问单元,该访问单元是特定时间实例的编码图片的表征。在AVC的上下文中,编码图片包括一个或多个VCL NAL单元,其包含构建访问单元和其他相关联的非VCL NAL单元的所有像素的信息,例如SEI消息。因此,封装单元30可以在电影片段164中的一个中包括序列数据集,该序列数据集可以包括序列级SEI消息。封装单元30还可以信令通知序列数据集和/或序列级SEI消息的存在,该序列数据集和/或序列级SEI消息存在于与电影片段164中的一个相对应的MVEX盒160中的一个内的电影片段164中的一个中。
SIDX盒162是视频文件150的可选元素。也就是说,符合3GPP文件格式或其他这样的文件格式的视频文件不一定包括SIDX盒162。根据3GPP文件格式的示例,可使用SIDX盒来识别分段的子分段(例如,包含在视频文件150中的分段)。3GPP文件格式将子分段定义为“具有相应(多个)媒体数据盒的一个或多个连续电影片段盒的自包含集合,并且包含由电影片段盒引用的数据的媒体数据盒必须在该电影片段盒之后、且在包含关于相同轨道的信息的下一个电影片段盒之前。3GPP文件格式还指示SIDX盒“包含对由该盒记录的(子)分段的子分段的一系列引用。引用的子分段在呈现时间上是连续的。同样,分段索引盒引用的字节在分段内总是连续的。所引用的尺寸给出了所引用的材料中字节数的计数。
SIDX盒162通常提供表示视频文件150中包括的分段的一个或多个子分段的信息。例如,这样的信息可以包括子分段开始和/或结束的回放时间、子分段的字节偏移、子分段是否包括(例如,以流接入点开始)流接入点(SAP),SAP的类型(例如,SAP是否时瞬时解码器刷新(instantaneous decoder refresh,IDR)图片、清除随机访问(clean random access,CRA)图片、断链访问(broken link access,BLA)图片等)、子分段中SAP的位置(根据回放时间和/或字节偏移)等。
根据本公开的技术,如果视频文件150包括缺失部分,则视频文件150可以包括单个SIDX盒162,该单个SIDX盒162具有最早_呈现_时间元素和子分段_持续时间字段,该最早_呈现_时间元素具有在清单文件(例如,MPD)中被信令通知的S@t的值,该子分段_持续时间字段具有在清单文件(例如,MPD)中被信令通知的S@d的值。在一些示例中,视频文件150可以仅包括SIDX盒162,而不包括MOOV盒154和/或电影片段164.在其他示例中,视频文件150可以包括媒体数据(例如,电影片段164)和一个或多个SIDX盒162两者,该一个或多个SIDX盒162信令通知没有电影片段164可用的缺失部分。
电影片段164可以包括一个或多个编码的视频图片。在一些示例中,电影片段164可以包括一个或多个图片组(groups of picture,GOP),每个图像组可以包括多个编码的视频图片,例如,帧或图片。此外,如上所述,在一些示例中,电影片段164可以包括序列数据集。电影片段164中的每一个可以包括电影片段报头盒(movie fragment header box,MFHD,图4中未示出)。MFHD盒可以描述相应电影片段的特性,诸如电影片段的序列号。电影片段164可以按序列号的顺序包含在视频文件150中。当视频文件150是缺失部分分段时,视频文件150中可能不存在电影片段164。
MFRA盒166可以描述视频文件150的电影片段164内的随机接入点。这可以有助于执行特技模式,诸如执行对视频文件150封装的分段内特定时间位置(即播放时间)的搜索。在一些示例中,MFRA盒166通常是可选的,并且不需要包括在视频文件中。同样,诸如客户端设备40的客户端设备不一定需要引用MFRA盒166来正确解码和显示视频文件150的视频数据。MFRA盒166可以包括与视频文件150的轨道数量相等或者在一些示例中与视频文件150的媒体轨道(例如,非提示轨道)数量相等的多个轨道分段随机访问(track fragmentrandom access,TFRA)盒(未示出)。
在一些示例中,电影片段164可以包括一个或多个流接入点(SAP),诸如IDR图片。类似地,MFRA盒166可以提供SAP的视频文件150内的位置的指示。因此,视频文件150的时间子序列可以由视频文件150的SAP形成。时间子序列还可以包括其他图片,诸如依赖于SAP的P-帧和/或B-帧。时间子序列的帧和/或切片可以被排列在分段内,使得依赖于子序列的其他帧/切片的时间子序列的帧/切片可以被正确解码。例如,在数据的分层排列中,用于预测其他数据的数据也可以包括在时间子序列中。当视频文件150是缺失部分分段时,视频文件150中可能不存在MFRA盒166。
图5是示出可能发生一个或多个分段的媒体数据丢失的场景的各种示例的概念图。在各种示例中,可能丢失分段的一部分(并且因此不能提供适当的内容),可能丢失完整的分段,或者可能丢失多个分段。在某些情况下,还可以是仅可产生分段的初始部分的情况。在图5中示出了一些示例。
特别地,图5描绘了包括分段202A-202H的分段200的第一示例序列,其中没有实际或隐藏的丢失。图5还描绘了包括分段206A-206H的分段204的第二示例序列,其中分段206C包括由于媒体数据丢失的缺失部分208。图5还描绘了包括分段212A-212H的分段210的第三示例序列,其中在分段212E的末端存在丢失,使得分段212E包括缺失部分214。图5还描绘了包括段218A-218H的分段216的第四示例序列,其中在包括缺失部分220的分段218D的预期的分段边界处存在丢失,这可能导致分段218D不在预测时间开始。图5还描绘了包括分段224A-2224C和224E-224H的分段222的第五示例序列,其中在分段224C之后和分段224E之前的缺失分段228的分段边界处存在导致缺失分段226的丢失。图5还描绘了包括分段232A-232C、232G和232H的分段230的第六示例序列,其中存在媒体数据的丢失,导致跨多个分段的缺失分段234。
根据本公开的技术,清单文件可以包括缺失部分元素,以信令通知缺失部分208、214、220、226和/或234中的任何一个。同样地,分段206C可以包括来信令通知缺失部分208的数据(诸如SIDX盒);分段212E可以包括来信令通知缺失部分214的数据;以及分段218D可以包括来信令通知缺失部分220的数据。
图6是示出根据本公开的技术确定流式传输的媒体数据包括缺失部分的示例方法的流程图的方法。例如,图6的方法可以由例如图1的客户端设备40的检索单元52来执行。然而,应当理解,根据本公开的技术,其他设备可以被配置为执行这种或类似的方法。
最初,检索单元52可以检索用于媒体数据的呈现的清单文件(250)。清单文件可以是例如DASH的媒体呈现。在其他示例中,其他流式传输协议的其他清单文件,诸如HTTP实时流式传输(HLS)、Adobe HTTP动态流式传输(HTTP Dynamic Streaming,HDS)、微软平滑流式传输(Microsoft Smooth Streaming,MSS)等。
清单文件可以包括指示媒体数据的分段的网络位置(例如,URL)的数据。因此,检索单元52可以使用清单文件来检索呈现的一个或多个分段(252)。特别地,如上所述,检索单元52可以确定客户端设备40的编码和渲染能力以及当前可用的网络带宽,以选择适配集合和适配集合内的表征,然后确定所选择的表征的分段的URL,并发送对该分段的请求。
在一些示例中,清单文件可以包括缺失部分元素,如上所述。特别地,清单文件可以包括一个或多个缺失部分元素,每个缺失部分元素可以信令通知媒体数据不可用的回放时间相应时间段的开始时间和持续时间。附加地或替代地,一个或多个分段可以包括指示该分段包括缺失部分的数据。例如,该分段可以包括指示该分段的缺失部分的开始时间和持续时间的分段索引(SIDX)盒。因此,使用清单文件和/或一个或多个分段本身的数据,检索单元52可以确定该分段包括缺失部分(254)。
响应于确定该分段包括缺失部分,并且使用指示缺失部分的数据(例如,缺失部分的开始时间和持续时间),检索单元52可以延长片段时间线(256),以解决缺失部分。特别地,检索单元52可以确定对于缺失部分没有可用的媒体数据,并且因此,检索单元52可以避免尝试为缺失部分检索附加的媒体数据。在一些示例中,检索单元52可以替代检索缺失部分的替换媒体数据,诸如黑屏或错误消息。
检索单元52可以进一步继续检索缺失部分之后的后续分段(258)。检索单元52还可以输出检索的分段的媒体数据(260)。具体而言,检索单元52可以输出检索的分段的缺失部分之外的媒体数据。在一些情况下,检索单元52可以输出缺失部分的替换媒体数据。
以这种方式,图6表示一种方法的示例,该方法包括:确定用于媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的该呈现的时间段的数据;检索包括具有在该时间段之前的呈现时间的媒体数据的、该呈现的第一组分段;响应于确定清单文件包括指定该时间段的数据:省略具有在该时间段期间的呈现时间的媒体数据的检索;检索包括具有该时间段之后的呈现时间的媒体数据的、该呈现的第二组分段;以及根据该确定来延长分段时间线。
另外,图6的方法还表示一种方法的示例,该方法包括:检索媒体数据的表征的第一分段的至少一部分,该第一分段的至少一部分包括指示第一分段包括缺失部分的数据,该缺失部分表示媒体数据不可用但分段时间线可以延长的时间段;检索具有在缺失部分之后的呈现时间的第二分段的媒体数据;根据第一分段的至少一部分的数据来延长分段时间线;以及根据延长的分段时间线输出第二分段的媒体数据。
图7是示出根据本公开的技术的用于检索清单文件的方法的示例的流程图,该清单文件包括指示呈现包括缺失部分的数据。图7的方法可以由例如,图1的客户端设备40的检索单元52执行。然而,应当理解,根据本公开的技术,其他设备可以被配置为执行这种或类似的方法。
最初,检索单元52可以检索用于媒体数据的呈现的清单文件(270)。清单文件可以是例如DASH的媒体呈现。在其他示例中,其他流式传输协议的其他清单文件,诸如HTTP实时流式传输(HLS)、Adobe HTTP动态流式传输(HDS)、微软平滑流式传输(MSS)等。
清单文件可以包括指示媒体数据的分段的网络位置(例如,URL)的数据。因此,检索单元52可以使用清单文件来检索呈现的一个或多个分段。特别地,如上所述,检索单元52可以确定客户端设备40的编码和渲染能力以及当前可用的网络带宽,以选择适配集合和适配集合中的表征,然后确定所选择的表征的分段的URL,并发送对分段的请求。
另外,在该示例中,检索单元52确定清单文件包括缺失部分元素(272)。例如,缺失部分元素可以信令通知媒体数据不可用的时间段的开始时间和持续时间。因此,检索单元52可以使用清单文件来确定缺失部分的开始时间(274)和缺失部分的持续时间(276)。开始时间可以由清单文件的S@t元素指示,而持续时间可以由清单文件的S@d元素指示。
检索单元52然后可以根据清单文件的缺失部分元素来延长分段时间线(278)。尽管图7中未明确地示出。
以这种方式,图7的方法表示一种方法的示例,该方法包括:确定用于媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的该呈现的时间段的数据;检索包括具有在该时间段之前的呈现时间的媒体数据的、该呈现的第一组分段;响应于确定清单文件包括指定该时间段的数据:省略具有在该时间段期间的呈现时间的媒体数据的检索;检索包括具有该时间段之后的呈现时间的媒体数据的、该呈现的第二组分段;以及根据该确定来延长分段时间线。
图8是示出了根据本公开的技术的用于检索包括数据的分段的方法的示例的流程图的方法,该数据指示该分段包括缺失部分。例如,图8的方法可以由图1的客户端设备40的检索单元52来执行。然而,应当理解,根据本公开的技术,其他设备可以被配置为执行这种或类似的方法。
最初,检索单元52可以检索用于媒体数据的呈现的清单文件(290)。清单文件可以是例如DASH的媒体呈现。在其他示例中,其他流式传输协议的其他清单文件,诸如HTTP实时流式传输(HLS)、Adobe HTTP动态流式传输(HDS)、微软平滑流式传输(MSS)等。
清单文件可以包括指示媒体数据的分段的网络位置(例如,URL)的数据。因此,检索单元52可以使用清单文件来检索呈现的一个或多个分段(292)。特别地,如上所述,检索单元52可以确定客户端设备40的编码和渲染能力,以及当前可用的网络带宽,以选择适配集合和适配集合中的表征,然后确定所选择的表征的分段的URL,并发送对分段的HTTP Get或部分Get请求。
检索单元52然后可以确定名义的第一检索分段包括缺失部分的指示(294)。也就是说,第一分段可以在其他段之后被检索,但是名义上被称为“第一”是指具有指示该分段包括缺失部分的数据的分段。第一分段可以包括指示缺失部分的开始时间和持续时间的SIDX盒。检索单元52可以使用例如,第一分段的SIDX盒的最早_呈现_时间字段和子分段_持续时间字段来确定没有媒体可用的子分段。第一分段可以进一步包括“缺失”的主要标签,以指示第一分段包括信令通知其缺失部分的SIDX盒。此外,检索单元52可以从该分段中提取事件消息(emsg)元素,指示清单文件的到期。因此,检索单元52可以使用emsg元素的数据来检索新的有效清单文件。
检索单元52可以使用缺失部分的指示来延长分段时间线(296),即,避免试图检索缺失部分的媒体数据,并且不将缺失部分的第一分段的实际媒体数据发送到例如,视频解码器(诸如图1的视频解码器48)。在一些示例中,检索单元52可以输出替换媒体数据,诸如黑屏或错误消息,并且附加地或替代地将缺失部分的指示输出到例如,视频解码器48。为了获得替换媒体数据,检索单元52可以检索对应于缺失部分的不同表征的分段。
或者,检索单元52可以确定不同表征的替换分段包括与第一分段的缺失具有相同呈现时间的有效媒体数据。因此,检索单元52可以响应于确定第一分段包括缺失部分来检索替换分段。不同表征可以在相同的适配集合中,但是具有,例如,比包括第一分段的表征更低的比特率。在检索单元52从不同表征检索替换分段的情况下,检索单元52还可以输出替换分段的媒体数据以延长分段时间线。
此外,检索单元52可以根据延长的分段时间线输出缺失部分之外的分段的媒体数据(298)。例如,检索单元52可以向视频解码器48输出具有在缺失部分之前的呈现时间的媒体数据和具有在缺失部分之后的呈现时间的媒体数据,其中媒体数据可以被包括在第一分段或第二、后续分段中(在呈现时间里)。
以这种方式,图8的方法表示一种方法的示例,该方法包括:检索媒体数据的表征的第一分段的至少一部分,该第一分段的至少一部分包括指示第一分段包括缺失部分的数据,该缺失部分表示媒体数据不可用但分段时间线可以延长的时间段;检索具有在缺失部分之后的呈现时间的第二分段的媒体数据;根据第一分段的至少一部分的数据来延长分段时间线;以及根据延长的分段时间线输出第二分段的媒体数据。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果以软件实现,这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过其传输,并由基于硬件的处理单元执行。计算机可读介质可以包括对应于诸如数据存储介质的有形介质的计算机可读存储介质,或者包括便于将计算机程序从一个地方传送到另一个地方(例如,根据一种通信协议)的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构来实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器、或其他磁存储设备、闪存、或可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的任何其他介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或无线技术(诸如红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外线、无线电和微波)包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时介质,而是指向非暂时的有形存储介质。这里使用的磁盘和光盘包括光盘(CD)、激光盘、光学光盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。上述的组合也应该包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。因此,这里使用的术语“处理器”可以指任何前述结构或者适合于实现这里描述的技术的任何其他结构。此外,在一些方面,这里描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或者结合在组合编解码器中。同样,这些技术可以完全在一个或多个电路或逻辑元件中实现。
本公开的技术可以在多种设备或装置中实现,包括无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。

Claims (12)

1.一种检索媒体数据的方法,所述方法包括:
确定用于媒体数据的呈现的清单文件包括指示与所述媒体数据中的缺失部分有关的信息的缺失部分元素,所述缺失部分表示所述媒体数据不可用但是分段时间线可以被延长的时间段,其中所述媒体数据不可用包括所述媒体数据不存在或仅部分存在;
检索包括具有在所述时间段之前的呈现时间的媒体数据的、所述呈现的第一组分段;
检索包括具有在所述时间段之后的呈现时间的媒体数据的、所述呈现的第二组分段;
响应于确定所述清单文件包括指定所述时间段的数据:
省略对具有在所述时间段期间的呈现时间的媒体数据的检索;
在第二呈现中检索具有与所述缺失部分重叠的回放时间的分段作为替换分段,其中所述第二呈现和与所述缺失部分对应的所述呈现在相同的适配集合中;和
输出所述替换分段以延长所述分段时间线;
其中对于所述缺失部分存在包括@t属性和@d属性的单个分段索引(sidx)盒,以及对于所述媒体数据不存在的所述缺失部分,通过强制实施所述@t属性和所述@d属性两者的值来延长所述分段时间线,而不更新所述清单文件;以及
其中所述@t属性具有表示所述媒体数据不可用的所述时间段的开始时间的值,以及@d属性具有指定所述媒体数据不可用的所述时间段的持续时间的值。
2.根据权利要求1所述的方法,其中所述清单文件包括媒体呈现描述(MPD)。
3.根据权利要求1所述的方法,还包括使用所述@t属性的值来确定所述媒体数据不可用的所述时间段的开始时间,包括从所述@t属性的值中减去呈现时间偏移元素的值,以确定所述媒体数据不可用的所述时间段的开始时间。
4.一种用于检索媒体数据的设备,所述设备包括:
存储器,被配置为存储所述媒体数据;和
一个或多个处理器,在电路中实现并被配置为:
确定用于所述媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的所述呈现的时间段的数据,指定所述时间段的数据包括指示与所述媒体数据中的缺失部分有关的信息的缺失部分元素,所述缺失部分表示所述媒体数据不可用但是分段时间线可以被延长的时间段,其中所述媒体数据不可用包括所述媒体数据不存在或仅部分存在;
检索包括具有在所述时间段之前的呈现时间的媒体数据的、所述呈现的第一组分段;
检索包括具有在所述时间段之后的呈现时间的媒体数据的、所述呈现的第二组分段;
响应于确定所述清单文件包括指定所述时间段的数据:
省略对具有在所述时间段期间的呈现时间的媒体数据的检索;
在第二呈现中检索具有与所述缺失部分重叠的回放时间的分段作为替换分段,其中所述第二呈现和与所述缺失部分对应的所述呈现在相同的适配集合中;和
输出所述替换分段以延长所述分段时间线;
其中对于所述缺失部分存在包括@t属性和@d属性的单个分段索引(sidx)盒,以及对于所述媒体数据不存在的所述缺失部分,通过强制实施所述@t属性和所述@d属性两者的值来延长所述分段时间线,而不更新所述清单文件;以及
其中所述@t属性具有表示所述媒体数据不可用的所述时间段的开始时间的值,以及@d属性具有指定所述媒体数据不可用的所述时间段的持续时间的值。
5.根据权利要求4所述的设备,其中所述清单文件包括媒体呈现描述(MPD)。
6.根据权利要求4所述的设备,其中所述一个或多个处理器还被配置为使用所述@t属性的值来确定所述媒体数据不可用的所述时间段的开始时间,包括从所述@t属性的值中减去呈现时间偏移元素的值,以确定所述媒体数据不可用的所述时间段的开始时间。
7.一种其上存储有指令的计算机可读存储介质,所述指令在被执行时使得处理器:
确定用于媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的所述呈现的时间段的数据,指定所述时间段的数据包括指示与所述媒体数据中的缺失部分有关的信息的缺失部分元素,所述缺失部分表示所述媒体数据不可用但是分段时间线可以被延长的时间段,其中所述媒体数据不可用包括所述媒体数据不存在或仅部分存在;
检索包括具有在所述时间段之前的呈现时间的媒体数据的、所述呈现的第一组分段;
检索包括具有在所述时间段之后的呈现时间的媒体数据的、所述呈现的第二组分段;
响应于确定所述清单文件包括指定所述时间段的数据:
省略具有在所述时间段期间的呈现时间的媒体数据的检索;
在第二呈现中检索具有与所述缺失部分重叠的回放时间的分段作为替换分段,其中所述第二呈现和与所述缺失部分对应的所述呈现在相同的适配集合中;和
输出所述替换分段以延长所述分段时间线;
其中对于所述缺失部分存在包括@t属性和@d属性的单个分段索引(sidx)盒,以及对于所述媒体数据不存在的所述缺失部分,通过强制实施所述@t属性和所述@d属性两者的值来延长所述分段时间线,而不更新所述清单文件;以及
其中所述@t属性具有表示所述媒体数据不可用的所述时间段的开始时间的值,以及@d属性具有指定所述媒体数据不可用的所述时间段的持续时间的值。
8.根据权利要求7所述的计算机可读存储介质,其中所述清单文件包括媒体呈现描述(MPD)。
9.根据权利要求7所述的计算机可读存储介质,还包括指令,所述指令使所述处理器使用所述@t属性的值来确定所述媒体数据不可用的所述时间段的开始时间,包括从所述@t属性的值中减去呈现时间偏移元素的值,以确定所述媒体数据不可用的所述时间段的开始时间。
10.一种用于检索媒体数据的设备,所述设备包括:
用于确定用于媒体数据的呈现的清单文件包括指定媒体数据不可用但是分段时间线可以被延长的所述呈现的时间段的数据的部件,指定所述时间段的数据包括指示与所述媒体数据中的缺失部分有关的信息的缺失部分元素,所述缺失部分表示所述媒体数据不可用但是分段时间线可以被延长的时间段,其中所述媒体数据不可用包括所述媒体数据不存在或仅部分存在;
用于检索包括具有在所述时间段之前的呈现时间的媒体数据的、所述呈现的第一组分段的部件;
用于检索包括具有在所述时间段之后的呈现时间的媒体数据的、所述呈现的第二组分段的部件;
用于响应于确定所述清单文件包括指定所述时间段的数据,省略对具有在所述时间段期间的呈现时间的媒体数据的检索的部件;
用于响应于确定所述清单文件包括指定所述时间段的数据,在第二呈现中检索具有与所述缺失部分重叠的回放时间的分段作为替换分段,其中所述第二呈现和与所述缺失部分对应的所述呈现在相同的适配集合中;和
用于响应于确定所述清单文件包括指定所述时间段的数据,输出所述替换分段以延长所述分段时间线的部件;
其中对于所述缺失部分存在包括@t属性和@d属性的单个分段索引(sidx)盒,以及对于所述媒体数据不存在的所述缺失部分,通过强制实施所述@t属性和所述@d属性两者的值来延长所述分段时间线,而不更新所述清单文件;以及
其中所述@t属性具有表示所述媒体数据不可用的所述时间段的开始时间的值,以及@d属性具有指定所述媒体数据不可用的所述时间段的持续时间的值。
11.根据权利要求10所述的设备,其中所述清单文件包括媒体呈现描述(MPD)。
12.根据权利要求10所述的设备,还包括用于使用所述@t属性的值来确定所述媒体数据不可用的所述时间段的开始时间的部件,包括从所述@t属性的值中减去呈现时间偏移元素的值,以确定所述媒体数据不可用的所述时间段的开始时间。
CN201980031271.4A 2018-05-11 2019-05-09 一种检索媒体数据的方法、设备及可读存储介质 Active CN112154672B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862670370P 2018-05-11 2018-05-11
US62/670,370 2018-05-11
US16/406,947 US11438647B2 (en) 2018-05-11 2019-05-08 Signaling missing sections of media data for network streaming in a manifest file
US16/406,947 2019-05-08
PCT/US2019/031597 WO2019217733A1 (en) 2018-05-11 2019-05-09 Signaling, in a manifest file, missing sections of media data for network streaming

Publications (2)

Publication Number Publication Date
CN112154672A CN112154672A (zh) 2020-12-29
CN112154672B true CN112154672B (zh) 2023-05-30

Family

ID=68464391

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980031317.2A Active CN112106382B (zh) 2018-05-11 2019-05-09 检索媒体数据的方法、设备、存储介质
CN201980031271.4A Active CN112154672B (zh) 2018-05-11 2019-05-09 一种检索媒体数据的方法、设备及可读存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201980031317.2A Active CN112106382B (zh) 2018-05-11 2019-05-09 检索媒体数据的方法、设备、存储介质

Country Status (7)

Country Link
US (2) US11146852B2 (zh)
EP (2) EP3791600A1 (zh)
CN (2) CN112106382B (zh)
BR (2) BR112020022899A2 (zh)
SG (2) SG11202010458WA (zh)
TW (2) TW201947937A (zh)
WO (2) WO2019217739A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146852B2 (en) 2018-05-11 2021-10-12 Qualcomm Incorporated Signaling missing sections of media data for network streaming in a segment
US10986402B2 (en) 2018-07-11 2021-04-20 Qualcomm Incorporated Time signaling for media streaming
US10779017B2 (en) * 2018-12-10 2020-09-15 Warner Bros. Entertainment Inc. Method and system for reducing drop-outs during video stream playback
US11445270B2 (en) 2020-04-15 2022-09-13 Comcast Cable Communications, Llc Content information for manifest determination
CA3126585A1 (en) * 2020-08-03 2022-02-03 Comcast Cable Communications, Llc Video content processing systems and methods
US11687386B2 (en) * 2020-10-07 2023-06-27 Tencent America LLC MPD validity expiration processing model
US20220156157A1 (en) * 2020-11-17 2022-05-19 At&T Intellectual Property I, L.P. User-driven recovery of lost content
US11962868B2 (en) * 2020-11-30 2024-04-16 Verizon Patent And Licensing Inc. Detecting a quality issue associated with a video stream delivery
US20240333545A1 (en) * 2023-03-31 2024-10-03 Adeia Guides Inc. System and method for retrieving missing multicast or broadcast media segments using d2d communication

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105900445A (zh) * 2014-01-16 2016-08-24 高通股份有限公司 Dash的稳健实况操作

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8752102B2 (en) 2008-01-03 2014-06-10 Microsoft Corporation Intelligent retransmission of data stream segments
US9986009B2 (en) * 2010-10-06 2018-05-29 Electronics And Telecommunications Research Institute Apparatus and method for providing streaming content
CA2816621A1 (en) * 2010-11-02 2012-05-10 Lg Electronics Inc. Method for adaptive streaming that transmits/receives media content according to a network bandwidth and device for adaptive streaming using the same
WO2013020709A1 (en) 2011-08-10 2013-02-14 Telefonaktiebolaget L M Ericsson (Publ) Media stream handling
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9118744B2 (en) * 2012-07-29 2015-08-25 Qualcomm Incorporated Replacing lost media data for network streaming
US9380097B2 (en) * 2014-04-01 2016-06-28 Gamefly Israel Ltd. Overcoming data loss in streaming video in IP networks
US10298931B2 (en) 2014-09-25 2019-05-21 Microsoft Technology Licensing, Llc Coupling sample metadata with media samples
ES2865448T3 (es) * 2015-02-11 2021-10-15 Expway Procedimiento de gestión de pérdidas de paquetes en transmisiones basadas en la norma dash y el protocolo flute
EP3627337A1 (en) * 2015-02-27 2020-03-25 DivX, LLC Systems and methods for frame duplication and frame extension in live video encoding and streaming
US10595087B2 (en) * 2015-07-14 2020-03-17 DISH Technologies L.L.C. Media content skipping
JP6834967B2 (ja) 2015-10-09 2021-02-24 ソニー株式会社 情報処理装置および情報処理方法
EP3179688A1 (en) 2015-12-11 2017-06-14 Koninklijke KPN N.V. Updating part of a manifest file on the basis of patches
US20170278545A1 (en) * 2016-03-22 2017-09-28 Sugarlock, Inc. Media content manipulation
US11617019B2 (en) * 2016-07-28 2023-03-28 Qualcomm Incorporated Retrieving and accessing segment chunks for media streaming
US20180103271A1 (en) 2016-10-10 2018-04-12 Qualcomm Incorporated Systems and methods for signaling missing or corrupted video data
US20180213294A1 (en) * 2017-01-23 2018-07-26 Ramp Holdings, Inc. Recovering from gaps in video transmission for web browser-based players
US10484726B2 (en) * 2017-06-02 2019-11-19 Apple Inc. Playlist error tags for delivery and rendering of streamed media
US20190020734A1 (en) * 2017-07-14 2019-01-17 Comcast Cable Communications, Llc Reduced content manifest size
US10681104B1 (en) * 2017-09-13 2020-06-09 Amazon Technologies, Inc. Handling media timeline offsets
US10412425B2 (en) * 2018-01-05 2019-09-10 Facebook, Inc. Processing gaps in audio and video streams
US10771842B2 (en) 2018-04-09 2020-09-08 Hulu, LLC Supplemental content insertion using differential media presentation descriptions for video streaming
US11146852B2 (en) * 2018-05-11 2021-10-12 Qualcomm Incorporated Signaling missing sections of media data for network streaming in a segment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105900445A (zh) * 2014-01-16 2016-08-24 高通股份有限公司 Dash的稳健实况操作

Also Published As

Publication number Publication date
WO2019217739A1 (en) 2019-11-14
EP3791601A1 (en) 2021-03-17
BR112020022891A2 (pt) 2021-02-23
TW201947937A (zh) 2019-12-16
US11438647B2 (en) 2022-09-06
WO2019217733A1 (en) 2019-11-14
CN112106382A (zh) 2020-12-18
BR112020022899A2 (pt) 2021-02-23
US20190349630A1 (en) 2019-11-14
CN112106382B (zh) 2022-08-09
SG11202010458WA (en) 2020-11-27
US11146852B2 (en) 2021-10-12
SG11202010567TA (en) 2020-11-27
TW201947938A (zh) 2019-12-16
EP3791600A1 (en) 2021-03-17
CN112154672A (zh) 2020-12-29
US20190349629A1 (en) 2019-11-14

Similar Documents

Publication Publication Date Title
US20230283863A1 (en) Retrieving and accessing segment chunks for media streaming
CN112154672B (zh) 一种检索媒体数据的方法、设备及可读存储介质
US11223883B2 (en) Segment types as delimiters and addressable resource identifiers
CN111656796B (zh) 动态条件性广告插入
US20180176278A1 (en) Detecting and signaling new initialization segments during manifest-file-free media streaming
KR102549656B1 (ko) 미디어 데이터 스트리밍을 위한 sei 트랙들의 시스템 레벨 시그널링
US11184665B2 (en) Initialization set for network streaming of media data
US20210306703A1 (en) Determination of availability of chunks of data for network streaming media data
CN118511534A (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