专利名称:处理和读取具有媒体数据容器和元数据容器的文件的设备和方法
技术领域:
本发明涉及向具有媒体数据容器和元数据容器的文件存储传输协议数据分组及
与其相关联的辅助信息,和/或从具有媒体数据容器和元数据容器的文件读取传输协议数
据分组及与其相关联的辅助信息,所述文件例如是基于ISO (国际标准化组织)基础媒体文
件格式的文件。
背景技术:
各种电子设备能够接收和呈现媒体数据流。例如,可以根据例如DVB-H标准(数 字视频广播_手持)或DVB-T标准(数字视频广播_地面),从广播媒体流的数字视频广播 网络上接收这样的媒体数据流。 DVB-T使用自包含的MPEG-2 (MPEG =运动图像专家组)传输流,该传输流包含根 据国际标准ISO/IEC 13818(IEC =国际电子技术委员会)的基本MPEG-2视频和音频流。 MPEG-2传输流是一种在当今的许多广播系统中使用的复用流。它是一个或更多个流节目 (典型地是音频和视频以及其他数据)的流复用。MPEG-2传输流在所有媒体流中共享公共 的时钟,并使用加时间戳的媒体样本(访问单元AU)。这实现了发送方与接收方的时钟同 步,以及音频与视频流的口型同步。 对于DVB-H,以RTP (实时传输协议)、UDP (用户数据报协议)、IP (因特网协议)和 MPE(多协议封装)对基本音频和视频流进行封装,以用于IP数据传播。RTP用于多媒体数 据在IP网络上的有效实时传送。典型地,复用是通过将不同的网络端口与每个不同的媒体 流相关联来完成的,例如,一个网络端口用于视频而另一个用于音频。通常,不同的媒体来 自具有不同时钟或时钟速率的不同源。例如,音频样本具有取决于音频采样设备的时钟速 率的采样速率,其中,视频帧的帧速率取决于抓取(grab)设备的时钟速率的视频帧。这样 的时钟可以具有大于百万分之几百的固有频率误差,从而导致每天几十秒的累计误差。术 语"时钟偏移(clock skew)"被定义为时钟的实际振荡器频率与其额定频率之差。如果发 送方的时钟比接收方的时钟运行得快,则这可以导致分组在接收方累积。如果发送方的时 钟比接收方的时钟运行得慢,则将导致接收方缓冲器未充满。因此,如果接收方的时钟速率 不同于发送方的时钟速率,则接收方缓冲器或者渐满或者渐空。此外,时钟偏移可以导致相 关的音频与视频样本在接收方处失去同步。 RTCP(实时传输控制协议)允许RTP流的时钟恢复和同步。RTCP信道与每个RTP 流相关联,并包括以发送方报告(SR)的形式从发送方至接收方的控制信息,反之亦然。每 个RTCP SR包括两个时间戳发送方的系统时钟(参考时间)的NTP(网络时间协议)时间 戳以及关联RTP流的对应的媒体时间戳。对于音频和视频,都要发送这些RTCP SR。从RTP 和NTP的时间值,可以在时间线上设置RTP分组,并且可以完美地同步媒体。
将流服务定义为以时间约束或无约束的方式传送的用于接收过程中立即消耗的 同步媒体流的集合。每个流会话可以包括音频、视频和/或如定时文本之类的实时媒体数
5据。例如,通过移动电视接收电影的媒体数据的用户可以观看该电影和/或将其记录到文 件中。通常,为了这个目的,对接收媒体流的接收数据分组进行解分组,以将原始媒体数 据存储至文件。也就是说,首先对接收到的RTP分组或MPEG-2分组进行解分组,以获得 它们的以媒体数据样本形式的有效载荷。接着,在解分组之后,重放所获得的媒体数据样 本或将其存储至文件。通常,通过如H. 264/ABC(AVC =高级视频编码)视频格式和/或 MPEG-4HE-AACv2 (HE-AACv2 =高效高级音频编码第2版)音频格式的格式来对所获得的媒 体样本进行压縮。在要存储具有这样的视频和/或音频格式的媒体数据样本时,可以以所 谓的3GP文件格式(也称为3GPP (第3代合作伙伴项目)文件格式)或MP4 (MPEG-4)文件 格式对其进行存储。3GP和MP4都是从IS0/IEC国际标准14496-12 :2005 "Information technology-coding of audio-visual objects-part 12 :ISObase media file format,, 中规定的ISO基本媒体文件格式中导出的。为了可以操作这样的文件,这些数据均必须存 在。将媒体数据存储在与文件相关的媒体数据容器(mdat)中,而将元数据存储在文件的元 数据容器(moov)中。传统上,媒体数据容器包括实际媒体样本。即,它可以包括例如隔行 扫描的、按时间排序的视频和/或音频帧。因此,每个媒体在元数据容器moov中具有其自 身的元数据轨道(trak),描述该媒体内容的属性。元数据容器moov中的附加容器(也称为 箱)可以包括关于文件属性、文件内容等的信息。 近来,国际标准化组织定义了针对基于ISO基本媒体文件格式的文件的所谓的 接收提示轨道。这些接收提示轨道可以用于存储复用的和/或分组化的流,例如接收的 MPEG-2传输流或RTP分组。接收提示轨道可以用于客户端侧存储和回放接收到的数据分 组。因此,将一个流的接收MPEG-2TS或RTP分组直接存储在接收提示轨道中作为例如预先 计算的样本或构造器。 与对数据分组进行解复用和/或解分组、然后针对每个基础媒体流(音频和/或 视频)写入分离的媒体轨道相比,这种方法有两个优点。第一,它降低了存储过程中接收设 备所需的复杂度,这是因为不需要对接收的数据分组进行解复用或其他处理。仅对接收的 数据分组执行以未修改形式的文件存储。第二,在某些情况下,根本不可能将接收的数据分 组解复用为分离的媒体轨道,尤其是以传输/复用级对媒体进行加密或分组化方案未知的 情况下。第三,由于头两点,在PVR(PVR二个人视频记录器)应用中,使时间偏移(即写文 件和立即从同一文件中读取具有可变的时间偏移)变得更容易。 可以通过模拟正常流的接收,并从接收提示轨道中读取存储的数据分组,如同它 们是通过IP接收的一样,可以完成从接收提示轨道的回放。同所有提示轨道一样,接收提 示轨道具有传输定时,其与具有媒体回放定时的媒体轨道相反。因此,接收设备的接收时间 戳与接收提示轨道中所存储的每个数据分组相关联。 服务器侧文件中的RTP提示轨道仅存储来自一个流的RTP媒体数据分组,并且不 包含对应的辅助或控制信息,例如RTCP信息或密钥消息。由于RTCP信息描述了流的情形 的当前状态,例如定时,因此,RTCP消息由流服务器动态地产生。 流接收方可以从接收时间中恢复发送方的系统时钟,并将接收方的系统时钟与发 送方的系统时钟对齐,以避免缓冲器在直接回放运行下分别溢出。由于RTP分组或RTCP发 送方报告分组的到达时间的抖动(网络抖动),不论哪个分组用于时钟恢复,即时的时钟恢 复都是不可能的。尽管媒体时间戳以固定速率不断增大,然而具有不同步的采样时钟的独
6立的音频和视频捕获单元可能导致RTP时钟的漂移。RTCPSR携带针对每个流的NTP和RTP 时间戳,从而可以被用于提取相关设备的漂移。在许多系统中,在创建RTCP SR时,尤其在 NTP与RTP时钟之间的关系中存在抖动。因此,通常流客户端在启动之后不能立即实现完 美的口型同步,而是需要在视频与音频流之间的口型同步变得精确之前,考虑特定数目的 RTCP SR。如果需要恢复发送方的系统时钟,并且存在较高的网络抖动,则也需要特定数目 的RTP分组或RTCP发送方的报告分组,而不论哪个分组用于时钟恢复。在实时流接收过程 中,除相关数据分组的RTP时间戳之外,如上所述,可以使用多个RTCP SR的信息来重新计 算网络抖动和时钟漂移。 当前,RTP接收提示轨道被规定为只能存储媒体流的接收数据分组,而不能包含对 应的RTCP SR,以及相应地发送方的报告中的定时信息。只有接收的RTP分组的RTP时间戳 不足以同步从不同流接收的媒体数据。这是因为,一般地,每个媒体流为其初始时间戳和初 始序列号分配随机值,并且时间戳的时钟频率取决于所携带的媒体数据的格式。可以使用 RTP分组的到达或接收时间来进行流之间的同步。然而,这种方法的问题在于,RTP不保证 分组的传送,也不制止带外传送。由此,仅基于接收时间的同步无法保证精确度。
如上所述,不同RTP流之间的最精确的同步方法需要等待关联的RTCP SR,该RTCP SR包含能够实现在RTP时间戳与流中采取NTP时间戳格式的公共时间戳之间的转换的信 息。通常,针对特定比特率的每个流每5秒发送这些RTCP发送方报告,其中,两个RTCP SR 之间的时间间隔取决于比特率。 因此,只有在以下两种情况下,才可能实现具有精确定时和口型同步的RTP接收 提示轨道的回放第一,不同媒体时钟之间没有时钟漂移,对于每个接收的RTP分组,有 RTCP发送方报告流间同步数据可用。然而,这与在现实环境中不可能发生的理想情形相对 应。第二,在存储过程中,接收设备必须通过在存储所接收的RTP分组之前调整所接收RTP 分组的RTP时间戳来考虑RTCP SR的定时信息。第一种情况只是一种理论上的情况,实际中不会发生。第二种情况给接收方施加
了沉重的负担,例如,要考虑多个发送方RTCP SR用于定时调整,将需要缓冲几秒的接收流。
这也将影响时间偏移应用中从相同文件即时读取的能力。此外,在存储之后,无法重新创建
原始接收情形,即在接收并记录了完整的流之后,在处理阶段不能移除长期抖动。 当前的广播系统使用密钥流(或带内或带外),用于传输受保护的密钥作为辅助
信息,该辅助信息用于对相关数据分组的媒体数据进行解密。典型地,密钥流和加密的媒体
数据流之间仅存在松结合,没有定时关系。 在DVB-H和OMA-BCAST (开放移动联盟-移动广播服务)中,将密钥流定义为在与 不同于关联媒体流的UDP端口上发送的密钥消息的分离的流。将每个密钥消息作为单个 UDP分组来发送。OMA-BCAST将这样的消息称为短期密钥消息(STKM) , DVB-H将其称为密钥 流消息(KSM)。由于每个密钥消息由流服务的订阅而界定,从而只能由授权的用户/设备来 访问,因此存储密钥消息不损害流系统的安全性。密钥消息内的实际的密码密钥由服务或 节目密钥来保护。 每个密钥具有关联的密钥标识符(密钥ID),该密钥标识符也在关联的加密媒体 访问单元中指示。解密器检查密钥的存在,该密钥与加密访问单元中的密钥ID相关联。
通过以重叠 有效周期频繁发送密钥来处理加密媒体访问单元与关联的密钥消息的同步。在加密视频分组之前发送该密钥,该密钥以对应的密钥标识符来标记。接着,至 少只要媒体数据正在使用该特定密钥,该密钥就有效。 由于在流中没有媒体定时与密钥消息相关联,因此,在记录文件的过程中,将该密 钥存储为媒体轨道是不现实的。密钥与对应的加密访问单元之间的媒体定时关联只能在处 理和分析对密钥和媒体流进行结合的密钥ID之后才能做出。只有在这样的分析之后,才清 楚哪个密钥是用于哪个访问单元或视频帧。
发明内容
本发明的目的是提供不同的记录媒体流之间的即时精确的定时同步,而无需所述 记录媒体流的每次回放过程中的复杂处理。即,本发明的目的是不需要在每次要回放记录 媒体流时都对所述记录媒体流进行去抖动,以及,对于记录文件的回放,不需要对所有包括 的流进行时钟恢复。 这个目的是通过如权利要求1所述的用于对存储的数据分组进行处理的设备、如 权利要求20所述的用于对存储的数据分组进行处理的方法、如权利要求22所述的用于读 取文件的设备以及如权利要求23所述的用于读取文件的方法解决的。 为了解决上述目的,本发明的实施例还提供了用于实施本发明的方法的计算机程序。 本发明是基于以下发现不仅通过存储接收的流媒体数据分组,也通过在携带辅 助信息的接收过程中存储关联数据,尤其是与该媒体流并行传送的所有关联数据,例如包 括RTCP发送方报告的RTCP消息,或通过记录包括密码密钥在内的关联的接收密钥消息, 所述密码密钥与所接收的流媒体数据分组所包括的媒体数据相关联,可以同时解决上述问 题。 将所接收的关联数据或辅助信息以所谓的关联接收提示轨道("arht")的形式存
储在包括媒体数据容器和元数据容器在内的文件中。该轨道由包含相关媒体分组在内的对
应的接收提示轨道使用例如IS0/IEC 14496-12的轨道引用机制来界定。如同相关的接收
提示轨道,该关联接收提示轨道以例如接收方的系统时钟的时间戳的形式存储传输定时。
这样可以实现在稍后阶段的回放过程中恢复原始分组接收的定时条件。 该接收提示轨道和关联接收提示轨道包括文件的媒体数据容器中的分组数据部
分和文件的元数据容器中的元数据部分。 根据本发明的实施例,在记录关联接收提示轨道的过程中,保存如RTCP SR之类的 消息以及相关的传输定时信息。并行地,将接收的媒体RTP分组和相关传输定时直接存储 到接收提示轨道。在记录过程中,不执行去抖动过程或口型同步校正。 为了这个目的,本发明的实施例提供了一种用于记录具有相关媒体数据容器和元 数据容器的文件的设备。该设备包括接收机,该接收机用于接收第一数据分组和第二数据 分组,该第一数据分组包括基于第一时钟的分组化的第一媒体数据样本,该第二数据分组 包括基于不同于第一时钟的第二时钟的第二媒体数据样本,其中,该第二媒体数据样本与 第一媒体数据样本相关联。该接收机还适于接收第一控制分组和第二控制分组,该第一控 制分组包括用于指示第一时钟与参考时钟的关系的信息,该第二控制分组包括用于指示第 二时钟与参考时钟的关系的信息。该设备还包括记录器,用于将接收到的第一和第二数据分组以及接收到的第一和第二控制分组的至少部分存储在媒体数据容器中,并用于将关联 元数据存储在元数据容器中,该关联元数据包括接收到的第一和第二数据分组以及接收到 的第一和第二控制分组的定时信息,并包括指示存储的第一和第二数据分组以及第一和第 二控制分组在媒体数据容器中的位置的位置信息。 根据本发明的实施例,该记录器适于将第一和第二接收数据分组作为样本存储在 媒体数据容器的第一组块(chunk)中,并适于将接收到的关联第一和第二控制分组作为样 本存储在媒体数据容器的第二组块中。 根据本发明的实施例,该记录器适于将第一和第二数据分组的定时信息和位置信 息存储在文件的元数据容器的第一轨道中,并适于将第一和第二控制分组的定时信息和位 置信息存储在文件的元数据容器的第二轨道中。 根据本发明的实施例,该文件基于ISO基础媒体文件格式。根据本发明的优选实 施例,该文件是3GP或MP4文件。 根据本发明的实施例,第一数据分组是包括分组化的第一媒体样本(例如压縮视 频)在内的第一流RTP分组,第一控制分组是与第一流RTP分组相关的、包括第一 RTCP发 送方报告的RTCP分组。第二数据分组是包括分组化的第二媒体数据样本(例如与所述视 频相关的压縮音频)在内的第二流RTP分组,第二控制分组是与第二流RTP分组相关的、包 括第二 RTCP发送方报告的RTCP分组。 第一和第二数据分组和关联控制分组的并行存储具有以下优点记录过程仍然负 载较轻,并且可以捕获用于在以后的阶段中根据记录的文件回放媒体流所需的所有信息。 在回放接收提示轨道的过程中,即回放文件的媒体数据容器中存储的第一和/或第二数据 分组以及文件的元数据容器中存储的其关联元信息的过程中,使用所述关联接收提示轨 道,即在媒体数据容器中存储的控制分组和元数据容器中的关联元信息。 为了回放记录文件,本发明的实施例提供了一种用于读取文件的设备,所述文件 在与所述文件相关的媒体数据容器中存储第一数据分组以及第二数据分组,所述第一数据 分组包括基于第一时钟的分组化的第一媒体数据样本,所述第二数据分组包括基于不同于 第一时钟的第二时钟的分组化的第二媒体数据样本。所述文件还存储关联的第一控制分组 的至少部分以及关联的第二控制分组的至少部分,所述第一控制分组包括用于指示第一时 钟与参考时钟的关系的信息,所述第二控制分组包括用于指示第二时钟与参考时钟的关系 的信息。所述文件将关联元数据存储在文件的元数据容器中,所述关联的元数据容器包括 接收到的第一和第二数据分组以及接收到的第一和第二控制分组的定时信息以及指示存 储的第一和第二数据分组以及存储的第一和第二控制分组在媒体数据容器中的位置的位 置信息。所述用于读取文件的设备包括处理器,用于通过访问元数据容器以及通过解释媒 体数据容器中存储的第一和第二数据分组以及存储的第一和第二控制分组的定时信息来 确定存储的第一和第二数据分组的输出调度。所述设备还包括输出控制器,用于根据所确 定的输出调度,通过访问媒体数据容器以及通过从媒体数据容器中读取数据分组来输出第 一和第二数据分组。 根据本发明的实施例,为口型同步、时钟恢复和/或时钟漂移调整,可以对存储的 第一和第二数据分组以及关联的存储的第一和第二控制分组进行动态处理。这种回放等同 于对记录的媒体流的模拟实况接收。
记录的接收提示轨道(第一 /第二数据分组)和记录的关联接收提示轨道(第一
/第二控制分组)持续整个记录过程。在回放或重放过程中,可以例如以RTCP SR的形式预
先取回关联接收提示轨道的控制数据,例如,用于通过考虑多个未来的RTCP SR来实现精确
的口型同步,其中,所述未来的RTCP SR与当前回放时刻的未来的时刻相关。 本发明的优点在于关联接收提示轨道的概念(即在接收媒体流的过程中记录控
制信息)实现了与用于仅从文件同步回放流相关的所有信息的轻便的记录过程,而不增加
复杂度。 在想要长期存储记录文件而最终将回放多次的情况下,可能希望在每次回放过程 中,避免分别分析存储的第一/第二数据分组和存储的第一/第二控制分组以及关联的元 数据,取而代之的是,无需进一步处理,媒体定时就直接可用,即用于重放第一 /第二存储 数据分组所包括的第一/第二媒体数据样本的定时直接可用。 通常,这暗示着根据接收提示轨道对所存储的数据分组进行解分组,并以每轨道 一个基本流将其存储至相关媒体数据容器中的媒体轨道。这并不总是可能的或有利的,例 如,如果对流的分组应用了传输加密或如果存储容量有限。 除传输分组的精确定时之外,还希望关于接收提示轨道的扩展信息(存储的第一 /第二数据分组加元信息)可用,尤其是关于第一/第二数据分组内的媒体数据样本的信 息,例如,帧精度的SMPTE时间戳(SMPTE =运动画面和电视工程师协会)或视频轨道的字幕。 为了这个目的,本发明的实施例也提供了一种设备,所述设备用于对与文件相关 的媒体数据容器中存储的传输协议相关的数据分组进行处理,并用于对文件的元数据容器 中存储的关联元信息进行处理,所述关联元信息包括传输定时信息和指示存储的数据分组 在媒体容器中的位置的位置信息。所述设备包括处理器,所述处理器基于存储的数据分组 和存储的关联元信息,确定针对存储的数据分组的有效载荷的解码信息,其中,所述解码信 息指示了在哪个时刻重放存储的数据分组中的哪个有效载荷。所述用于处理的设备可以是 独立设备,也可以是被集成到上述用于存储文件的设备中的设备。 根据实施例,存储的数据分组可以包括MPEG-2传输流分组。根据另一个实施例, 存储的数据分组可以包括RTP分组,所述RTP分组包括分组化的媒体数据。
根据本发明的实施例,基于媒体访问单元来确定所述解码信息。即,对于每个访问 单元,例如媒体帧,在文件的媒体数据容器中存储解码信息样本,其中,所述解码信息样本 指示了从存储的数据分组的哪个部分取出哪个媒体数据样本以获得媒体(例如视频和音 频)帧。将与所述解码信息样本相关的元信息存储在元数据容器中的解码信息元数据轨道 中。因此,所述解码信息元数据轨道(ISO基础媒体文件格式的"trak"箱/原子)包括针 对所述解码信息样本的定时和位置信息。 存储的解码信息样本及其关联解码信息元数据轨道(以下也被称为"虚拟媒体轨 道")是在关联接收提示轨道的思想上建立的,为回放提供了上述优点。在虚拟媒体轨道的 元数据部分,提供了针对媒体数据容器中的相关解码信息样本的媒体定时。该解码信息样 本提供了从哪个存储数据分组或传输单元获得针对相关媒体访问单元的媒体数据的信息, 该信息使得不需要对媒体分组进行解分组。可以在最终接收到媒体流之后,使用来自接收 提示轨道的信息,以及如果必要的话使用来自关联接收提示轨道的信息,来建立虚拟媒体
10轨道。这是在"反提示过程"中完成的,产生的文件使回放设备能够在文件中进行搜索,并 且能够基于媒体定时执行对媒体的随机访问。 虚拟媒体轨道可以被视为不完整的媒体轨道。因此,可以应用从RTP和RTCP接收 提示轨道恢复的定时以及媒体轨道的所有索引(典型地通过使用"样本表")。此外,定时 的元数据轨道可以引用虚拟媒体轨道并对其进行扩展。 虚拟媒体轨道可以由解码信息样本(虚拟媒体样本)来建立,所述解码信息样本 可以包含用于根据接收提示轨道传输单元重构访问单元的构造器。此外,所述解码信息样 本可以包含对与访问单元的重构(不完整构造器)相关的一个或更多重要传送单元的链 接。同样,虚拟媒体轨道的解码信息样本或虚拟媒体样本可以是空的,例如,在接收过程中 分组丢失的情况下。备选性地,虚拟轨道的解码信息样本(下面也称为虚拟媒体样本)可 以包含如在经典媒体轨道中那样的完整的已拆包的媒体样本。 按照至接收提示轨道的对应传送单元的链接,可以将来自虚拟媒体轨道的样本表 中的索引的信息(以及例如来自定时的元数据轨道的任何关联信息)逻辑地应用至参考接 收提示轨道。 如果不能从流中恢复出对虚拟媒体样本的描述,虚拟媒体轨道可以包含虚拟媒体 样本的近似和不完整的描述。这尤其适用于数据分组被加密或不完全知道解分组方案的情 况。 为了重放虚拟媒体轨道,本发明的实施例提供了一种用于读取文件的设备,所述 文件在与所述文件相关的媒体数据容器中存储包括有效载荷在内的数据分组,并在所述媒 体数据容器中存储针对存储的数据分组的有效载荷的解码信息,其中,所述解码信息指示 在哪个时刻重放存储的数据分组中的哪个有效载荷,所述文件在媒体数据容器中存储关联 元数据,所述关联元数据指示媒体数据容器中解码信息的解码时间和位置。所述设备包括 处理器,用于通过访问媒体数据容器中的关联元数据,并通过基于所述元数据访问媒体数 据容器中的解码信息,以及通过基于所述解码信息访问存储的数据分组中的有效载荷,来 确定存储的数据分组中的有效载荷的输出调度。输出控制器用于根据所确定的输出调度来 输出所述有效载荷。 与在记录过程中将接收到的数据分组动态地转换为媒体轨道相比,虚拟媒体轨道 提供了媒体定时和元数据,而无需对媒体数据(存储数据分组)进行解分组,从而节省了存 储空间。虚拟媒体轨道使回放设备能够基于媒体定时在文件中进行搜索。虚拟媒体轨道在 无需加倍文件大小的情况下合并了媒体轨道和接收提示轨道的优点,如果向文件加入经典 媒体轨道可能会出现文件大小加倍的情况。利用虚拟媒体轨道的概念,保持了原始接收过 程的所有信息,例如有助于错误隐藏的关于分组丢失的信息,以及有助于口型同步的关于 接收定时的信息。同时,本发明的虚拟媒体轨道提供了用于媒体访问的传统媒体轨道的所 有可能性。与传统媒体轨道相比,甚至提供了更多的灵活性。可以基于逐样本来确定存储 的传输单元(数据分组)是否完全被拆包为访问单元(媒体帧),或是否例如为了节省存储 空间而仅存储了用于重构访问单元的构造器或链接。此外,在一个虚拟媒体轨道中混合了 所有可能性,即包括完整访问单元、构造器、链接或为空的解码信息样本或虚拟媒体样本。
多个虚拟媒体轨道可以引用传送单元或数据分组,所述传送单元或数据分组来自 实现相同的记录数据分组流的不同索引的相同接收提示轨道。例如,具有随机访问的两个虚拟媒体轨道,一个涉及音频,另一个涉及视频,指向相同的MPEG-2传输流接收提示轨道 的音频和视频索引。 为了实现接收和存储的数据分组中的加密媒体数据样本的回放或重放,也可以在 文件的媒体数据容器中的数据分组旁边存储关联的密钥流消息。根据本发明的实施例,所 述密钥流消息被存储在密钥流接收提示轨道的样本中。接收时间(传输时间)可以用作密 钥流样本的时间戳,以将该密钥消息与对应接收提示轨道中的加密媒体分组对齐。轨道引 用用于将密钥流接收提示轨道与媒体接收提示轨道相关联。 为了记录文件的目的,本发明的实施例提供了一种用于记录文件的设备,所述文 件具有相关的媒体数据容器和元数据容器。所述设备包括接收机,用于接收数据分组以及 用于接收包括多个密码密钥的密钥流分组,其中每个数据分组包括有效载荷,每个密码密 钥与数据分组的有效载荷相关联。所述设备包括记录器,用于将接收到的数据分组和接收 到的密钥流分组存储在所述媒体数据容器中,并用于将关联元数据存储在所述元数据容器 中,所述关联元数据包括接收到的数据分组和接收到的密钥流分组的传输定时信息,以及 指示存储的数据分组和存储的密钥流分组在媒体数据容器中的位置的位置信息。所述用于 记录数据分组和密钥流分组的设备可以是独立设备,也可以是被集成到或与上述用于存储 和/或处理的设备结合的设备。 根据本发明的实施例,所述记录器适于将接收到的数据分组作为样本存储在所述 媒体数据容器的第一组块中,并将接收到的关联密钥流分组作为样本存储在所述媒体数据 容器的第二组块中。根据本发明的实施例,所述记录器适于将数据分组的传输定时信息和 位置信息存储在所述媒体数据容器的第一轨道中,并将密钥流分组的传输定时信息和位置 信息存储在所述元数据容器的第二轨道中。 根据本发明的实施例,所述文件基于ISO基础媒体文件格式。 根据本发明的实施例,所述数据分组包括MPEG-2传输流分组。 根据本发明的另一实施例,所述数据分组包括RTP分组,所述RTP分组包括分组化
的媒体数据样本。 为了便于在接收数据分组流和关联密钥流之后进行回放,可以进行一次处理,以 将密钥流接收提示轨道转换为虚拟元数据轨道。具有传输定时的密钥流接收提示轨道中的 密钥消息可以被变换为具有媒体定时的虚拟元数据轨道中的密钥样本,所述虚拟元数据轨 道与上述虚拟媒体轨道类似。如果需要,虚拟地加倍密钥样本,使得媒体轨道中的每个媒体 样本拥有密钥轨道中的关联的密钥样本。 因此,可以创建媒体访问单元与密钥消息之间的精确的定时关系,尤其是当可以 根据传送单元重构加密的访问单元时(在内容加密的情况下)。 为了重放,实施例提供了一种用于读取文件的设备,所述文件在与文件相关的媒 体数据容器中存储包括分组化的媒体数据样本在内的数据分组以及关联的密钥流分组。所 述文件在元数据容器中存储了关联元数据,所述关联元数据包括接收的数据分组和接收的 密钥流分组的传输定时信息,以及指示存储的数据分组和存储的密钥流分组在媒体数据容 器中的位置的位置信息。此外,所述设备包括处理器,所述处理器基于数据分组,基于关联 元信息,以及基于存储的密钥流分组和关联的密钥流元信息,将解密信息分配给存储的数 据分组的有效载荷,其中,所述解密信息指示了在哪个时刻使用哪个密码密钥来重放存储
12的数据分组的有效载荷。提供了用于输出基于所分配的解密信息的解密的数据分组的输出
丄山顺。 本发明的实施例完全保持了密钥消息的接收定时以及与接收数据分组的定时关 系。当文件包含具有密钥消息的元数据轨道,所述密钥消息针对包括存储的数据分组的媒 体轨道中的每个对应媒体样本时,本发明的实施例实现了将记录文件转换为针对回放而优 化的文件。因此,在回放过程中,不需要为了正确的密钥而解析记录的密钥轨道。
结合附图考虑以下详细描述,本发明的其他目的和特征将变得显而易见,在附图 中 图1是根据本发明的实施例的用于记录文件的设备的示意框图; 图2示出了根据本发明的实施例的具有相关媒体数据容器和元数据容器的记录
文件的示意文件结构; 图3示出了基于ISO基础媒体文件格式的文件的示意结构; 图4示出了根据本发明的实施例的用于记录文件的方法的流程图; 图5示出了根据本发明的另一实施例的用于记录文件的另一方法的流程图; 图6示出了根据本发明的实施例的用于记录和处理文件以获得虚拟媒体轨道的
设备的示意框图; 图7示出了根据本发明的实施例的具有虚拟视频轨道的记录文件的示意结构;
图8示出了根据本发明的实施例的用于记录数据分组、创建虚拟媒体样本以及重 放通过虚拟媒体样本来存储的数据分组所包括的媒体样本的方法的流程图;
图9示出了根据本发明的实施例的如何获得引用存储数据的有效载荷所包括的 媒体帧的虚拟媒体样本的描述信息的示例; 图IO示出了根据本发明的实施例的接收提示轨道的样本与虚拟媒体轨道的映 射; 图11示出了根据本发明的另一实施例的用于记录文件的设备的示意框图;
图12示出了移动TV环境下的密钥流和媒体同步的原理。
具体实施例方式
图1示出了用于记录具有相关媒体数据容器104和元数据容器106的文件102的
设备ioo的示意流程图。 设备100包括接收机108,用于接收第一数据分组110和第二数据分组112,第一 数据分组110包括基于第一时钟的分组化的第一媒体数据样本,第二数据分组112包括基 于不同于第一时钟的第二时钟的第二媒体数据样本,其中,第二媒体数据样本与第一媒体 数据样本相关联。此外,接收机108用于接收第一控制分组114,第一控制分组114包括 用于指示第一时钟与参考时钟的关系的信息,并用于接收第二控制分组115,第二控制分组 115包括用于指示第二时钟与参考时钟的关系的信息。此外,设备IOO包括记录器116,用 于将接收到的第一和第二数据分组110U12以及接收到的第一和第二控制分组114U15的 至少一部分存储在媒体数据容器104中,并用于在元数据容器106中存储关联元数据,所述关联元数据包括接收到的第一和第二数据分组110U12以及接收到的第一和第二控制分 组114U15的定时信息。此外,所述关联元数据包括指示第一和第二数据分组110U12以 及第一和第二控制分组114U15被存储在媒体数据容器104中的位置的位置信息。
根据本发明的实施例,第一数据分组110可以是包括分组化的第一媒体数据样本 (例如视频)的第一流RTP分组,第二数据分组112可以是包括分组化的第二媒体数据样本 (例如音频)的第二流RTP分组。相应地,第一控制分组114可以是与第一流RTP分组110 相关联的RTCP分组,其中,第二控制分组115可以是与第二流RTP分组112相关联的RTCP 分组。 根据本发明的实施例,文件102可以是基于ISO基础媒体文件格式的文件。例如, 该文件格式可以是MPEG-4兼容的文件格式,即文件102可以是由ISO/IEC 14496-14规定 的所谓的MP4文件。MP4文件格式由存储在元数据容器106中的元数据组成,该元数据描述 典型地与存储在媒体数据容器104中的媒体相关的信息。媒体数据容器104也可以位于文 件102之外。例如,媒体数据容器104可以是分离的存储位置,该位置可以通过文件102中 的链接来引用。通常,存储在媒体数据容器104中的媒体数据是编码的视频和/或音频数 据。在相关规范中,容器104和106是被称为"箱"(或"原子")的数据结构。
典型地,箱由大小字段、类型字段和数据字段组成。在大小字段中,包含包括该大 小字段的整个箱的大小,即字节数。在箱的类型字段中存储箱标识符,通常是4个字母。在 数据字段中存储实际的报头数据和媒体数据。使用这样的箱结构形成上述MP4文件格式的 元数据容器106典型地被称为电影箱"moov"。类似地,媒体数据容器104被称为媒体数据 箱,下文中称为"mdat"。 典型地,媒体数据容器mdat 104由数据单元或样本的序列组成,该数据单元或样 本的序列被组合为所谓的组块。组块可以具有不同大小,组块内的样本可以具有不同的大 小。 根据本发明的实施例,记录器116适于将第一和第二接收数据分组H0、112作为 样本存储在媒体数据容器104的第一组块118中。记录器116还适于将接收到的关联第 一和第二控制分组114、 115的至少部分作为样本存储在媒体数据容器104的第二组块122 中,如图2所示。 组块118、 122的存储可以以交错的方式完成。 因此,组块的样本可以包括一个或更多接收到的数据分组。也就是说,第一组块 118的样本可以包括一个或更多接收到的第一和/或第二RTP分组110、112,第二组块122 的样本可以包括接收到的第一和/或第二控制分组114、 115中的一个或更多第一和/或第 二RTCP SR。 可以将多个第一组块118视为(RTP-)接收提示轨道的媒体数据部分。类似地,可 以将多个第二组块122视为接收提示轨道的关联(RTCP-)接收提示轨道的媒体数据部分。 即,在图1或图2的情况下,针对所有接收到的RTP分组110、 112,存在一个RTP接收提示轨 道;针对所有接收到的RTCP分组114、 115或RTCP SR,存在一个关联RTCP接收提示轨道。 这意味这最小的记录复杂度。 RTCP接收提示轨道不需要任何普通分组有效载荷配置数据,尽管它只有在与其相 关的基础RTP接收提示轨道的SDP (会话描述协议)信息结合时才有用。
RTCP接收提示轨道样本有效载荷由原始RTCP分组组成。该原始RTCP分组可以直 接被其RTCP报头包括,或者在另一种结构内分组装,以便能够在一个样本中存储多个RTCP 分组。 RTCP样本的定时取决于其关联RTP接收提示轨道的定时方法。如果RTP接收提示 轨道从RTP时间戳中推导出其解码时间,则RTCP接收提示轨道也从RTCP分组中的RTP时 间戳中推导出其解码时间。如果接收时间用于RTP接收提示轨道,则接收定时也用于存储 RTCP分组。 一般地,RTP接收提示轨道和RTCP接收提示轨道被同步,并使用相同的时间基 础。 如图1和2所示,记录器116可以适于将第一和第二接收数据分组110U12的定 时信息和位置信息存储在媒体数据容器106的第一元数据轨道124中,并适于将与第一和 第二数据分组110、112相关联的接收到的第一和第二控制分组114U15的定时信息和位置 信息存储在媒体数据容器106的第二元数据轨道128中。将参考图3,给出对存储过程的更 详细的描述。 第一元数据轨道124可以被视为RTP接收提示轨道的元数据部分。类似地,第一 元数据轨道124可以被视为接收提示轨道的关联RTCP提示轨道的元数据部分。
在图2的示例中,在以后的阶段,例如通过使用结合RTP分组存储的各个媒体类型 的SDP信息,可以从单个RTP接收提示轨道和单个关联RTCP接收提示轨道中识别各个媒体 流(例如视频/音频)。 图2示出了具有RTP接收提示轨道和关联RTCP接收提示轨道的ISO媒体文件102 的结构。 如上所述,文件102包括元数据容器106,其中,元数据容器106包括RTP接收提示 轨道124, RTP接收提示轨道124包括与接收到的RTP分组相关的信息,RTP分组作为样本 存储在媒体数据容器104的第一组块118-l、118-2等等中。这就是说,RTP接收提示轨道 124包括在接收过程中存储的(第一和第二 )RTP分组的传输定时。 该传输定时可以是接收机108的接收时钟的时间戳和/或可以是接收到的RTP分 组110、 112的RTP时间戳。也就是说,对于每个RTP分组或样本,RTP接收提示轨道的元数 据部分124包括关于何时接收各个RTP分组110U12的指示,以及此外还包括关于各个RTP 分组被存储在媒体数据容器104中的何处的信息。 对于关联RTCP接收提示轨道的元数据部分128同样如此。元数据部分128包括 存储在第二组块122中的接收到的RTCP分组的传输定时信息。例如,该传输定时信息可以 是相关RTCP分组的接收时间,或与该RTCP分组相关的RTP分组的RTP时间戳。此外,关联 RTCP接收提示轨道的元数据部分128包括指示RTCP分组被存储在媒体数据容器104中何 处的位置信息。 根据其他实施例,在记录过程中可以直接分析这些SDP参数,使得可以将与不同 媒体相关的RTP会话立即存储至分离的RTP接收提示轨道以及分离的关联RTCP接收提示 轨道。 因此,根据本发明的实施例,记录器116适于将第一接收数据分组110作为样本存 储在媒体数据容器104的第一组块中。记录器116还适于将第二接收数据分组112作为样 本存储在媒体数据容器104的第二组块。记录器116适于将接收到的关联第一控制分组114的至少部分作为样本存储在媒体数据容器104的第三组块中,以及适于将接收到的关联第
二控制分组115的至少部分作为样本存储在媒体数据容器104的第四组块中。 组块的存储可以以交错的方式来完成。也就是说,根据本发明的实施例,可以以交
错的方式存储与第一媒体流(例如视频)相关的第一RTP分组、与第二媒体流(例如音频)
相关的第二 RTP分组、以及关联的第一和第二 RTCP分组或至少第一和第二 RTCP发送方报
告作为第一、第二、第三和第四组块的样本。 因此,组块的样本可以包括一个或更多接收到的数据分组。也就是说,第一组块的 样本可以包括一个或更多接收到的第一数据分组110,第二组块的样本可以包括一个或更 多接收到的第二数据分组112,第三组块的样本可以包括接收到的第一控制分组114的一 个或更多第一RTCP SR,第四组块的样本可以包括接收到的第二控制分组115的一个或更 多第二RTCP SR。 可以将多个第一组块视为与第一分组110的媒体相关的第一接收提示轨道的媒 体数据部分。可以将多个第二组块视为与第二分组112的媒体相关的第二接收提示轨道的 媒体数据部分。可以将多个第三组块视为第一接收提示轨道的关联提示轨道的媒体数据部 分。类似地,可以将多个第四组块视为第二接收提示轨道的关联提示轨道的媒体数据部分。 即,在RTP接收提示轨道和RTCP关联接收提示轨道的情况下,可以针对每个识别的RTP会 话记录接收提示轨道,可以针对每个记录的RTP接收提示轨道记录关联接收提示轨道。
根据本发明的实施例,记录器116适于将第一接收数据分组110的定时信息和位 置信息存储在媒体数据容器106的第一元数据轨道中,并适于将第二接收数据分组112的 定时信息和位置信息存储在元数据容器106的第二元数据轨道中。记录器116适于将与第 一数据分组110相关联的接收到的第一控制分组114的定时信息和位置信息存储在媒体数 据容器106的第三元数据轨道中,并适于将与第二数据分组112相关联的接收到的第二控 制分组115的定时信息和位置信息存储在媒体数据容器106的第四元数据轨道中。
现在转到图3,给出对基于ISO媒体基础格式的文件的元数据容器106的更详细的 描述。 将媒体数据容器106 (对于基于ISO媒体基础格式的文件被称为"moov")进一步 分层为箱,所需的箱302以电影报头箱"mvhd"的形式包含报头信息作为一个整体,以及多 个"trak"箱304 (在图3中仅示出一个)。将trak箱304进一步分层为两个箱,其中,轨道 报头箱"tkhd"306规定了该轨道的特性。 trak箱304还包括媒体箱"mdia" 308, mdia箱308包括所有对象,即关于轨道内 的数据分组(通常是媒体数据)的声明信息。mdia箱308包括媒体报头箱"mdhd"310和处 理引用箱"hdlr"312。媒体报头箱mdhd 310包括总体信息,该总体信息是独立于媒体的, 与覆盖接收提示轨道中的"媒体"(即数据分组)的特性相关。处理引用箱hdlr 312声明 了一个过程,通过该过程呈现轨道中的"媒体数据",从而声明了轨道中的"媒体"的本质,例 如接收提示轨道。 此外,媒体mdia箱308包括媒体信息箱"minf" 314。该箱包含声明提示轨道中 的"媒体"(数据分组)的特性信息的所有对象。媒体信息箱minf 314还包括提示媒体箱 "hmhd" 316,提示媒体箱hmhd 316包含针对提示轨道的总体信息。此外,媒体信息箱minf 314包括数据信息箱"dinf"318。数据信息箱dinf 318包含声明媒体信息在轨道中的位置的对象。 此外,媒体信息箱minf 314包括样本表箱"stbl" 320。该箱中包含了媒体数据容器mdat 104的组块和样本中的至少之一的数据,其链接到每一项。为了描述stbl 320中的项,应观察到,stts箱322包括一个样本的持续时间,stsd箱324包括样本细节,stsz326包括样本大小,stsc328包括组块中所包括的样本数目,即数据分组的数目,以及stco箱330包括组块偏移,每个与媒体数据容器104中的样本/分组链接。
如上所述,记录器116适于将接收到的数据分组110U12的(传输)定时信息和位置信息存储在相关接收提示轨道的元数据部分124、 128中。具体地,将定时信息存储在轨道124、 128的相关样本表箱stbl 320中,所述定时信息可以是从接收时间戳推导出的定时信息,或者可以是从后续接收到的数据/控制分组推导出的相对定时信息。
图4示出了对接收到的数据分组的时间相关的元信息进行接收并将其存储在元数据轨道124、 128轨道所包括的样本箱stbl 320中的过程的流程图。
在第一步骤402,接收机108接收数据分组,该数据分组可能是RTP分组或RTCP分组。在第二步骤404,通过接收机108的系统时钟以接收时间戳的形式获得与接收到的数据分组相关的定时信息,或者,从接收到的数据分组的RTP时间戳中获得与接收到的数据分组相关的定时信息。在后续步骤406,计算与先前的接收数据分组的时间差。在步骤408,将计算得到的时间差写入各个元数据轨道的stts箱322中,其中,stts能够将接收定时索引到各个样本号(即接收并存储的分组)。也就是说,根据本发明的实施例,对箱stts 322进行采样的解码时间包含接收时间增量RT(n+l) = RT(n)+stts(n),其中RT(n)表示分组n的接收时间,stts(n)是分组n的未压縮的表的条目。 如上所述,将媒体数据容器104内的样本(分组)组合为组块110、 112。这些组块可以具有不同的大小,组块内的样本也可以具有不同的大小。可以使用对组块箱stsc 328的采样来寻找包含特定样本、其位置以及关联的样本描述的组块。每个条目给出了一系列具有相同特性的组块中的第一组块的索引。这里,通过从前一个条目中减去一个条目,可以计算出在各个系列中有多少组块。可以通过乘以适当的每组块样本数,将其转换为样本计数。 组块偏移表stco或co64330给出了每个组块到媒体数据容器104的索引。存在两种变体,允许使用32比特或64比特偏移。后者可用于在管理非常大的文件102。偏移通常是文件的偏移,而不是进入文件内(例如媒体数据容器中)的任何箱中的偏移。这允许在没有任何箱结构的情况下参考文件中的媒体数据。 因此,根据本发明的实施例,记录器116适于存储指示每个第一组块进入文件的索引的第一组块偏移表330。参照图5进行描述。 在第一步骤502中由接收机108接收数据分组之后,在第二步骤504,将接收到的数据分组110U12存储在与文件102相关的媒体数据容器104中。由此,以媒体数据容器104中的存储地址,将接收到的数据分组110U12作为样本进行存储。在第三步骤506,计算该存储地址对于文件102的起始处的偏移(如果文件102包括媒体数据容器104)或对于媒体数据容器104的起始处的偏移(如果媒体数据容器104指明了分离的文件)。其后,将计算得到的偏移写入相关元数据轨道124的stco或co64箱330。
对于控制分组114、 115及其相关元数据轨道128的存储同样如此。
为了概括以上所述,应对为了创建接收提示轨道或关联接收提示轨道而执行的操作进行概述,例如下面将要进一步更详细地描述的RTP/RTCP接收提示轨道或密钥流接收提示轨道。对于下面将要解释的虚拟媒体轨道同样如此。当要向基于ISO基础媒体文件格式的文件102加入轨道时,典型地,在根据本发明的实施例的设备100中实现以下操作。
參向moov箱添加新的trak箱 參向新创建的trak箱添加新的tkhd箱。该tkhd箱包含轨道的特性,例如创建时间、轨道ID、"媒体"轨道的尺寸以及持续时间。 參向新创建的trak箱添加新的tref箱。该tref箱指示了轨道的联接,即一个轨道是否可以自己独立或只能与另一个轨道结合使用。应注意,可以通过使用tref箱的轨道引用或隐式链接来链接接收提示轨道,所述隐式链接例如是通过包含可以用于链接两个或更多轨道的数据的样本描述。因此,该tref箱是可选的,但建议采用轨道链接机制。
參向新创建的trak箱添加新的mdia箱。 參向新创建的mdia箱添加新的mdhd箱。该mdhd箱包含轨道中的媒体的特性,例如媒体的持续时间和语言。 參向新创建的mdia箱添加新的hdlr箱。该hdlr箱包含对典型地能够消耗这样的媒体的过程的识别。在高级接收提示轨道的情况下,例如RTCP接收提示轨道的情况下,该识别是"提示", 參向新创建的mdia箱添加新的minf箱。 參向新创建的minf箱添加新的hmhd箱。该hmhd箱包含针对提示轨道的信息报头。 參向新创建的mdia箱添加新的dinf箱。 參向新创建的dinf箱添加新的dref箱,指示轨道的原始数据或在文件自身内或
驻留于文件外部,例如在另一个文件中或可以通过URI (统一资源标识符)提供。 參向新创建的minf箱添加新的stbl箱。该stbl箱是箱的容器,所述箱包含轨道
中的样本(例如RTP/RTCP或密钥流分组、虚拟媒体样本)的定时和数据索引。 參向新创建的stbl箱添加新的stsd箱。该stsd箱包含媒体的识别(通常被称
为4CC)以及样本的带外配置。 參向新创建的stbl箱添加新的stts箱。该stts箱包含关于轨道中的媒体的每一单个样本(例如RTP/RTCP或密钥流分组、虚拟媒体样本)的持续时间的信息。
參向新创建的stbl箱添加新的stsc箱。该stsc箱包含关于被组合为组块的样本(例如RTP/RTCP或密钥流分组、虚拟媒体样本)的数目的信息。 參向新创建的stbl箱添加新的stsz箱。该stsz箱包含关于轨道中的媒体的每
一单个样本(例如RTP/RTCP或密钥流分组、虚拟媒体样本)的大小的信息。 參向新创建的stbl箱添加新的stco或co64箱。该stco或co64箱包含关于每
个组块中的第一字节的文件偏移的信息。 參在样本表中加入其他允许的箱,例如stss箱,该stss箱将可用于随机偏移的样
本(例如RTP/RTCP或密钥流分组、虚拟媒体样本)编索引。 将样本组合为组块,组块是不带间隔的连续样本块(block)。在要向文件添加样本时,或者将该样本追加(即pend)至已有的组块,或者开始新的组块。对于每个新的样本,向
18stts和stsz箱添加新的条目,并改变stsc箱以反映当前组块中的样本数目。如果该样本被写入新的组块,则向stco(或co64)箱追加新的条目,并改变stsc箱以反映新组块中的样本数目。将组块(即原始样本数据本身)写入文件中,所述文件或者在mdat箱内,或者是外部文件(可以从文件内引用)。 根据设备的操作,并行地(针对RTCP和密钥流接收提示轨道)向文件写入高级接收提示轨道,即当新数据在以后的时间点以离线操作(针对虚拟媒体轨道)到达或被添加时,向文件添加样本。 在记录和/或时间偏移应用中,将接收到的数据分组110、112和关联控制消息114U15并行存储在接收提示轨道和关联接收提示轨道中是一种理想的解决方案。然而,如果想要长期存储记录文件并最终将回放多次,则可能希望避免在每次回放过程中分析存储数据,而是无需进一步计算,媒体定时就直接可用。通常,这暗示着根据(RTP)接收提示轨道对数据分组的有效载荷进行解分组,并以每轨道一个基本流将其存储至另外的媒体轨道。这并不总是可能的或有利的,例如,如果对流的分组应用了传输加密或如果存储容量有限。除了对媒体数据容器104中存储的传输分组的精确定时之外,还希望关于接收提示轨道的扩展信息可用,尤其是关于内部媒体流的信息,例如,帧精度的SMPTE时间戳或视频轨道的字幕。 现在参照图6,示出了根据本发明的实施例的用于对存储的数据分组和存储的关联元信息进行处理的设备600。 设备600与图1所示的设备100的不同之处在于处理器602,处理器602基于存储的数据分组和存储的关联元信息,确定针对存储的数据分组的有效载荷的解码信息,其中,所述解码信息指示了在哪个时刻重放存储的数据分组中的哪个有效载荷。设备600可以是设备100的扩展,然而,也可以分离地看待设备600,尤其是当它用于对存储的非RTP/RTCP分组(例如MPEG-2TS分组)进行处理时。 在图6所示的实施例中,将数据分组存储在与文件102相关的媒体数据容器104中。如上所述,将元信息存储在文件102的元数据容器106中。可以将存储的数据分组作为样本存储在媒体数据容器104的组块118、 122中。该样本和/或组块由元数据容器106中的关联元数据轨道124U28引用。 根据本发明的实施例,如上所述,存储的数据分组可以包括第一和第二RTP分组110、 112以及关联的第一和第二RTCP分组114、115,第一和第二RTP分组110、112包括第一和第二分组化的媒体数据。 根据本发明的另一实施例,存储的数据可以包括MPEG-2传输流数据分组,MPEG-2传输流数据分组包括一个或更多个节目的流复用, 一个或更多个节目典型是音频和视频。典型地,MPEG-2传输流数据分组具有188个字节的长度。 根据本发明的实施例,将所确定的解码信息以解码信息样本的形式存储在媒体数据容器104中的解码信息组块604中。因此,每个解码信息样本与访问单元相关,访问单元是例如可以根据接收提示轨道的媒体数据部分中存储的数据分组重构的视频或音频帧。
处理器602适于基于媒体帧来解码信息样本,使得解码信息样本指示媒体访问单元的起始地址和终止地址,其中,起始地址表示指示所述媒体访问单元的起始的媒体数据样本的位置,而其中终止地址表示指示所述媒体访问单元的终止的媒体数据样本的位置,其中,所述媒体数据样本为媒体数据容器104中的数据分组所包括。 处理器602可以访问媒体数据容器104,以将解码信息样本作为虚拟媒体样本存 储在媒体数据容器104的组块604中。此外,处理器602可以访问媒体数据容器106,以将 与解码信息样本(虚拟媒体样本)相关的、并指示解码信息样本的解码时间和位置的解码 元信息存储在媒体数据容器104的元数据轨道606中。如之前所述,可以将解码信息样本看 作为虚拟媒体样本,每个虚拟媒体样本涉及相关视频或音频流的访问单元。虚拟媒体样本 包括关于如何根据媒体数据容器104中存储的数据分组来重构相关音频/视频帧的信息。
现在转到图7,图7示出了包括媒体数据容器104中的虚拟媒体样本704以及元数 据容器106中的关联虚拟元数据轨道706的文件702。 文件702也在媒体数据容器104所包括的组块708中存储RTP分组,并存储了组 块710所包括的RTCP分组。存在与所存储的RTP分组相关联的RTP元数据轨道712。在元 数据容器106中,存在与所存储的RTCP分组相关联的RTCP元数据轨道714。
如箭头所示,虚拟媒体组块704中的虚拟媒体样本与组块708中所存储的RTP分 组相关。该虚拟媒体样本可以包含用于根据组块708中存储的传输单元(即数据分组)来 重构访问单元(即例如媒体帧)的构造器。虚拟媒体样本可以包含至一个或更多重要传输 单元的链接,所述重要传输单元与特定访问单元的重构(不完整重构器)相关。同样,虚拟 媒体样本可以为空,例如在接收过程中分组丢失的情况下。另一备选是虚拟媒体样本包含
完整的已拆包的描述媒体帧的媒体样本,如在经典的媒体轨道中的情况一样。
虚拟媒体样本的一般有效载荷配置数据包括相同类型的非虚拟媒体轨道的一般 有效载荷配置数据,例如,H. 264编码视频的虚拟媒体轨道也包含样本描述内的avcC箱中 的AVCConf igurationRecord。此夕卜,它可以包括关于接收提示轨道的去提示过程的信息,例
如通过使用虚拟媒体轨道的样本有效载荷中所提供的信息来从接收提示轨道重新集合的 媒体样本的最大尺寸。 虚拟媒体轨道的样本的有效载荷由描述从接收提示轨道提取媒体样本数据的过 程的"命令"组成。这些命令是从针对提示轨道的分组构造器推导出的,包括"立即构造器"、 "样本构造器"和"样本描述构造器"。立即构造器由"长度"、"数据"和"填充"字段组成。 "长度"指示了 "数据"字段的长度。"填充"可以用于填充过剩提供的空间。
样本构造器由字段trackrefindex、length、s咖ple皿mber禾口 s咖pleoffset组成。 trackrefindex指示了从其中提取数据的那个接收提示轨道,samplenumber指示了该接收 提示轨道的样本数目。字段sampleoffset指定了要提取的长度"length"的数据块的起始。
通过使用样本构造器,在不复制数据的情况下,可以实现媒体样本的紧凑表示。
样本描述构造器由字段trackref index 、 s咖pledescriptionindex、 sampledescriptionoffset和length组成。与样本构造器等效,使用来自接收提示轨道的 样本描述的数据来包括在虚拟媒体样本中。 虚拟媒体轨道使用媒体定时,即传输延迟或时钟频率的不精确不影响解码时间 戳。该定时相当于可以根据虚拟媒体轨道中可用的信息产生的媒体轨道的定时。
图8示出了流记录和离线文件优化的流程图。 在第一步骤802,如上所述,将接收提示轨道以及可选地将关联接收提示轨道(例 如RTP和RTCP)保存到文件102中。在记录完成之后,即当以接收提示轨道的形式将数据分组保存到文件102中,并最终将关联控制分组保存到该文件的关联接收提示轨道中时, 在步骤804,在记录的接收提示轨道内确定不同的媒体流。这意味着,步骤804包括分别在 记录的接收提示轨道内确定例如音频和视频流或与音频和视频流相关的数据分组。如以上 所解释的,这是通过从会话描述协议(SDP)中提取适当的信息来完成的。
因此,处理器602适于确定哪个存储的数据分组与第一或第二媒体数据样本相 关,以及确定与媒体数据容器104中的第二媒体数据样本相关的第二解码信息样本(第二 虚拟媒体样本)。 在另一步骤806,针对每个识别的媒体流,创建虚拟媒体轨道(包括媒体和元数 据),该虚拟媒体轨道引用相关的接收提示轨道。 S卩,处理器602适于将与第一媒体数据样本相关的第一解码信息样本(第一虚拟 媒体样本)存储在媒体数据容器104中,并将第一解码元信息存储在元数据容器106中,所 述第一解码元信息指示第一解码信息样本在媒体容器104中的位置(例如,组块偏移、样本 号等)。处理器602适于将第二解码元信息存储在元数据容器106中,所述第二解码元信息 指示第二解码信息样本在媒体容器104中的位置(例如,组块偏移、样本号等)。
也就是说,所创建的虚拟媒体轨道引用包括具有根据各个媒体流的有效载荷的数 据分组的接收提示轨道。在创建了虚拟媒体轨道之后,将虚拟媒体样本(解码信息样本) 添加至虚拟媒体轨道,其中,所述虚拟媒体样本指向接收提示轨道的媒体数据部分中的样 本或分组,并从控制传输单元(例如RTCP发送方报告)恢复精确的定时。
RTCP发送方报告包含RTP时间戳和以NTP时间戳格式的在流中的对应的公共时间 戳。RTP时间戳和NTP时间戳允许确定转换值。利用该RTP/NTP时间戳转换值和RTP时间 戳的时钟频率,可以计算接收的RTP分组的以NTP时间戳格式的在流中的时间戳。按照这 种方式,可以在对数据分组的记录的后处理中获得针对每个RTP接收提示轨道(即每个存 储的数据分组)的媒体定时。 在另一步骤810中,(例如,通过该轨道内的表或通过添加引用该轨道的其他轨 道)向虚拟媒体轨道添加描述性信息。因此,添加的描述性信息可以指示与虚拟媒体样本 相关联的媒体帧的起始地址和终止地址,其中,所述起始地址表示指示所述媒体帧的起始 的媒体数据样本的位置,而其中所述终止地址表示指示所述媒体帧的终止的媒体数据样本 的位置,其中,所述媒体数据样本为媒体数据容器104中的数据分组所包括。
在另一可选回放步骤812中,使用虚拟媒体样本的描述性信息,通过虚拟媒体轨 道在接收提示轨道中寻找对应的样本。例如,步骤810可以用于重放存储的数据分组所包 括的媒体流。 图9示出了如何获得引用接收提示轨道中的存储的数据分组的有效载荷所包括 的媒体帧的虚拟媒体样本的描述性信息的示例。 图9示出了一系列存储的RTP分组RTP1、 RTP2、 RTP3。 RTP分组RTP1、 RTP2、 RTP3 被存储在虚拟媒体容器104中作为样本。每个RTP分组RTP1、RTP2、RTP3包括报头H1、H2、 H3以及有效载荷PL1、 PL2、 PL3,有效载荷PL1、 PL2、 PL3包括媒体数据样本。作为示例,报 头大小分别是A比特,有效载荷大小是(B-A)比特。在第一RTP分组RTP1和第二RTP分组 RTP2的有效载荷之中,对可以是视频或音频帧的第一媒体帧的数据进行分割。作为示例, 第一媒体帧的媒体数据从RTP分组RTP1的字节A到数据分组RTP2的字节A+Y。在数据分
21组RTP2和数据分组RTP3之中,对第二媒体帧的媒体数据进行分割,数据分组RTP2在字节 地址A+Y开始,数据分组RTP3在字节地址A+Z终止。 虚拟媒体样本VMS1和VMS2分别与第一媒体帧和第二媒体帧相关。根据本发明的 实施例,虚拟媒体样本VMS1、VMS2包括关于在存储的数据分组RTP1、RTP2、RTP3中的何处找 到第一和第二媒体帧的媒体数据的信息。也就是说,虚拟媒体分组VMS1包括信息,所述信 息说明,通过从字节地址A至字节地址B地访问数据分组RTP1 ,并通过从字节地址a至字节 地址A+Y地寻址数据分组RTP2,可以获得帧1的媒体数据。虚拟媒体样本2包括关于在何 处获得媒体帧2的媒体样本的信息。也就是说,它存储了信息,所述信息说明,媒体帧2开 始于数据分组RTP2,从字节地址A+Y至字节地址B,并且说明可以在数据分组RTP3中从字 节地址A至字节地址A+Z找到帧2的其他媒体样本。 在媒体数据容器106中的虚拟媒体轨道的元数据部分引用了形成该虚拟媒体轨 道的媒体数据部分的虚拟媒体样本VMS1和VMS2。针对每个虚拟媒体样本VMS1、VMS2,可以 在stts箱中找到解码时间对样本的信息。因此,如上所述,解码时间对样本的信息反映了 已经通过评估与RTP分组RTP1、 RTP2、 RTP3相关联的存储的RTCP分组而确定的媒体定时。
图10示意了接收提示轨道的样本与虚拟媒体轨道的样本的映射。
与图9相反,图10示出了 MPEG-2传输流M2T的存储的数据分组。传输流M2T包 括数据分组Al至A7以及数据分组VI至V7,其中,数据分组Al至A7包括音频样本,数据分 组V1至V7包括视频样本。 虚拟媒体样本VMSA1与在音频分组A1和A2的有效载荷之中被划分的第一音频帧 相关。虚拟媒体样本VMSA1指示A1和A2的有效载荷的哪个部分用于获得音频帧1。类似 地,虚拟媒体样本VMSA2与其媒体数据可以在音频分组A2和A3的有效载荷中找到的第二 音频帧相关。虚拟媒体样本VMSA3引用音频分组A4和部分音频分组A5,以获得第三音频 帧。虚拟媒体样本VMSA4引用音频分组A5的剩余部分和音频分组A6和A7的有效载荷用 于音频帧4。 类似地,与第一视频帧相关的虚拟媒体样本VMSV1引用视频分组V1、V2和V3的有 效载荷用于第一视频帧。虚拟媒体样本VMSV2引用视频分组V4、 V5和V6的有效载荷用于 获得第二视频帧的媒体样本。 为了基于引用存储的RTP分组的接收提示轨道以及引用存储的RTCP分组的关联 接收提示轨道来重放媒体内容,本发明的实施例提供了一种用于读取文件的设备,所述文 件在与所述文件相关的媒体数据容器中存储第一数据分组以及第二数据分组,所述第一数 据分组包括基于第一时钟的分组化的第一媒体数据样本,所述第二数据分组包括基于不同 于第一时钟的第二时钟的分组化的第二媒体数据样本。所述文件也存储关联的第一控制分 组的至少一部分以及关联的第二控制分组的至少一部分,所述第一控制分组包括用于指示 第一时钟与参考时钟的关系的信息,所述第二控制分组包括用于指示第二时钟与参考时钟 的关系的信息。所述文件还在文件的元数据容器中存储关联元数据,所述关联元数据包括 接收的第一和第二数据分组和接收的第一和第二控制分组的信息以及指示所述媒体数据 容器中存储第一和第二数据分组以及存储第一和第二控制分组的位置的位置信息。所述设 备包括处理器,用于通过访问元数据容器和通过解释媒体数据容器中存储的第一和第二数 据分组以及存储的第一和第二控制分组的定时信息来确定存储的第一和第二数据分组的输出调度。所述设备还包括输出控制器,用于根据所确定的输出调度,通过访问元数据容器 以及通过从媒体数据容器中读取数据分组来输出数据分组。 根据本发明的实施例,所述处理器适于在当存储的关于接收的第一和第二数据分
组的定时信息指示了接收顺序的情况下确定输出调度,使得该输出调度反映第一和第二数
据分组的接收顺序。也就是说,根据本实施例,可以执行对原始接收场景的模拟。 根据另一实施例,所述处理器适于基于存储的关于第一和第二数据分组的定时信
息以及存储的第一和第二控制分组中所包含的参考时间戳来确定同步信息,以使得第一数
据分组的输出调度与第二数据分组的输出调度关于参考时间(NTP)而同步。也就是说,根
据本实施例,可以执行接收并存储的第一和第二数据分组的定时同步。 典型地,读取接收提示轨道的设备使用以下操作集合来检测它是否可以解析文 件 參解析ftyp箱,以检测文件内容和结构是否潜在地可解析。如果不能解析该文 件,则放弃文件读取操作。 參解析moov箱,检查其中trak箱的数目。如果没有轨道,则放弃文件读取操作。
參解析每个轨道的minf箱内的hdlr箱,以检测该hdlr箱中是否定义有对该处理 类型可用的处理过程。如果没有识别到处理过程,则放弃针对该轨道的文件读取操作。
參解析每个轨道的minf箱内的stbl箱和stsd箱。stsd箱包含该轨道的内容的 识别,并描述了该内容。如果不能理解该内容,则放弃对该轨道的文件读取操作。
如果可以解析该文件,则通过解析trak箱内的tref箱来确定轨道链接。备选性 地,如果该格式内部定义了轨道链接,则使用该轨道的stsd箱中的可用信息。如果不能确 定轨道链接,则假定该轨道是单个独立的,并且无需其他轨道所包含的信息就可以解析。轨 道链接被内部存储在读取设备中,并在理解轨道包含的原始数据的过程中需要的情况下使 用。 根据设备的操作,设备可以选择它理解的、并与文件的表示相关的轨道。缺省地, 对所有轨道进行解析,但是,适用以下规则 參对于虚拟媒体轨道,使用该虚拟媒体轨道来代替RTP或MPEG-2TS接收提示轨 道。该轨道已经包含用于反转提示操作的数据,即接收提示轨道的哪些数据需要被提取并 使用其他数据来扩展以创建基本流数据块,解码器可以自然地理解。 參对于RTCP接收提示轨道,第一操作模式是与RTP接收提示轨道并行地消耗RTCP 轨道。读取设备使用一般RTP/RTCP接收的可用逻辑来同步流。 參对于RTCP接收提示轨道,第二操作模式是在正常读取操作开始之前消耗整个
RTCP接收提示轨道,以检测多个RTP接收提示轨道之间的初始同步和时钟漂移。在这种模 式下,例如,应用线性回归来对齐多个RTP接收提示轨道的RTP时钟。接着,在消耗数据时, 对流施加该偏差以有利于多个RTP接收提示轨道的连续同步的播放。 參对于密钥流接收提示轨道,第一操作模式是与RTP或MPEG-2 TS接收提示轨道 并行地消耗密钥流接收提示轨道。这确保了针对接收提示轨道的特定受保护数据块的密钥 流以类似于真实广播的方式可用。 參第二操作模式将密钥流数据和接收提示轨道的数据对齐,以使得有效性时间段
不再重叠。这允许以后对轨道的编辑,而无需理解密钥流数据的定时。
23
为了从轨道中得到所谓的样本,必须推导出在文件内的位置。针对第k个样本S 的这种操作通过以下来完成 參使用stsc箱的数据,确定样本S所在的组块C
參解析stco (或co64)箱,以确定组块C的文件偏移F 參解析stsz箱,以获得样本S的大小L以及该组块内所有先前样本Pi的大小Kit)
因此,数据在文件中的位置(F+sumOg)处可用,并具有大小L。
要播放该数据的时刻由stts箱中可用的信息来确定。该箱包含对每一单个样本 j的运行长度编码的持续时间Dj。第k个样本S的播放时间则是所有持续时间Dj之和,其 中j < k。 在虚拟媒体轨道可用的情况下,本发明的实施例提供了一种用于读取文件的设 备,所述文件在媒体数据容器中存储包括有效载荷的数据分组,并在所述媒体数据容器104 中存储针对存储的数据分组的有效载荷的解码信息,其中,所述解码信息指示在哪个时刻 重放存储的数据分组中的哪个有效载荷。所述文件在元数据容器106中存储关联元数据, 所述关联元数据指示媒体数据容器中解码信息的解码时间和位置。所述设备包括处理器, 用于通过访问元数据容器106中的关联元数据,并通过基于该元数据访问媒体数据容器中 的解码信息,以及通过基于所述解码信息访问存储的数据分组的有效载荷,来确定存储的 数据分组的有效载荷的输出调度;以及输出控制器,用于根据所确定的输出调度来输出所 述有效载荷。 如在本说明书的介绍部分所述的,在接收数据分组之外,本发明的另一个方面是 存储密钥流消息。 可以通过权利管理系统来控制访问数据或数据分组的权利。通过数字通信网络接 收数据内容可能局限于特定的终端用户,并限制其他用户。例如,用户可以通过支付节目费 来购买对节目的访问。如果用户付费,则该用户可以被授权在指定的时间段内访问该节目, 而未付费的用户不能访问该节目。可以通过对传送数据进行加密来控制对节目的访问。通 过使用加密密钥,可以通过任何数目的加密标准来对数据进行加密。在用户终端的接收机 处,可以使用密钥来对加密的数据进行解密,以使得在接收机或用户终端处可以观看该内 容。用于对加密的数据分组进行解密的密钥也可以通过相同的数字通信网络来传送,并也 可以被加密。也可以使用其他数字通信网络来传送一个或更多个密钥。因此,想要访问或 观看节目或服务的终端用户可能需要获得密钥的权利。 可以通过密钥流将与加密节目或服务相关联的传输加密密钥传送给用户终端。该 密钥流可以包括密钥流消息,所述密钥流消息以预定的频率传送,当接收机或用户终端接 收到加密的数据流时,也接收到该密钥流消息。 图12示出了流数据分组1302-1、 1302-2、 1302-3,每个数据分组都具有使用密码 密钥k。、kpb进行加密的有效载荷。与数据分组1302相关联的是包括密钥流分组1304-1、 1304-2、 1304-3和1304-4的密钥流。在其相关联的数据分组1302-1之前的时间传送的密 钥流分组1304-1包括用于对数据分组1302-1的加密有效载荷进行解密的密码密钥k。。由 此,加密密钥k。具有与其相关联的生命期d。,生命期d。确保能够对关联数据分组进行加密。 对于第二密钥流分组1304-2及其密码密钥、同样如此,密码密钥、可以用于对关联数据 分组1302-2的有效载荷进行解密。这里,同样地,在数据分组1302-2之前很靠前的时间,传送关联密钥流分组1304-2,密码密钥、具有确保对数据分组1302-2的有效载荷进行正 确解密的生命期4。 根据本发明的实施例,如之前对数据分组和关联控制分组的解释一样,在接收机 终端处,可以在具有媒体数据容器和元数据容器的文件中一起存储数据分组和关联密钥流 分组。 图11示出了根据本发明的实施例的用于记录文件1102的设备1100,所述文件 1102具有相关的媒体数据容器1104和元数据容器1106。 所述设备1100包括接收机1108,用于接收数据分组1110,每个数据分组1110包 括有效载荷,并用于接收包括多个密码密钥的密钥流分组1112,其中,每个密码密钥与接收 的数据分组的有效载荷相关联。此外,所述设备IIOO包括记录器1116,用于将接收的数据 分组1110和接收的密钥流分组1112存储在所述媒体数据容器1104中,并用于将关联元数 据存储在所述元数据容器1106中,所述关联元数据包括接收的数据分组1110和接收的密 钥流分组1112的传输定时信息,以及包括指示存储的数据分组1110和存储的密钥流分组 1112在媒体数据容器1104中的位置的位置信息。 应强调,设备IIOO可以与设备100结合使用,或被包括在设备100中。也就是说, 可以组合本发明的一起存储数据分组和关联控制分组的概念、一起存储数据分组和关联密 钥流分组以及从存储的数据分组和关联控制分组和/或关联密钥流分组中,以媒体轨道的 形式创建解码信息的概念。 再次转到图ll,将接收的数据分组1110作为样本存储在媒体数据容器1104的第 一组块1118中。将接收的相关联密钥流分组作为样本存储在媒体数据容器1104的第二组 块1120中。根据本发明的优选实施例,可以以交错的方式将第一和第二组块1118和1120 存储在媒体容器1104中。 如以上所解释的,文件1102可以是基于ISO基础媒体文件格式的文件,例如MP4 文件。因此,记录器1116适于将第一组块1118存储在元数据容器moovl 106的第一元数据 轨道1124的第一组块偏移表stco或co64中,其中,根据媒体数据容器1104是否是文件 1102的一部分,第一组块偏移表指示每个第一组块1118到文件1102或媒体数据容器1104 的索引。利用与对第一组块的解释相同的方式,将第二组块到媒体数据容器1104的索引存 储在元数据容器1106的第二元数据轨道1128的第二组块偏移表中。 同已经解释过的数据分组110、112和关联控制分组114、115并行存储在接收提示 轨道和关联接收提示轨道中的情况一样,将数据分组1110的传输定时信息(即接收时间或 RTP时间戳)存储在第一元数据轨道1124所包括的第一stts箱中。类似地,将传输定时信 息或差量传输定时信息存储在与第二组块1120相关的第二元数据1128轨道的第二 stts 箱中。 此外,为了便于在完成流的接收之后进行回放,可以执行一次处理,以将密钥流 接收提示轨道转换为虚拟元数据轨道。为了这个目的,所述设备1100包括处理器(未示 出),所述处理器基于存储的数据分组1110和关联元信息1124,以及基于存储的密钥流分 组1112和关联的密钥流元信息1128,将解密信息分配给存储的数据分组1110的有效载荷, 其中,所述解密信息指示了在哪个时刻使用哪个密码密钥来重放存储的数据分组1110的 有效载荷。
25
也就是说,可以将具有传输定时的密钥流接收提示轨道中的密钥消息转换为具有 媒体定时的虚拟元数据轨道中的密钥样本。这是基于与上述对虚拟媒体轨道的解释相同的 概念来完成的。也就是说,创建密钥样本,并将其存储在媒体数据容器1104中。因此,每 个密钥样本与访问单元或媒体帧相关,并包括关于对相关的媒体帧使用哪个密码密钥的信 息。在包括stts箱的关联元数据轨道1128中,给出了解码对密钥样本的信息。该解码对 密钥样本的信息指示在哪个时刻访问各自的密钥样本,该密钥样本再次涉及存储的数据分 组的有效载荷数据,以产生各自的加密媒体帧。如果需要,虚拟地加倍密钥样本,以使得媒 体轨道中的每个媒体样本都具有密钥轨道中的关联的密钥样本(具有相同的密钥ID)。
因此,可以创建媒体访问单元(例如媒体帧)与密钥消息之间的精确的定时关系, 尤其是在内容加密的情况下可以根据传输单元(数据分组)重构加密的访问单元时。
为了读取文件1102,所述文件在媒体数据容器1104中存储数据分组110并存储关 联的密钥流分组1112,并在元数据容器1106中存储了关联元数据,本发明的实施例提供了 一种设备,所述设备包括处理器,所述处理器基于存储的数据分组1110,基于关联分组元信 息1124,以及基于存储的密钥流分组1112和关联的密钥流元信息1128,将加密信息分配给 存储的数据分组的有效载荷,其中,解密信息指示了在何时使用哪个密码密钥来重放存储 的数据分组的有效载荷。 用于分配解密信息的处理器可以用于加密数据分组1110的有效载荷的播放器。 出于这个原因,可以基于所分配的解密信息将解密后的数据分组输出至解码器。用于分配 解密信息的处理器也可以用于产生虚拟解密信息,所述虚拟解密信息将被部分存储在媒体 数据容器1104中作为虚拟密钥样本。关联元信息被存储在元数据轨道1128中。这与上述 虚拟媒体轨道的概念相对应。 密钥样本的有效载荷可以包括接收的密钥流消息的原始有效载荷。这意味着直接 存储密钥流的UDP分组的内容。 一些系统可能将该数据分组装在另一种结构内,以允许存 储多个接收的密钥流消息。 密钥流样本的定时取决于其基本RTP接收提示轨道的定时方法。如果该RTP接收 提示轨道从RTP时间戳中推导出其解码时间,则密钥流接收提示轨道也将从RTP时间戳中 推导出其解码时间,然而,它可能需要对RTP时间戳进行外插。如果RTP接收提示轨道使用 接收时间,则接收时间也将被用于存储密钥流消息。 一般地,RTP接收提示轨道和密钥流接 收提示轨道被同步并使用相同的时间基础。 作为概括,本发明涉及一种媒体存储系统,所述媒体存储系统将接收到的"传输单
元"(TU)-所述传输单元典型地包含分组化的媒体数据,例如视频数据-记录为接收提示轨
道中的预计算的分组或构造器,以及将"控制传输单元"(CTU)记录在文件的样本中。所述
控制传输单元被存储在与所述接收提示轨道相关联的分离的平行轨道中。 CTU包含在从文件回放过程中用于处理接收提示轨道的媒体分组所必需或有用的
附加数据。CTU的示例是RTCP报告或在加密流的情况下的密钥消息。 为了优化记录的流的本地回放,"虚拟媒体轨道"使用反提示过程,将接收到的TU 映射至"虚拟媒体样本"。所述虚拟媒体样本具有媒体样本的定时,该定时可以使用CTU和 接收提示轨道从轨道中恢复,而无需是完整的媒体样本。如果合适,可以应用虚拟媒体轨道 的索引。该索引也适用于接收提示轨道的链接的样本。虚拟媒体轨道可以用作文件内的其他轨道(例如"定时的元数据轨道")的参考。应用可以通过虚拟媒体轨道来查找接收提示 轨道的对应样本。 将密钥流消息存储为关联的接收提示轨道。可以应用虚拟媒体轨道来精确地对齐 媒体样本和解密密钥。 近来,被称为电源片断的增加补充了上述ISO基础媒体文件格式,其已经在例如 美国专利申请US 2007/0130498A1中描述。应当提到,本发明的实施例也可适用于所述电 影片断。 根据环境,可以以硬件或软件来实现本发明的方法。所述实现可以在数字存储介 质(尤其是具有电子可读控制信号的光盘或CD)上完成,所述数字存储介质可以与可编程 计算机系统协作,以执行所述方法。 一般地,本发明也在于一种具有程序代码的计算机程序 产品,所述程序代码存储在机器可读载体上,用于在计算机程序产品在计算机上运行时执 行本发明的方法。换言之,因此,本发明可以被实现为具有程序代码的计算机程序,所述程 序代码用于在计算机程序在计算机上运行时执行所述方法。 尽管根据多个优选实施例对本发明进行了描述,然而存在落入本发明的范围内的 改变、置换及等效物。也应注意,存在许多备选方式来实现本发明的方法和构造。因此,所 附权利要求应被解释为包括所有这样的落入本发明的真实精神和范围内的改变、置换及等 效物。
权利要求
一种用于对存储在媒体数据容器(104)中的数据分组(110;112)以及存储在元数据容器(106)中的关联元信息进行处理的设备(600),所述关联元信息包括传输定时信息和指示存储的数据分组在所述媒体数据容器(104)中的存储位置的位置信息,所述设备包括处理器(602),基于存储的数据分组(110;112)和存储的关联元信息(124;128),确定针对存储的数据分组的媒体有效载荷的解码信息(604;704),其中,所述解码信息(604;704)指示了在哪个时刻重放存储的数据分组中的哪个有效载荷。
2. 如权利要求l所述的设备,其中,所述处理器(602)适于基于媒体访问单元来确定所 述解码信息(604 ;704),使得解码信息样本指示媒体有效载荷的有关媒体访问单元的起始 地址和终止地址,其中,所述起始地址表示指示所述媒体访问单元的起始的媒体数据样本 的位置,以及所述终止地址表示指示所述媒体访问单元的终止的媒体数据样本的位置,其 中,所述媒体数据样本为媒体数据容器(104)中的数据分组所包括。
3. 如权利要求1或2所述的设备,其中,所述处理器(602)适于将与媒体有效载荷的 媒体访问单元相关的解码信息样本存储在媒体数据容器(104)中,并将关联解码元信息 (606 ;706)存储在元数据容器(106)中,所述解码元信息(606 ;706)指示解码时间以及所 述解码信息样本在媒体数据容器(104)中的位置。
4. 如权利要求3所述的设备,其中,所述处理器(602)适于将解码信息样本存储在媒体 数据容器(104)的解码信息组块(604 ;704)中,所述解码信息组块(604 ;704)包括至少一 个解码信息样本。
5. 如权利要求4所述的设备,其中,所述处理器(602)适于存储解码信息元数据轨道 (606 ;706)的组块偏移表,所述组块偏移表指示每个解码信息组块(704)到媒体数据容器 (104)的索引。
6. 如权利要求4或5所述的设备,其中,所述处理器(602)适于将所述解码信息样本的 解码时间存储在样本表箱(stts)中,所述样本表箱能够将所述解码信息样本的解码时间 索引到所述解码信息组块(704)中的关联样本号。
7. 如之前任一权利要求所述的设备,其中,所述存储的数据分组(110 ;112)包括 MPEG-2传送流分组。
8. 如权利要求1至6中任一项所述的设备,其中,所述存储的数据分组(110 ;112)包 括RTP分组,所述RTP分组包括分组化的媒体数据样本。
9. 如之前任一权利要求所述的设备,其中,所述存储的数据分组包括与第一和第二媒 体流相关的第一数据分组(110)和第二数据分组(112),其中,处理器(602)适于确定存储 的数据分组(110 ;112)中的哪个与所述第一或第二媒体流相关。
10. 如权利要求9所述的设备,其中,所述处理器(602)适于基于第一/第二媒体访问 单元来确定第一 /第二解码信息,使得第一 /第二解码信息样本指示了属于第一 /第二媒 体流的相关第一/第二媒体访问单元的起始地址和终止地址,其中,所述起始地址表示指 示所述第一 /第二媒体访问单元的起始的媒体数据样本的位置,以及所述终止地址表示指 示所述第一/第二媒体访问单元的终止的媒体数据样本的位置,其中,所述媒体数据样本 为媒体数据容器(104)中的第一/第二存储数据分组所包括。
11. 如权利要求10所述的设备,其中,所述处理器(602)适于将第一/第二解码信息样本存储在媒体数据容器(104)中,并将第一/第二解码元信息(606 ;706)存储在元数据容 器(106)中,所述第一/第二解码元信息(606 ;706)指示媒体数据容器(104)中所述第一 /第二解码信息样本的第一/第二解码时间以及在第一/第二位置。
12. 如权利要求10或11所述的设备,其中,所述处理器(602)适于将第一 /第二解码 信息样本存储在媒体数据容器(104)的第一/第二解码信息组块(604 ;704)中,所述第一 /第二解码信息组块(604 ;704)包括至少一个第一 /第二解码信息样本。
13. 如权利要求12所述的设备,其中,所述处理器(602)适于将所述第一/第二解码信 息样本的第一/第二解码时间存储在第一/第二样本表箱(stts)中,所述第一/第二样本 表箱能够将所述第一/第二解码信息样本的第一/第二解码时间索引至所述第一/第二解 码信息组块(704)中的关联样本号。
14. 如权利要求9至13中任一项所述的设备,其中,所述存储的第一数据分组(110)包 括第一 RTP分组,所述第一 RTP分组包括第一分组化的媒体数据,以及所述存储的第二数据 分组(112)包括第二RTP分组,所述第二RTP分组包括第二分组化的媒体数据。
15. 如权利要求14所示的设备,其中,所述存储的第一和第二RTP分组(110 ;112)另 外包括与第一和第二 RTP分组(110 ;112)相关联的第一和第二 RTCP分组(114 ;115)的至 少部分,其中所述元信息另外包括元数据容器(106)中的第一和第二RTCP分组的传输定时 信息和位置信息,以及所述存储的关联第一和第二 RTCP分组的部分被作为样本存储在媒 体数据容器(104)的RTCP组块(122)中,其中,RTCP分组(114 ;115)的定时信息和位置信 息被存储在元数据容器(106)的RTCP轨道(128)中。
16. 如权利要求15所示的设备,其中所述处理器(602)被配置为基于存储的第一和 第二 RTP分组(110 ;112)、存储的第一和第二 RTCP分组以及基于存储的关联元信息(124 ; 128)来分别确定第一和第二解码信息(604 ;704),其中,第一和第二解码信息(604 ;704) 分别指示了在哪个时刻重放存储的第一和第二数据分组的哪个有效载荷。
17. 如之前任一权利要求所述的设备,其中,所述媒体数据容器(104)包括密钥流分组 (1112),每个密钥流分组(1112)包括密码密钥,其中,所述密码密钥与存储的数据分组中 的至少一个的有效载荷相关联,以及所述存储的密钥流分组(1112)的传输定时信息和位 置信息被存储在所述元数据容器(106)中。
18. 如权利要求17所述的设备,其中,所述处理器(602)适于基于存储的数据分组 (110 ;112)、基于关联元信息(124 ;128)、以及基于存储的密钥流分组(1112)和关联的密钥 流元信息(1128),将解密信息分配给存储的数据分组(110 ;112)的有效载荷,其中,所述解 密信息指示了在哪个时刻使用哪个密码密钥来重放存储的数据分组(110 ;112)的有效载 荷。
19. 如之前任一权利要求所述的设备,其中,所述媒体数据容器(104)和元数据容器 (106)与基于ISO基础媒体文件格式的文件(102)相关。
20. —种用于对媒体数据容器(104)中存储的数据分组(110 ;112)以及元数据容器 (106)中存储的关联元信息进行处理的方法,所述关联元信息包括传输定时信息和指示存 储的数据分组在所述媒体数据容器(104)中的存储位置的位置信息,所述方法包括基于存储的数据分组(110 ;112)和存储的关联元信息(124 ;128),确定针对存储的数 据分组的有效载荷的解码信息(604 ;704),其中,所述解码信息指示了在哪个时刻重放存储的数据分组中的哪个有效载荷。
21. —种计算机程序,当所述计算机程序在计算机和/或微控制器上运行时,执行权利 要求20所述的方法。
22. —种用于读取文件(102)的设备,所述文件在与所述文件相关的媒体数据容器 (104)中存储包括有效载荷的数据分组(110 ;112),并在所述媒体数据容器(104)中存储针 对存储的数据分组(110 ;112)的有效载荷的解码信息(602 ;702),其中,所述解码信息指示 在哪个时刻重放存储的数据分组(110 ;112)中的哪个有效载荷,所述文件在文件的元数据 容器(106)中存储关联元数据(606 ;706),所述关联元数据(606 ;706)指示媒体数据容器 (104)中的解码信息(602 ;702)的解码时间和位置,所述设备包括处理器,用于通过访问元数据容器(106)中的关联元数据(606 ;706),并通过基于所述 关联元数据(606 ;706)访问媒体数据容器(104)中的解码信息(602 ;702),以及通过基于 所述解码信息(602 ;702)访问存储数据分组(110 ;112)的有效载荷,来确定存储的数据分组(110 ;112)的有效载荷的输出调度;以及输出控制器,用于根据所确定的输出调度来输出所述有效载荷。
23. —种用于读取文件(102)的方法,所述文件在与所述文件相关的媒体数据容器 (104)中存储包括有效载荷的数据分组(110 ;112),并在所述媒体数据容器(104)中存储针 对存储的数据分组(110 ;112)的有效载荷的解码信息(602 ;702),其中,所述解码信息指示在哪个时刻重放存储的数据分组(110 ;112)中的哪个有效载荷,所述文件在文件的元数据容器(106)中存储关联元数据(606 ;706),所述关联元数据(606 ;706)指示媒体数据容器 (104)中的解码信息(602 ;702)的解码时间和位置,所述方法包括通过访问元数据容器(106)中的关联元数据(606 ;706),通过基于所述关联元数据 (606 ;706)访问媒体数据容器(104)中的解码信息(602 ;702),以及通过基于所述解码信 息(602 ;702)访问存储数据分组(110 ;112)的有效载荷,来确定存储的数据分组(110 ; 112)的有效载荷的输出调度;以及根据所确定的输出调度来输出所述有效载荷。
24. —种计算机程序,当所述计算机程序在计算机和/或微控制器上运行时,执行权利 要求23所述的方法。
全文摘要
一种用于对媒体数据容器(104)中存储的数据分组(110;112)以及元数据容器(106)中存储的关联元信息进行处理的设备(600),所述关联元信息包括传输定时信息和指示存储的数据分组在所述媒体数据容器(104)中的存储位置的位置信息,所述设备包括处理器(602),所述处理器基于存储的数据分组(110;112)和存储的关联元信息(124;128),来确定针对存储的数据分组的媒体有效载荷的解码信息(604;704),其中,所述解码信息(604;704)指示了在哪个时刻重放存储的数据分组中的哪个有效载荷。
文档编号H04N7/167GK101731013SQ200880019643
公开日2010年6月9日 申请日期2008年7月1日 优先权日2007年7月2日
发明者史蒂芬·克雷格洛, 史蒂芬·道尔拉, 哈拉尔德·福克斯, 尼克拉斯·费伯尔 申请人:弗劳恩霍夫应用研究促进协会