CN112369041B - 播放媒体的方法和计算机可读存储装置 - Google Patents
播放媒体的方法和计算机可读存储装置 Download PDFInfo
- Publication number
- CN112369041B CN112369041B CN201980044999.0A CN201980044999A CN112369041B CN 112369041 B CN112369041 B CN 112369041B CN 201980044999 A CN201980044999 A CN 201980044999A CN 112369041 B CN112369041 B CN 112369041B
- Authority
- CN
- China
- Prior art keywords
- media
- engine
- data structure
- audio
- content
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000013515 script Methods 0.000 description 49
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000004044 response 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
- 238000007906 compression Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8193—Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
-
- 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/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4348—Demultiplexing of additional data and video streams
- H04N21/4349—Demultiplexing of additional data and video streams by extracting from data carousels, e.g. extraction of software modules from a DVB carousel
-
- 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/43—Processing 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/439—Processing of audio elementary streams
- H04N21/4398—Processing of audio elementary streams involving reformatting operations of audio signals
-
- 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/43—Processing 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/44—Processing 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/4402—Processing 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
- H04N21/440218—Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种从运行在接收装置上的媒体引擎播放媒体的方法,所述方法包括:在所述接收装置处接收媒体数据结构,所述媒体数据结构包括被格式化成多个层的音频或视频内容,所述多个层至少包括第一层和第二层,所述第一层包括分别根据音频或视频编码方案进行编码的所述音频或视频内容,并且所述第二层根据媒体容器格式将经编码的内容封装在一个或多个媒体容器中;确定所述媒体容器中的至少一个媒体容器进一步封装有用于处理所述媒体数据结构的格式化中的至少一些格式化的可运行代码,以支持所述媒体引擎对所述音频或视频内容的播放;在所述接收装置的代码引擎上运行所述代码,以执行对所述媒体数据结构的所述处理而用于输入到所述媒体引擎。
Description
相关申请的交叉引用
本申请要求以下优先权申请的优先权:于2018年7月5日提交的美国临时申请62/694,107(参考号:D18049USP1)和于2018年7月5日提交的欧洲申请18181820.4(参考号:D18049EP),所述申请通过援引并入本文。
技术领域
本公开涉及用于封装经编码的音频和/或视频内容的如ISOBMFF的媒体容器格式。
背景技术
“媒体容器”是媒体数据的传输和存储领域的术语。媒体容器是指这样的数据结构,其用于包装如音频和/或视频(“AV”)内容的内容,以用于通过传输介质进行传输或存储在数据存储介质上。例如,传输介质可以包括如因特网或蜂窝网络的网络;或者存储介质可以包括如硬盘驱动器的磁性存储设备、如固态驱动器或记忆棒的电子介质、或如CD的光学介质。如记忆棒或可移除驱动器的存储设备还可以用作将数据从一个设备传输到另一个设备的装置。
音频和视频媒体数据通常被格式化成多个层以用于传输或存储。这些层可以被称为协议层或格式化的层。在这样的第一层处,根据音频或视频编码方案对音频或视频内容进行编码,所述编码包括内容的压缩。编码方案还可以称为编码格式。编码方案通常是标准化方案。例如,对于音频,编码方案可以包括MP3、AC-4、MPEG-D USAC或MPEG-H音频标准;或者对于视频,编码可以包括H.264、HEVC等。用于根据给定方案对音频或视频媒体进行编码和解码的设备、软件或规范有时被称为编解码器(编码器-解码器)。
在更高的第二层处,然后根据媒体容器格式(有时也被称为包装器格式)将经编码的媒体内容封装在媒体容器中。媒体容器格式指定元数据,其用于被包括在容器中以包装经封装的内容(容器的有效载荷)。元数据描述了媒体和/或数据中的一个或多个项目是如何布置在容器内的。例如,容器元数据可以指定编码格式I(例如,AC-4)的音频轨道从字节X开始持续Y个字节,和/或编码格式II(例如,HEVC)的视频轨道从字节V开始持续W个字节等。另外,元数据通常列出编码格式的更多细节,如(在音频方面)声道数和采样率或(在视频方面)纵横比和每秒帧数等。媒体容器格式的示例是ISOBMFF(ISO基础媒体文件格式),所述ISOBMFF通过ISO/IEC 14496-12进行标准化并且还涵盖其许多扩展。出于本发明目的,对ISOBMFF的引用是指ISO/IEC 14496-12或由其衍生的扩展中的任何扩展,如MP4、3GP、3G2、Motion JPEG 2000等。容器格式的另一个示例是MPEG-2传输流(TS)格式。
在通过网络传输的情况下,一种传输形式是流式传输(streaming)。这意味着当接收到比特流时,在接收设备上播放所述比特流,即,因此接收到的一部分流被播放,而稍后的另一部分流仍然在被下载到接收设备(与在播放之前等待所有内容的下载相反)。对于流式传输,比特流被分解成更小的片,所述片有时被称为片段或文件数据块。每个这样的片段或数据块根据如ISOBMFF或MPEG-2TS(ISO/IEC 13818-1)的媒体容器格式被封装在媒体容器中。在第二层之上(在容器格式之上)的第三层处,提供了流式传输协议来支持所述流的呈片(例如,片段或文件数据块)传输。流式传输协议指定了媒体演示描述文件的格式,其中,此描述文件包括指向流的各个片(例如,各个片段或文件数据块)的指针。流式传输协议的描述文件在启动流式传输时被下载到接收设备,并且然后用于以流式传输的方式从传送设备(例如,服务器)连续获取所述流的不同数据块。描述文件还可以稍后在流式传输期间再次下载,以在某个事件(如时间用完)发生时刷新描述文件。流式传输协议的示例包括MPEG-DASH(基于HTTP的动态自适应流式传输)和HLS(HTTP实时流式传输)。
除了音频和视频内容外,如今,如流式传输的电视节目或曲子(tune)的媒体项目还可以包括嵌入式数据轨道。传统上这用于提供附加内容。例如,这可以包括如字幕的时控文本、如演员简介的附加媒体、和/或交互式内容。这种数据可以被嵌入如ISOBMFF的媒体容器格式的容器中。
发明内容
媒体数据结构的问题是格式化存在不同的可能变体,例如,不同的容器格式标准或不同的音频或视频编码方案。这意味着在接收侧处的给定媒体引擎根据其兼容性可以能够或可能不能完全处理接收到的数据结构以播放其中包含的音频和/或视频内容。在一些情况下,只有部分播放可以是可能的,或者在其他情况下,播放可能根本不可行。目前,为了解决这个问题,内容提供商必须创建相同内容的不同格式化版本,以预测接收侧的不同能力的可能性。就存储或处理资源而言,这是浪费的:提供商必须预先生成并存储给定内容项目(例如,给定节目或曲子)的两个或更多个不同版本,这浪费了存储空间;或者,当由接收器请求资源时,提供商必须即时动态地转换格式化,这在传送侧产生了大量的处理资源。
如所提及的,媒体容器文件支持包括补充数据以及AV内容的能力。传统上,这用于提供如字幕的附加内容等。然而,数据轨道可以用于嵌入其他种类的数据,甚至是嵌入用于在接收侧的浏览器中运行的如脚本的可运行代码(例如,JavaScript)。在本文中认识到,可以使用这种能力来包括要在接收侧运行以用于适应数据结构的格式化的代码。这可以用于使提供商能够向仅支持不同的格式化的接收装置提供媒体数据结构的给定版本。例如,这可以用于提供数据结构的一个版本,以用于支持不同格式的不同接收装置接收。
根据本文所公开的一方面,提供了一种从运行在接收装置上的媒体引擎播放媒体的方法。所述方法包括:在所述接收装置处接收媒体数据结构,所述媒体数据结构包括格式化成多个层的音频或视频内容,所述多个层至少包括第一层和第二层,所述第一层包括分别根据音频或视频编码方案进行编码的所述音频或视频内容,并且所述第二层根据媒体容器格式将经编码的内容封装在一个或多个媒体容器中。所述方法进一步包括:确定所述媒体容器中的至少一个媒体容器进一步封装有用于处理所述媒体数据结构的格式化中的至少一些格式化的可运行代码,以支持所述媒体引擎对所述音频或视频内容的播放;以及在所述接收装置的代码引擎上运行所述代码,以执行对所述媒体数据结构的所述处理而用于输入到所述媒体引擎。在通过至少所述代码进行处理之后,将所述数据结构的经处理版本输入到所述媒体引擎,以播放所述媒体内容。
在实施例中,方法可以包括识别媒体引擎缺乏处理媒体数据结构的格式化的能力,并且所述确定可以包括确定封装在接收到的容器文件中的可运行代码支持所述缺乏的能力。在实施例中,代码的所述运行可以在所述识别和所述确定的条件下执行。
在实施例中,输送的代码可以替换媒体引擎的对应部件(例如,解码器或解封装部件)或者可以补充这样的部件(例如,以用于对编码方案进行转码或转换容器格式)。
在实施例中,所述一个或多个媒体容器可以包括一系列媒体容器(例如,片段或文件数据块),每个媒体容器封装音频或视频数据的相应部分,每个媒体容器根据所述媒体容器格式来封装。
在实施例中,数据结构的接收可以包括以流式传输(streaming)的方式接收数据结构。
在实施例中,所述代码引擎和所述媒体引擎中的一个或两个可以合并在运行于所述接收装置上的网页浏览器中或所述网页浏览器的插件中。
在实施例中,所述内容可以是音频内容,在这种情况下,所述编码方案是音频编码方案。在一些这样的实施例中,所述媒体数据结构可以另外包括根据视频编码方案进行编码的视频。
在其他实施例中,所述内容可以是视频内容,并且所述编码方案可以是视频编码方案。在一些这样的实施例中,所述媒体数据结构可以另外包括根据音频编码方案进行编码的音频。
在实施例中,在接收到的数据结构中使用的所述媒体编码方案是ETSI标准或MPEG标准。
在实施例中,在接收到的媒体数据结构中使用的所述音频编码方案可以包括以下各项之一:
-AC-4(ETSI TS 103 190)
-AC-3或EAC-3(ETSI TS 102 366)
-MPEG-4AAC(ISO/IEC 14496-3)
-MPEG-D USAC(ISO/IEC 23003-3)
-MPEG-H音频(ISO/IEC 23008-3)
在实施例中,所述容器格式可以是ISO基础媒体文件格式(ISOBMFF)。
应注意,本文所提及的ISOBMFF文件可以指ISO/IEC 14496-12或其任何扩展或派生物,如MP4、3GP、3G2或CMAF。
在实施例中,所述数据结构可以被流式传输,所述一个或多个媒体容器包括多个媒体容器,每个媒体容器根据所述媒体容器格式来封装所述音频或视频内容的一部分。在这样的实施例中,所述数据结构中的格式化的层可以进一步包括第三层,所述第三层包括指向第二层中的所述多个媒体容器中的每一个的媒体演示描述文件,所述媒体演示描述文件根据流式传输格式进行格式化。例如,所述流式传输格式可以包括MPEG-DASH或HLS。
在实施例中,代码可以采取脚本的形式,并且代码引擎可以是脚本引擎,其可以是任何形式的虚拟机或沙箱式执行环境。
在实施例中,所述代码可以采取JavaScript的形式。替代性地,可以使用如Webassembly的其他语言。
在实施例中,所述处理可以包括处理所述第一层的格式化中的至少一部分格式化。
在实施例中,所述处理可以包括处理所述第二层的格式化中的至少一部分格式化。
在实施例中,所述媒体引擎可以不包括能够对在接收到的媒体资源中使用的所述编码方案进行解码的解码器;并且所述处理可以包括以下各项中的任一项:通过所述媒体引擎对所述内容进行解码以进行播放、或者将所述媒体内容转码至所述媒体引擎能够解码的第二编码方案。
例如,所述第二编码方案可以包括以下各项之一:AAC标准、MP3、Opus或PCM方案。
在实施例中,所述媒体数据结构可以包括多个音频流或多个视频流,并且,所述处理可以包括将所述多个音频流多路复用成同一音频流以通过所述媒体引擎的同一音频缓冲器进行播放,或者将所述多个视频流多路复用成同一视频流以通过所述媒体引擎的同一视频缓冲器进行播放。
在一些这样的实施例中,所述流可以在所述第一层处采取不同的流的形式(例如,不同的子流或通道),其中,所述一个或多个媒体容器包括一系列媒体容器,每个媒体容器包括每个流的一部分。在这种情况下,所述多路复用包括将所述部分多路复用使所述多个第一层流形成单个流,以用于通过媒体引擎的同一音频缓冲器播放,或者类似地用于视频。
替代性地,所述流可以在所述第二层处采取来自所述容器的不同序列的流的形式。在这种情况下,所述多路复用可以包括将不同序列多路复用成单个流,以用于通过媒体引擎的同一音频缓冲器播放,或者类似地用于视频。
在实施例中,对于音频或视频,不同的流可以包括基本层流和至少一个增强层流,并且所述多路复用可以包括将基本层流和所述至少一个增强层流组合成一个流。
在实施例中,所述媒体引擎可能不能访问在接收到的资源中使用的所述容器格式,并且所述处理可以包括转换成所述媒体引擎能够访问的第二容器格式。
例如,所述第二容器格式可以是MPEG-2 TS。
在实施例中,经处理的数据结构可以通过网页套接字(web socket)输入到媒体引擎。
根据本文所公开的另一方面,提供了一种计算机程序,所述计算机程序包括在计算机可读存储装置上实施的软件并且被配置成当在所述接收装置的一个或多个处理器上运行时执行根据本文公开的实施例中的任何实施例的方法。
根据本文所公开的另一方面,提供了一种用于执行本文所公开的任何实施例的方法的接收装置(例如,用户设备),所述接收装置包括:接口,所述接口用于接收所述媒体数据结构;控制器,所述控制器被配置成执行所述确定;所述代码引擎,所述代码引擎被布置成执行所述代码的所述运行;以及所述媒体引擎,所述媒体引擎被布置成在所述处理之后执行所述媒体内容的所述播放。
根据本文所公开的另一方面,提供了一种供应媒体的方法,所述方法包括:输出媒体数据结构以用于接收装置接收,所述媒体数据结构包括被格式化成多个层的音频或视频内容,所述多个层至少包括第一层和第二层,所述第一层分别根据音频或视频编码方案对所述音频或视频内容进行编码,所述第二层根据媒体容器格式将经编码的内容封装在一个或多个媒体容器中;其中,所述媒体容器中的至少一个媒体容器进一步封装有用于处理所述媒体数据结构的格式化中的至少一些格式化的可运行代码,以支持所述接收装置的媒体引擎对所述音频或视频内容的播放。
供应的方法可以由媒体资源的生成器或媒体资源的转发提供商来执行。
根据本文所公开的另一方面,提供了一种用于生成媒体数据结构的装置(例如,服务器),所述装置包括:一个或多个处理器、和存储被布置成在所述一个或多个处理器中的至少一个处理器上运行的代码的存储装置;所述代码被配置成当如此运行时执行以下操作:生成媒体数据结构,所述媒体数据结构包括被格式化成多个层的音频或视频内容,所述多个层至少包括第一层和第二层,所述第一层分别根据音频或视频编码方案对所述音频或视频内容进行编码,所述第二层根据媒体容器格式将经编码的内容封装在一个或多个媒体容器中;以及在所述媒体容器中的至少一个媒体容器中进一步封装用于处理所述媒体数据结构的格式化中的至少一部分格式化的可运行代码,以支持媒体引擎对所述音频或视频内容的播放。
在实施例中,所述媒体数据结构的输出或生成可以包括输出或生成媒体资源,其具有从接收侧方法、程序或装置的角度所公开的任何性质。
根据本文所公开的另一方面,提供了一种在计算机可读存储装置上实施的媒体数据结构,所述媒体数据结构包括:音频或视频内容,所述音频或视频内容被格式化成多个层,所述多个层至少包括第一层和第二层,所述第一层分别根据音频或视频编码方案对所述音频或视频内容进行编码,所述第二层根据媒体容器格式将经编码的内容封装在一个或多个媒体容器中;以及被封装在所述媒体容器中的至少一个媒体容器中的可运行代码,所述可运行代码用于处理所述媒体数据结构的格式化中的至少一部分格式化,以支持媒体引擎对所述音频或视频内容的播放。
在实施例中,所述媒体数据结构可以具有关于所述方法、装置或程序所公开的性质中的任何性质。
附图说明
为了有助于理解本公开的实施例并且示出如何可以实现这些实施例,仅通过举例参考附图,在附图中:
图1A是用于流式传输媒体的协议的示意性表示,
图1B是媒体容器的示意性表示,
图1C是媒体容器的另一示意性表示,
图1D是通信系统的示意性框图,
图1E是通信系统的另一示意性框图,
图1F是用于下载媒体的系统的示意性框图,
图2是用于下载媒体的系统的另一示意性框图,
图3是下载媒体的方法的示意性信令图,
图4是下载媒体的另一种方法的示意性信令图,
图5是用于流式传输媒体的系统的示意性框图,
图6是用于流式传输媒体的系统的另一示意性框图,
图7是对流进行多路复用的方法的示意性框图。
具体实施方式
在各种媒体回放环境中,媒体引擎可能缺少实现某种体验(如个性化音频、对以某些编码格式编码的比特流的解码等)所需的某些部件。例如,用于回放流式传输内容的OTT(“过顶(over the top)”)播放器越来越多地以在浏览器中运行的JavaScript的形式实施。然而,这些广泛部署的系统的缺点在于其通常不实施最新的音频或视频解码器,所述最新的音频或视频解码器可能是对某种类型的比特流进行解码所需要的。因此,实现如个性化音频、附加轨道或最新标准等的某种体验可能仅在一定程度上是可能的,或者在一些情况下,内容根本无法播放。
进一步地,如OTT提供商的流式传输提供商需要创建同一个相同内容的各种“风格”,以便服务于多种不同类型的设备(例如,安卓、iOS、机顶盒(STB)、电视等)。这些内容风格不仅在其包括的(一个或多个)基本比特流的类型方面有所不同,而且还根据要服务的设备被打包成某些容器格式,如用于DASH类流式传输的ISOBMFF或用于输送到iOS设备的HLS。MPEG最近发布了其CMAF标准(通用媒体应用格式)的第一版本,其旨在至少统一容器格式。然而,并不期望这在不久的将来将被广泛部署。
在本文中认识到,如这些问题的问题可以通过在媒体容器中嵌入JavaScript(或其他代码)的内容特定的片以在接收侧的浏览器或其他媒体引擎环境中执行来解决。例如,这可以通过在ISOBMFF中包括并因此传输如JavaScript的基于网页的内容的能力来实现。例如,嵌入的脚本或代码可以被配置成执行以下任务中的任何一个或多个任务:
·将多流音频多路复用成单流音频(或类似地用于视频),以克服当前浏览器中的限制,由此,一种媒体类型被绑定到一个媒体源缓冲器(例如,所有音频都经过一个音频缓冲器);
·将一种容器类型转换成另一种容器类型,如将ISOBMFF片段或文件转换成符合MPEG-2-TS的片段或文件,以消除根据目标设备发送特定容器格式的需要;和/或
·在当前媒体引擎中不存在合适的解码器的情况下对媒体编码类型进行解码或转码,以便能够回放那些媒体类型。这种情况的一个示例是,如果媒体引擎不支持如AC-4、MPEG-H音频或MPEG-D USAC的较新的格式,则这种代码可以用于将这种格式解码成传统媒体引擎所理解的格式(例如,PCM音频)。
因此,媒体容器不但可以用于封装媒体本身,而且还可以封装用于回放所包含的媒体所需的一切。因此,可以在接收设备中实现媒体体验,所述接收设备原本在没有嵌入的脚本(或其他这样的嵌入的代码)的情况下将不会具有提供相同体验的能力。换句话说,所公开的技术提供了“自描述”媒体。本公开的技术利用嵌入JavaScript等的能力来添加“自反射”代码,所述“自反射”代码作用于其所包含于的媒体容器本身(以设备能力和其他参数为条件)。这种技术例如可以在OTT空间或用于传输或存储音频或视频媒体的任何其他场景中找到应用。
图1A和图1B图示了用于传输或存储音频和/或视频(“AV”)媒体数据的数据结构99的示例。媒体数据结构99可以表示例如给定的电影、电视节目的集、曲子或歌曲、或者音频或视频剪辑、或者提供商希望提供至接收装置(例如,用户回放设备)的任何媒体项目。数据结构99包括多个格式化的层,所述多个格式化的层至少包括第一层A和第二层B。第二层B包括一个或多个媒体容器2,所述一个或多个媒体容器2在其之间包含有效载荷数据15。有效载荷数据15包括分别根据音频和/或视频编码方案(即,用于音频的音频编码方案和/或用于视频的视频编码方案)进行编码的音频内容4和/或视频内容3形式的经编码的媒体内容5。这是第一(较低)格式化的层B(编码方案还可以称为编码格式或压缩格式)。例如,对于音频,编码方案可以包括MP3、AC-4、MPEG-D USAC或MPEG-H音频标准;和/或对于视频,编码可以包括H.264、HEVC等。音频内容4可以包括一个或多个音频轨道,和/或视频内容3可以包括一个或多个视频轨道。例如,在多个音频轨道的情况下,这些音频轨道可以包括例如音乐轨道、语音轨道、特效轨道和/或评论轨道。任选地,有效载荷数据15还可以包括一个或多个数据轨道,如字幕、覆盖图形、交互式内容等。
在如流式传输场景的许多情况下,在第二层B处,数据结构99包括容器2i、2ii、…、2N的至少一个序列。在这种情况下,每个媒体容器2对有效载荷数据15的不同的相应部分15n进行包装,每个容器2根据如ISOBMFF或MPEG-2TS的媒体容器格式进行格式化。例如,在流式传输场景中情况将是这样,由此,媒体数据结构99被划分成多个片(有时被称为片段或文件数据块)以用于流式传输到接收装置。在每个单独的容器2中,容器2的单独有效载荷15n包括经编码的媒体内容5的不同的相应部分5n。在一般化情况下,这可以包括(一个或多个)音频轨道4中的每一个的相应部分4n和/或(一个或多个)视频轨道3中的每一个的相应部分3n。
在多个媒体轨道的情况下,至少存在两种可能性。第一种可能性是数据结构99包括容器的多个序列,如图1A所图示的。在这种情况下,容器的每个序列可以包含仅一个轨道的内容或者至少仅一种类型的媒体(仅音频或仅视频)。例如对于MPEG-DASH类场景情况将是这样,其中,“数据块”2将仅包含用于音频或者视频的数据。客户端分别下载这些数据并且以及时同步的方式将其供应至相应的解码器(音频解码器和视频解码器)。在这种布置中,第一层A处的给定序列的有效载荷数据15在本领域中有时被称为基本比特流。
第二种可能性是数据结构99包括容器2的仅一个序列,而每个容器2的单独有效载荷15n包括每个轨道的一部分(例如,如果存在两个音频轨道和一个视频轨道,则给定序列的每个容器2将包含第一音频轨道的不同相应部分、第二音频轨道的不同相应部分和所述视频轨道的不同相应部分)。举例而言,HLS将支持第一可能性或者第二可能性。还可以组合第一可能性和第二种可能性,即,数据结构99可以包括多个容器序列,并且在这些序列中的至少给定序列中,该序列中的每个容器2可以包含数据结构99中携带的总的轨道的子集中的每个的相应部分。例如,一个容器序列可以包含两个或更多个音频轨道4,而同一数据结构99的另一容器序列可以包含一个或多个视频轨道。
无论轨道数和用于传输所述轨道的容器序列数如何,每个容器2进一步包括容器元数据7的相应部分,所述容器元数据7对经编码的媒体内容5(音频内容4和/或视频内容3)的其相应部分5n进行包装。元数据7可以例如指定被包装在相应容器中的内容的一种或多种类型,例如,音频、视频和/或非AV数据。元数据7可以指定用于包装在相应容器中的内容的每个片的编码格式,例如,用于音频的AC-4和/或用于视频的HEVC。元数据7可以在容器中指定容器的数据位置和/或大小;例如,从字节X开始和/或具有长度Y。因此,例如,元数据7可以指定如下内容:格式I(例如,AC-4)的音频轨道从字节X开始持续Y个字节,格式II(例如,HEVC)的视频轨道从字节V开始持续W个字节等。为了给出进一步的示例,根据容器格式,元数据7可以列出关于包含在相应容器中的经编码内容中使用的音频和/或视频的编码格式的其他细节。例如,对于音频,元数据7可以指定在编码层处使用的信道数和/或采样率。和/或对于视频,元数据7可以指定在编码层中使用的纵横比和/或每秒帧数。
包括元数据7的每个容器2根据合适的媒体容器格式进行格式化。例如,容器格式可以包括基于ISOBMFF的格式(意指ISO/IEC 14496-12)或其任何扩展或衍生物(如MP4、3GP、3G2或CMAF)。作为另一示例,容器格式可以包括MPEG-2TS。容器格式有时也被称为文件格式,并且单独的容器有时被称为文件(或文件数据块),但是应注意,在本上下文中,这并不暗示在传送侧或接收侧以所述形式永久存储,也不暗示是用户可通过其操作系统的文件系统单独访问的文件。在第二层B处的比特流(包括(一个或多个)容器2,所述容器2包含容器元数据7)在本领域中有时被称为传输比特流。
任选地,对于流式传输场景,从层级上来说,数据结构99可以包括在第二层B之上的第三层C。此第三层包括根据如MPEG-DASH或HLS的流式传输格式进行格式化的媒体演示描述文件1。此描述文件1包括存储在传送装置(例如,服务器)上的一个或多个容器序列中的每个媒体容器2的相应指针。当流式传输事件被启动时,在回放开始之前,接收装置(从服务于数据结构99的其余部分的同一服务器)下载媒体演示描述文件1,并使用此媒体演示描述文件1随后以流式传输的方式从所述服务器或其他这样的传送装置获取流式传输的数据结构99的容器2。在一些情况下,还提供了一种用于向接收装置发信号通知媒体演示描述文件1的改变并使接收装置再次下载媒体演示描述文件1的机制。例如,描述文件1可以被再次下载,以在如定时器到期的事件发生时刷新所述描述文件1(例如,DASH中的.mpd文件1可以指定“请2分钟后再次获取以检查是否有更新”等)。
如先前所提及的,容器2的有效载荷15n还可以包括数据轨道或其一部分(图1B中未示出)。如图1C所示,数据轨道可以被用于包括如JavaScript的可运行代码(例如,可运行脚本)12。根据本公开,媒体容器2中的至少一个媒体容器中的嵌入的脚本12被用来提供附加部件,所述附加部件用于处理接收到的数据结构99本身的层A、B、C中的一个或多个层的格式化中的一些或所有格式化。此脚本包括明确被包括在(一个或多个)媒体容器2、例如ISOBMFF容器(或MPEG-2TS容器等)中的附加部件。因此,当由接收装置(其媒体引擎本身不具有访问接收到的数据结构99的全部的格式化所需的所有部件)接收时,则接收装置反而可以提取嵌入的代码并运行此代码以提供原本丢失的功能。
此想法进一步图示在图1D和图1E中。图1D示出了通信系统,在所述通信系统中,接收装置20缺少访问接收到的数据结构99的所有格式化所需的一个或多个部件。通信系统包括:媒体数据结构99的生成器的生成装置8、媒体数据结构99的提供商的提供装置9(例如,传送装置)、用于接收数据结构99并播放其中包装的内容的接收装置20、以及如网络或可转移存储介质的传递介质(接收装置20通过所述传递介质70从提供装置9接收数据结构99)。
生成装置8和提供装置9中的每一个可以包括一个或多个设备,例如,一个或多个服务器和/或用户终端。提供装置9可以与生成装置8分离、或相同、或部分一致。提供方(提供商)可以与生成方(生成器)相同、不同、或部分一致。在实施例中,提供装置9包括如网页服务器(web server)的服务器,其被布置成通过网页浏览器(web browser)来供应要消费的内容。还应注意,如本文所使用的术语“服务器”可以指被实施为处于一个或多个地理位置的一个或多个物理服务器单元的实体。分布式存储和计算技术本身在本领域是已知的。
接收装置20可以包括一个或多个设备,所述一个或多个设备包括至少一个用户播放设备。在实施例中,接收装置可以采取单个用户播放设备的形式,例如,台式计算机或膝上型计算机、平板计算机、智能电话、专用媒体播放器设备或智能电视等。在其他实施例中,接收装置20可以包括多个单独的设备,例如,用于执行接收到的数据结构99的处理中的一些或所有处理的第一设备,以及连接到第一设备以用于执行任何其余的处理并播放经解码的媒体的一个或多个其他第二设备。例如,第一设备可以包括机顶盒(STB),并且第二设备可以包括电视机。或者作为另一示例,第一设备可以包括台式计算机、膝上型电脑、平板计算机或智能电话,并且(一个或多个)第二设备可以包括家庭媒体系统。在实施例中,接收装置20可以是遍布家庭、办公室或其他场所分布的媒体设备的网络。此外,应注意,分布式计算技术本身在本领域中是已知的。在一些实施例中,接收装置20甚至可以采取用于媒体的公共消费的系统的形式,如电影院。
提供装置9被布置成通过传递介质70向接收装置20提供包括所述一个或多个容器2的数据结构99,以用于接收装置20进行处理和播放。在前面在图1D中示出了给定的容器2,但是应当理解,类似的教导可以关于每个媒体容器2来应用。在实施例中,传递介质70包括数据网络,例如,如因特网的广域分组交换网络和/或如3GPP网络的移动蜂窝网络。在这样的实施例中,提供装置9被布置成例如以流式传输的方式通过网络70(例如,因特网)将数据结构99传送到接收装置20。例如,提供商可以包括“过顶”(OTT)内容提供商,如通过因特网供应流式传输的视频和/或音频内容的视频或音频流式传输服务,例如,流式传输电影、点播的电视节目或歌曲/曲子等。然而,在替代性实施例中,不排除传递介质70反而包括如记忆棒、可移除驱动器或CD的可转移存储设备。在这种情况下,提供商装置9将数据结构99存储在存储介质上,所述存储介质然后被转移到接收装置,以从存储介质中读取数据结构。
在实施例中,接收装置20包括:接收控制器21、访问控制器22、代码引擎10和媒体引擎40。这些元件中的每一个可以以存储在接收装置20的计算机可读存储装置上的软件的形式来实施并且被布置成在接收装置20的一个或多个处理器上运行。其上存储有元件10、21、22、40的存储装置可以例如包括磁性存储单元(包括如硬盘的磁性存储介质)、电子存储单元(包括如闪速存储器或其他EEPROM(固态驱动器)的电子存储介质)、或者采用一个或多个存储介质的一个或多个存储单元的组合。在其上运行元件10、21、22、40的一个或多个处理器可以例如包括一个或多个CPU、协同处理器、GPU或其他工作加速器处理器等。在替代性实施方式中,不排除元件10、21、22、40中的一些或所有元件反而可以替代性地实施在专用硬件电路或者如PGA或FPGA的可配置或可重新配置电路中,或者硬件和软件的任何组合中。
代码引擎10是用于运行以一种或多种语言表述的代码的功能模块。代码引擎10可以采取脚本引擎的形式,所述脚本引擎可以指用于解释或编译代码(例如,基于即时编译)的任何形式的虚拟机或沙箱式执行环境。在实施例中,元件10、21、22、40中的任何一个、一些或所有元件可以是网页浏览器的一部分或网页浏览器的插件或其组合。在这样的实施例中,访问控制器22可以采取HTTP访问控制器的形式。脚本引擎10可以是网页浏览器的固有脚本引擎或网页浏览器的插件。媒体引擎40可以采取单独的应用的形式,如专用媒体播放器应用、或VoIP应用、或网页浏览器的插件应用(脚本引擎10通过合适的API(应用编程接口)接口连接至所述应用)。替代性地,在一些实施例中,媒体引擎40可以采取在脚本引擎10上运行的脚本之一的形式。
接收控制器21被配置成确定从传递介质70接收哪些数据并相应地控制访问控制器22从传递介质70取得确定的数据(数据结构99)。例如,在这些元件21、22是网页浏览器的一部分的实施例中,可以基于接收装置20的用户通过网页浏览器选择访问某个网页站点或页面、或接收装置20的用户选择网页页面内的某个用户可选控件等,来确定要取得什么。脚本引擎10可以包括用于运行JavaScript的JavaScript引擎。
在传递介质70包括如因特网的网络的情况下,接收控制器21包括用于确定要下载什么的下载控制器,并且数据结构(和其容器2)的接收包括通过网络70(例如,因特网)从提供装置9(例如,服务器)下载数据结构99。在实施例中,此下载包括以流式传输的方式下载,并且下载控制器21包括流式传输控制器。替代性地,不排除下载包括一下子下载数据结构99并在播放之前作为整体存储(但是应注意,如本文所使用的术语“下载”不限于此,并且更一般地还可以用于涵盖以流式传输的方式下载媒体)。
访问控制器22被配置为向脚本引擎10供应接收到的数据结构99的媒体容器2。脚本引擎10将接收到的数据结构99转发至媒体引擎40,以用于播放其中封装和编码的音频和/或视频内容3、4。脚本引擎10被布置成运行预先存储在接收装置20本地的脚本(例如,JavaScript),此脚本提供一个或多个预先存在的部件11。现有部件11可以例如包括将媒体数据结构99(或至少其的一部分)转发至媒体引擎40以供播放的API。然而,在一些情况下,这些预先存在的部件11中没有一个部件可以识别接收到的数据结构99的格式化或者至少不完全识别。现有部件11可以包括识别出数据结构是否具有媒体引擎40所支持的格式并且如果不支持则终止过程而不转发至媒体引擎40的部件。替代性地,现有部件11仍然可以以媒体引擎40无法处理或至少无法完全处理的形式30将数据结构99(或其的一部分)转发至媒体引擎40。因此,媒体引擎40的输出50包括无输出或者至多部分输出。
格式可能不受支持的潜在原因有很多。例如,媒体引擎40可能不能处理到来的(一个或多个)媒体容器2的媒体容器格式。例如,媒体引擎40可能不能处理ISOBMFF(可能只能处理如MPEG-2TS的另一容器格式),或者媒体引擎40可以能够处理基本的ISOBMFF标准ISO/IEC 14496-12,但不能处理其扩展。在其他示例中,媒体引擎40可以能够完全处理(一个或多个)容器2的容器格式,但是不能将用于对(一个或多个)容器2内的音频和/或媒体内容3、4进行编码的编码方案进行解码。在另一示例中,媒体可以包括相同类型的多个流(即,多个音频流或多个视频流),但是媒体引擎40可能仅包括每种媒体类型的一个缓冲器(一个音频缓冲器和一个视频缓冲器)。在这种情况下,媒体引擎可以播放音频流中的仅一个音频流和/或视频流中的仅一个视频流,从而导致体验不完整。
为了解决这样的问题或类似问题,生成装置8或提供装置9被配置成将如脚本(例如,JavaScript)12的可运行代码嵌入到数据结构99的所述一个或多个容器2中的至少一个容器中。下面将在如JavaScript的脚本方面进行例示。嵌入的脚本12被配置成当在接收侧运行时,提供媒体引擎40可能潜在地缺少的一个或多个部件。脚本引擎10被配置成提取嵌入的脚本12并在接收装置20上运行所述嵌入的脚本12。因此,处理媒体数据结构99所需的(一个或多个)附加部件通过媒体数据结构99本身的容器格式被输送到接收装置20。
此附加处理可以包括例如将(一个或多个)接收到的媒体容器2的容器格式转换成媒体引擎40识别的格式。例如,这可以是从ISOBMFF转换成MPEG-2TS。在其他替代性或附加示例中,借助于脚本12输送的部件之一可以被配置成将经编码的音频和/或视频内容转码至媒体引擎40能够解码的编码方案,或者对经编码的音频和/或视频进行解码以将经解码的媒体直接供应至媒体引擎40以供播放。例如,输送的部件12之一可以从AC-4、MPEG-DUSAC或MPEG-H标准转码至如MP3编码的更早的编码标准;或者从AC-4、MPEG-D USAC或MPEG-H直接转码至PCM(脉冲编码调制)。在又另外的替代性或附加示例中,输送的部件12可以被配置成将接收到的媒体中的多个音频流多路复用成同一音频流以通过媒体引擎40的同一音频缓冲器进行播放,和/或将接收到的媒体中的多个视频流多路复用成同一视频流以通过媒体引擎40的同一视频缓冲器进行播放。这可以有利地克服当前浏览器中的限制,由此,一种媒体类型被绑定到一个媒体源缓冲器(所有音频都经过一个音频缓冲器,或者所有视频都经过一个视频缓冲器)。
无论附加处理采取何种形式,脚本引擎10然后都将数据结构99的经处理版本30’(在处理(一个或多个)输送的部件12之后)输入到媒体引擎40,以用于音频和/或视频媒体内容的播放50’。一般来说,根据附加处理,输入到媒体引擎40的经处理的数据结构30’可以是经解码的媒体内容、或经转码的媒体、或可由媒体引擎40处理的任何格式的媒体。
图1F和图2至图4图示了ISOBMFF下载的示例。在此示例中,接收到的媒体数据结构99仅包括ISOMBFF文件形式的单个容器2,提供装置9采取服务器的形式,传递介质70采取如因特网的网络70的形式,并且接收控制器21采取下载控制器的形式。任选地,提供装置9可以采取网页服务器的形式,访问控制器22可以采取HTTP访问控制器的形式,并且至少脚本引擎10可以是网页浏览器的脚本引擎,例如JavaScript引擎。
图1F示出了ISOBMFF文件中没有嵌入的脚本12并且媒体引擎40不能处理ISOBMFF(例如,反而只能处理MPEG-2TS)的情况。在脚本引擎10上运行的现有部件11识别出接收到的数据结构99包括媒体引擎40不能解封装的容器格式并且终止过程,或者所述现有部件11仅仅是以媒体引擎40无法处理的格式(ISOBMFF)将接收到的媒体数据结构99直接转发至媒体引擎40。无论哪种方式,这都不会从媒体引擎40产生媒体输出50。
图2图示了根据本文公开的实施例的对应场景,但是在所述场景中,合适的转换脚本12被嵌入在媒体数据结构99中。脚本引擎10被配置成识别出媒体引擎40不能处理接收到的数据结构99的媒体容器格式,而且还识别出接收到的媒体数据结构99包含能够将接收到的容器格式转换成被识别的容器格式(例如,ISOBMFF到MPEG-2TS)的嵌入的脚本12。作为响应,脚本引擎10提取并运行脚本12,以处理接收到的数据结构99的容器格式用于输入30’到媒体引擎40。然后,媒体引擎40能够解封装经转换的容器格式、对其中的经编码的内容进行解码、并且输出经解码的内容50’。应注意:在这样的实施例中,脚本引擎10通常将必须理解容器格式(例如,ISOBMFF)的某个方面,但是可以不理解容器格式的特定变体(例如,ISOBMFF的扩展之一)。
图3和图4分别示出了对应于图1F和图2的框图的信令图。在图3的过程中,在第一步骤中,下载控制器21向访问控制器22发送指示访问控制器22下载媒体容器2(例如,文件)的命令getMediaFile(URL)。在第一步骤之后的第二步骤中,访问控制器22向服务器9发送请求媒体文件2的请求httpGet(媒体文件)。在第二步骤之后的第三步骤中,服务器9响应于该请求将媒体文件2返回至访问控制器22。在这种情况下,媒体文件2不包含嵌入的脚本12。在第三步骤之后的第四步骤中,访问控制器22将接收到的文件2转发至脚本引擎10。在第四步骤之后的第五步骤中,在脚本引擎10上运行的现有部件11之一识别出接收到的文件2的媒体容器格式不受媒体引擎40支持并且终止过程。因此,没有来自媒体引擎40的对应媒体输出。
图4图示了这样的过程:其中,除了接收到的文件2包含嵌入的脚本之外,第一步骤到第四步骤与图3中相同。在这种情况下,在第四步骤之后的第五步骤中,由在脚本引擎10上运行的脚本12提供的附加部件将接收到的文件2的媒体容器格式转换成媒体引擎40支持的格式。在第五步骤之后的第六步骤中,附加部件12将转换格式的媒体转发至媒体引擎40以供播放。因此,媒体引擎40成功地输出媒体内容。
图5至图6图示了图1F和图2的变体。这是使用MPEG-DASH来流式传输ISOBMFF容器的示例。在此示例中,接收到的媒体数据结构99包括MPEG-DASH(MPG)文件形式的媒体演示描述文件1。接收到的媒体数据结构99进一步包括一系列ISOBMFF容器2,其是基于接收到的MPD文件以流式传输的方式接收的。提供装置9采取服务器的形式,传递介质70采取如因特网的网络70的形式,并且接收控制器21采取流式传输控制器的形式。任选地,提供装置9可以采取网页服务器的形式,访问控制器22可以采取HTTP访问控制器的形式,并且至少脚本引擎10可以是网页浏览器的脚本引擎,例如JavaScript引擎。任选地,提供装置9可以采取网页服务器的形式,访问控制器22可以采取HTTP访问控制器的形式,并且至少脚本引擎10可以是网页浏览器的脚本引擎,例如JavaScript引擎。
图5还图示了接收到的媒体数据结构99的问题在于媒体内容3或4是根据媒体引擎不支持的编码格式进行编码的示例。然而一般来说,应注意,媒体数据结构99是作为整体下载还是被流式传输的问题与如下问题无关,即问题是否是对编码格式、容器格式还是其他格式化问题的支持。
图5示出了流式传输的数据结构99的容器2中的任何容器中都没有嵌入的脚本12并且媒体引擎40不能处理在接收到的容器2的第一层A中使用的编码格式X(例如,AC-4、MPEG-D USAC或MPEG-H)的情况。在脚本引擎10上运行的现有部件11识别出接收到的数据结构99使用媒体引擎40不能解码的编码格式并且终止过程,或者所述现有部件11仅仅是以媒体引擎40无法处理的经编码的形式将接收到的经编码的媒体5直接转发至媒体引擎40。无论哪种方式,这都不会从媒体引擎40产生媒体输出50。
图6图示了根据本文公开的实施例的对应场景,但是在所述场景中,合适的转码或解码脚本12被嵌入在媒体数据结构99中。脚本引擎10被配置成识别出媒体引擎40不能对在接收到的数据结构99中使用的编码格式进行解码,而且还识别出接收到的媒体数据结构99包含嵌入的脚本12,其能够将接收到的编码格式转码成媒体引擎40识别的编码格式(例如,转码至MP3)或对经编码的媒体5进行解码。作为响应,脚本引擎10提取并运行脚本12,以对接收到的数据结构99的经编码的媒体内容5进行转码或解码,以用于输入30’到媒体引擎40。然后,媒体引擎40能够对经转码的编码格式进行解码以供播放,或者播放由脚本12解码的经解码的媒体。
图7图示了将多个流多路复用的示例。此处,所述(或每个)容器2在第一层(层A)处包括轨道形式的多个音频流4a、4b。例如,所述多个流可以采取AC-4或MPEG-H音频中的不同相应子流的形式。输送的脚本12包括转换算法,所述转换算法被配置成将所述多个音频流4a、4b多路复用成单个音频流4a+b。经多路复用的流4a+b被输入到媒体引擎40的单个音频缓冲器以供播放。例如,在仅具有单个音频缓冲器并且原本只能播放轨道之一从而导致音频体验不完整的现有网页浏览器的情况下,这可以是有用的。在多流场景的变体中,不同的流可以在第二层(层B)处采取不同资产的形式。在这种情况下,脚本12将来自不同资产13的流多路复用成单个流,以通过媒体引擎40的单个音频缓冲器进行播放。多路复用通常可以包括合并基本流,所述基本流可以是容器2的一个文件或序列中的不同轨道或者是更高层处的不同的流。
虽然图7中未明确图示,但是类似的多路复用技术可以替代性地或另外地应用于多个视频流,如用于分层的或可缩放的视频流的流。
应当理解,以上实施例仅通过举例进行了描述。
例如,所描述的技术不限于网页浏览器的背景。元件10、21、22、40中的任何一个、多个或所有元件可以在除网页浏览器之外的另一类型的应用中实施,例如,专用媒体播放器应用或VoIP应用等;或者作为另一示例,实施为接收装置20的操作系统的元件;或者甚至在专用硬件中实施;或者以这样的实施方式的任何组合实施。进一步地,嵌入的代码12不限于是JavaScript。在其他实施例中,嵌入的代码12可以采取如下形式:用于在接收装置20的任何种类的虚拟机或沙箱式执行环境、或者更一般地用于解释或编译可运行代码(例如,通过即时编译)的任何其他引擎中运行的任何脚本。例如,在一个替代方案中,可运行代码12可以包括Webassembly代码。此外,本公开的范围不限于本文公开的特定示例的流式传输格式、容器格式和编码格式。例如,对于音频,在接收到的数据结构99中发现的媒体编码方案可以包括下列中的任何一种:AC-3、EAC-3、AC-4、MPEG-4AAC、MPEG-D、MPEG-H音频或其他;并且嵌入的部件12可以转码至下列中的任何一种:AAC家族的编解码器、mp3、Opus或其他。类似地,各种视频编码格式、媒体容器格式和流式传输格式对于本领域技术人员而言是已知的。更一般地,类似的技术可以应用于转换或访问媒体引擎40不可直接处理的任何种类的数据结构格式。
一旦给出了本文的公开内容,其他变体或应用对于本领域技术人员而言就可以变得明显。本公开的范围不受本公开的限制,而是仅受所附权利要求的限制。
可以从以下列举的示例实施例(EEE)中理解本发明的各个方面:
1.一种从运行在接收装置上的媒体引擎播放媒体的方法,所述方法包括:
在所述接收装置处接收媒体数据结构,所述媒体数据结构包括被格式化成多个层的音频或视频内容,所述多个层至少包括第一层和第二层,所述第一层包括分别根据音频或视频编码方案进行编码的所述音频或视频内容,并且所述第二层根据媒体容器格式将经编码的内容封装在一个或多个媒体容器中;
确定所述媒体容器中的至少一个媒体容器进一步封装有用于处理所述媒体数据结构的格式化中的至少一些格式化的可运行代码,以支持所述媒体引擎对所述音频或视频内容的播放;
在所述接收装置的代码引擎上运行所述代码,以执行对所述媒体数据结构的所述处理而用于输入到所述媒体引擎;以及
在通过至少所述代码进行处理之后,将所述数据结构的经处理版本输入到所述媒体引擎,以播放所述媒体内容。
2.如EEE 1所述的方法,其中,所述代码引擎和所述媒体引擎中的一个或两个被合并在运行于所述接收装置上的网页浏览器中或所述网页浏览器的插件中。
3.如EEE 1或2所述的方法,其中,所述内容是音频内容,并且所述编码方案是音频编码方案。
4.如任一前述EEE所述的方法,其中,在接收到的数据结构中使用的所述媒体编码方案是ETSI标准或MPEG标准。
5.如EEE 3和4所述的方法,其中,在接收到的数据结构中使用的所述媒体编码方案包括以下各项之一:AC-4、AC-3、EAC-3、MPEG-4AAC、MPEG-D USAC或MPEG-H音频。
6.如任一前述EEE所述的方法,其中,所述容器格式是ISO基础媒体文件格式。
7.如任一前述EEE所述的方法,其中,所述代码采取JavaScript的形式。
8.如任一前述EEE所述的方法,其中,所述处理包括处理所述第一层的格式化中的至少一部分格式化。
9.如任一前述EEE所述的方法,其中,所述处理包括处理所述第二层的格式化中的至少一部分格式化。
10.如EEE 8所述的方法,其中,所述媒体引擎不包括能够对在接收到的媒体资源中使用的所述编码方案进行解码的解码器;并且其中,所述处理包括以下各项中的任一项:通过所述媒体引擎对所述内容进行解码以进行播放、或者将所述媒体内容转码至所述媒体引擎能够解码的第二编码方案。
11.如EEE 8或10所述的方法,其中,所述媒体数据结构包括多个音频流或多个视频流,并且其中,所述处理包括将所述多个音频流多路复用成同一音频流以通过所述媒体引擎的同一音频缓冲器进行播放,或者将所述多个视频流多路复用成同一视频流以通过所述媒体引擎的同一视频缓冲器进行播放。
12.如EEE 3和10所述的方法,其中,所述第二编码方案包括以下各项之一:AAC标准、MP3、Opus或PCM方案。
13.如EEE 9所述的方法,其中,所述媒体引擎不能访问在接收到的资源中使用的所述容器格式,并且其中,所述处理包括转换成所述媒体引擎能够访问的第二容器格式。
14.如EEE 13所述的方法,其中,所述第二容器格式是MPEG-2TS。
15.一种计算机程序,包括在计算机可读存储装置上实施的软件并且被配置成当在所述接收装置的一个或多个处理器上运行时执行如EEE 1至14中任一项所述的方法。
16.一种用于执行如EEE 1至14中任一项所述的方法的接收装置,所述接收装置包括:
接口,所述接口用于接收所述媒体数据结构;
控制器,所述控制器被配置成执行所述确定;
所述代码引擎,所述代码引擎被布置成执行所述代码的所述运行;以及
所述媒体引擎,所述媒体引擎被布置成在所述处理之后执行所述媒体内容的所述播放。
17.一种供应媒体的方法,所述方法包括:
输出媒体数据结构以用于接收装置接收,所述媒体数据结构包括被格式化成多个层的音频或视频内容,所述多个层至少包括第一层和第二层,所述第一层分别根据音频或视频编码方案对所述音频或视频内容进行编码,所述第二层根据媒体容器格式将经编码的内容封装在一个或多个媒体容器中;
其中,所述媒体容器中的至少一个媒体容器进一步封装有用于处理所述媒体数据结构的格式化中的至少一些格式化的可运行代码,以支持所述接收装置的媒体引擎对所述音频或视频内容的播放。
18.一种用于生成媒体数据结构的装置,所述装置包括:一个或多个处理器,和存储被布置成在所述一个或多个处理器中的至少一个处理器上运行的代码的存储装置;所述代码被配置成当如此运行时执行以下操作:
生成媒体数据结构,所述媒体数据结构包括被格式化成多个层的音频或视频内容,所述多个层至少包括第一层和第二层,所述第一层分别根据音频或视频编码方案对所述音频或视频内容进行编码,所述第二层根据媒体容器格式将经编码的内容封装在一个或多个媒体容器中;以及
在所述媒体容器中的至少一个媒体容器中进一步封装用于处理所述媒体数据结构的格式化中的至少一部分格式化的可运行代码,以支持媒体引擎对所述音频或视频内容的播放。
19.一种在计算机可读存储装置上实施的媒体数据结构,所述媒体数据结构包括:
音频或视频内容,所述音频或视频内容被格式化成多个层,所述多个层至少包括第一层和第二层,所述第一层分别根据音频或视频编码方案对所述音频或视频内容进行编码,所述第二层根据媒体容器格式将经编码的内容封装在一个或多个媒体容器中;以及
被封装在所述媒体容器中的至少一个媒体容器中的可运行代码,所述可运行代码用于处理所述媒体数据结构的格式化中的至少一部分格式化,以支持媒体引擎对所述音频或视频内容的播放。
Claims (13)
1.一种从运行在接收装置上的媒体引擎播放媒体的方法,所述方法包括:
在所述接收装置处接收媒体数据结构,所述媒体数据结构包括被格式化成多个层的媒体内容,所述多个层至少包括第一层和第二层,所述第一层包括根据媒体编码方案进行编码的所述媒体内容,并且所述第二层根据媒体容器格式将经编码的媒体内容封装在一个或多个媒体容器中;
识别所述媒体引擎不能访问所述媒体数据结构的所述第二层的所述媒体容器格式;
确定所述媒体容器中的至少一个媒体容器进一步封装有用于处理所述媒体数据结构的格式化中的至少一些格式化的可运行代码,其中所述处理包括处理所述第二层的格式化中的至少一部分格式化,以将所述媒体数据结构转换为所述媒体引擎能够访问的第二媒体容器格式,由此支持所述媒体引擎对所述媒体内容的播放;
在所述接收装置的代码引擎上运行所述可运行代码,以执行所述处理所述媒体数据结构的所述格式化中的至少一些格式化以用于输入到所述媒体引擎;以及
将所述媒体数据结构的经处理版本输入到所述媒体引擎,以播放所述媒体内容。
2.如权利要求1所述的方法,其中,所述处理所述媒体数据结构的所述格式化中的至少一些格式化还包括:处理所述第一层的格式化中的至少一部分格式化。
3.如权利要求2所述的方法,其中,所述媒体引擎不包括能够对在所述媒体数据结构中使用的所述媒体编码方案进行解码的解码器;并且其中,所述处理所述第一层的所述格式化中的至少一部分格式化包括以下各项中的任一项:通过所述媒体引擎对所述媒体内容进行解码以进行播放、或者将所述媒体内容转码至所述媒体引擎能够解码的第二媒体编码方案。
4.如权利要求2或3所述的方法,其中,所述媒体数据结构包括多个音频流或多个视频流,并且其中,所述处理所述媒体数据结构的所述格式化中的至少一些格式化包括:将所述多个音频流中的至少两个音频流多路复用成同一音频流以通过所述媒体引擎的同一音频缓冲器进行播放,或者将所述多个视频流中的至少两个视频流多路复用成同一视频流以通过所述媒体引擎的同一视频缓冲器进行播放。
5.如权利要求1至3中任一项所述的方法,其中,所述代码引擎和所述媒体引擎中的一个或两个被合并在运行于所述接收装置上的网页浏览器中或所述网页浏览器的插件中。
6.如权利要求1至3中任一项所述的方法,其中,所述媒体内容是音频内容,并且所述媒体编码方案是音频编码方案。
7.如权利要求1至3中任一项所述的方法,其中,在所述媒体数据结构中使用的所述媒体编码方案是ETSI标准或MPEG标准。
8.如权利要求6所述的方法,其中,在所述媒体数据结构中使用的所述媒体编码方案包括以下各项之一:AC-4、AC-3、EAC-3、MPEG-4AAC、MPEG-D USAC或MPEG-H音频。
9.如权利要求1至3中任一项所述的方法,其中,所述媒体容器格式是ISO基础媒体文件格式。
10.如权利要求1至3中任一项所述的方法,其中,所述可运行代码采取JavaScript的形式。
11.如权利要求3所述的方法,其中,所述媒体内容是音频内容并且所述媒体编码方案是音频编码方案,并且其中,所述第二媒体编码方案包括以下各项之一:AAC标准、MP3、Opus或PCM方案。
12.如权利要求1所述的方法,其中,所述第二媒体容器格式是MPEG-2TS。
13.一种计算机可读存储装置,所述计算机可读存储装置具有体现于其上的软件,所述软件被配置成当在接收装置的一个或多个处理器上运行时执行如权利要求1至12中任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862694107P | 2018-07-05 | 2018-07-05 | |
US62/694,107 | 2018-07-05 | ||
EP18181820.4 | 2018-07-05 | ||
EP18181820 | 2018-07-05 | ||
PCT/EP2019/067870 WO2020007922A1 (en) | 2018-07-05 | 2019-07-03 | Processing media data structures |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112369041A CN112369041A (zh) | 2021-02-12 |
CN112369041B true CN112369041B (zh) | 2022-10-28 |
Family
ID=67070869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980044999.0A Active CN112369041B (zh) | 2018-07-05 | 2019-07-03 | 播放媒体的方法和计算机可读存储装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11368745B2 (zh) |
EP (1) | EP3818722A1 (zh) |
CN (1) | CN112369041B (zh) |
WO (1) | WO2020007922A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3818722A1 (en) * | 2018-07-05 | 2021-05-12 | Dolby International AB | Processing media data structures |
JP7170621B2 (ja) * | 2018-12-10 | 2022-11-14 | 株式会社東芝 | コンテンツ配信システム、コンテンツ配信装置、及び方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480537B1 (en) * | 1999-02-25 | 2002-11-12 | Telcordia Technologies, Inc. | Active techniques for video transmission and playback |
CN101543011A (zh) * | 2006-11-30 | 2009-09-23 | 索尼爱立信移动通讯有限公司 | 将多媒体内容和解码装置捆绑的方法 |
CN102075528A (zh) * | 2010-12-27 | 2011-05-25 | 上海聚欣网络科技有限公司 | 一种播放多种封装格式的网络多媒体文件的方法与设备 |
WO2012047507A1 (en) * | 2010-09-28 | 2012-04-12 | Onecodec, Ltd. | Systems and methods for encoding and decoding |
CN104394456A (zh) * | 2014-11-20 | 2015-03-04 | 福建星网视易信息系统有限公司 | 一种嵌入式环境下音视频解码的方法及装置 |
CN106537925A (zh) * | 2014-08-04 | 2017-03-22 | 利奇传媒公司 | 使得能够在经由移动设备访问的互联网网页上嵌入、流传送和显示视频广告和内容的系统和方法 |
CN108076364A (zh) * | 2016-11-07 | 2018-05-25 | 韩华泰科株式会社 | 自适应媒体流传输设备和媒体服务设备 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9219729B2 (en) * | 2004-05-19 | 2015-12-22 | Philip Drope | Multimedia network system with content importation, content exportation, and integrated content management |
US7711718B2 (en) | 2007-04-03 | 2010-05-04 | Nokia Corporation | System and method for using multiple meta boxes in the ISO base media file format |
CN101682718B (zh) | 2007-04-04 | 2015-09-09 | 韩国电子通信研究院 | 基于iso基本媒体文件格式的mpeg-2传输流的存储/回放方法和设备 |
KR101781873B1 (ko) * | 2010-04-19 | 2017-09-26 | 엘지전자 주식회사 | 인터넷 기반 컨텐츠 송수신 방법 및 그를 이용한 송수신 장치 |
US20130097334A1 (en) | 2010-06-14 | 2013-04-18 | Thomson Licensing | Method and apparatus for encapsulating coded multi-component video |
JP2014531142A (ja) | 2011-08-16 | 2014-11-20 | デスティニーソフトウェアプロダクションズ インク | スクリプトをベースとするビデオ・レンダリング |
KR101761302B1 (ko) | 2012-08-22 | 2017-07-25 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Mpeg-2 트랜스포트 스트림에서 iso-bmff 이벤트 박스의 캐리지 |
US9635394B2 (en) * | 2013-01-24 | 2017-04-25 | Electronics And Telecommunications Research Institute | Method and device for flexible MMT asset transmission and reception |
US10177912B2 (en) * | 2014-05-09 | 2019-01-08 | Sony Corporation | Content individualization |
KR102202597B1 (ko) * | 2014-06-20 | 2021-01-13 | 삼성전자주식회사 | 이종망 기반 방송 서비스를 제공하는 방법 및 장치 |
US10924781B2 (en) | 2014-06-27 | 2021-02-16 | Satellite Investors, Llc | Method and system for real-time transcoding of MPEG-DASH on-demand media segments while in transit from content host to dash client |
EP3155546A4 (en) * | 2014-08-01 | 2018-02-28 | Sony Corporation | Content format conversion verification |
WO2016204490A1 (ko) * | 2015-06-16 | 2016-12-22 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 |
US10855741B2 (en) | 2015-08-06 | 2020-12-01 | Sensormatic Electronics, LLC | System and method for multiplexed video stream decoding in web browser |
US10298646B2 (en) * | 2016-04-27 | 2019-05-21 | Google Llc | Similar introduction advertising caching mechanism |
KR102321859B1 (ko) * | 2016-07-21 | 2021-11-03 | 한화테크윈 주식회사 | 자바 스크립트를 이용한 실시간 미디어 스트리밍 방법 및 그 장치 |
EP3697098A1 (en) * | 2017-10-12 | 2020-08-19 | Sony Corporation | Image processing device, image processing method, transmission device, transmission method and reception device |
EP3818722A1 (en) * | 2018-07-05 | 2021-05-12 | Dolby International AB | Processing media data structures |
US10582232B1 (en) * | 2018-10-31 | 2020-03-03 | Amazon Technologies, Inc. | Transcoding frame-synchronous metadata for segmented video delivery |
-
2019
- 2019-07-03 EP EP19733836.1A patent/EP3818722A1/en active Pending
- 2019-07-03 WO PCT/EP2019/067870 patent/WO2020007922A1/en active Application Filing
- 2019-07-03 US US17/257,847 patent/US11368745B2/en active Active
- 2019-07-03 CN CN201980044999.0A patent/CN112369041B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480537B1 (en) * | 1999-02-25 | 2002-11-12 | Telcordia Technologies, Inc. | Active techniques for video transmission and playback |
CN101543011A (zh) * | 2006-11-30 | 2009-09-23 | 索尼爱立信移动通讯有限公司 | 将多媒体内容和解码装置捆绑的方法 |
WO2012047507A1 (en) * | 2010-09-28 | 2012-04-12 | Onecodec, Ltd. | Systems and methods for encoding and decoding |
CN102075528A (zh) * | 2010-12-27 | 2011-05-25 | 上海聚欣网络科技有限公司 | 一种播放多种封装格式的网络多媒体文件的方法与设备 |
CN106537925A (zh) * | 2014-08-04 | 2017-03-22 | 利奇传媒公司 | 使得能够在经由移动设备访问的互联网网页上嵌入、流传送和显示视频广告和内容的系统和方法 |
CN104394456A (zh) * | 2014-11-20 | 2015-03-04 | 福建星网视易信息系统有限公司 | 一种嵌入式环境下音视频解码的方法及装置 |
CN108076364A (zh) * | 2016-11-07 | 2018-05-25 | 韩华泰科株式会社 | 自适应媒体流传输设备和媒体服务设备 |
Non-Patent Citations (2)
Title |
---|
"Adaptive time division multiplexing transmission scheme for the distributed video coding";Linghui Lu等;《 2016 International Conference on Optoelectronics and Image Processing (ICOIP)》;20160804;全文 * |
"基于RTMP的高清流媒体直播点播封装技术的研究与实现";孙业宝;《中国优秀硕士学位论文全文数据库》;20160315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US11368745B2 (en) | 2022-06-21 |
WO2020007922A1 (en) | 2020-01-09 |
US20210297729A1 (en) | 2021-09-23 |
EP3818722A1 (en) | 2021-05-12 |
CN112369041A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11483598B2 (en) | Method and system for real-time transcoding of MPEG-DASH on-demand media segments while in transit from content host to dash client | |
US10542325B2 (en) | Method and system for haptic data encoding and streaming using a multiplexed data stream | |
KR100928998B1 (ko) | 사용자 단말기에 멀티미디어 컨텐츠와 코덱을 제공하는적응적 멀티미디어 시스템 및 그 방법 | |
US9258333B2 (en) | Method for recovering content streamed into chunk | |
US20030061369A1 (en) | Processing of multimedia data | |
CN110870282B (zh) | 使用网络内容的文件轨处理媒体数据 | |
WO2012032502A1 (en) | A method and apparatus for adaptive streaming | |
CN109587514B (zh) | 一种视频播放方法、介质和相关装置 | |
US9979781B2 (en) | Receiving device, receiving method, transmission device, transmission method, and program | |
CN105828096B (zh) | 媒体流文件的处理方法和装置 | |
KR102499231B1 (ko) | 수신 장치, 송신 장치 및 데이터 처리 방법 | |
KR102085192B1 (ko) | 렌더링 시간 제어 | |
CN112369041B (zh) | 播放媒体的方法和计算机可读存储装置 | |
US20050105555A1 (en) | Data processing method and apparatus, and data distribution method and information processing apparatus | |
CN105992044A (zh) | 一种hls转码rtmp直播流的方法及系统 | |
CA2996275C (en) | Receiving apparatus, transmitting apparatus, and data processing method | |
JP2020170183A (ja) | 受信装置および受信方法 | |
JP2022019932A (ja) | 情報処理装置および情報処理方法 | |
Yang et al. | Implementation of HTTP live streaming for an IP camera using an open source multimedia converter | |
KR20170000312A (ko) | 디지털 방송 서비스 방법 및 장치 | |
CN105992016A (zh) | 一种hls在线转码方法及系统 | |
US20180020043A1 (en) | Method for playing audio/video and display device | |
KR102533674B1 (ko) | 수신 장치, 송신 장치 및 데이터 처리 방법 | |
KR101656102B1 (ko) | 컨텐츠 파일 생성/제공 장치 및 방법 |
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 |