一种基于DASH的多媒体内容插入播放的方法和设备与流程

文档序号:12629192阅读:264来源:国知局
一种基于DASH的多媒体内容插入播放的方法和设备与流程

本申请涉及通信技术领域,特别涉及一种基于DASH的多媒体内容插入播放的方法和设备。



背景技术:

超文本传输协议(HTTP)动态自适应流媒体标准,简称DASH,可以在互联网上提供传统HTTP点播服务所不具备的高品质多媒体内容。其包括:可以根据当前网络带宽状态,让用户选择一条适合当前带宽情况的码流进行播放,并且在源内容存在的情况下,可以让用户选择不同的语言配合当前的视频播放。

DASH系统的工作原理是对同一多媒体文件准备多种不同的分辨率以及不同语言的音频,并将其切分成若干小的媒体片段,存储在服务器上。

客户端获取媒体描述(MPD:Media Presentation Description)文件,客户端可以根据MPD文件的描述获得整个文件的播放时长、支持可选择的码流的种类、所支持的各种不同的分辨率、适应的比特率等等多媒体信息,从而在播放过程中,客户端可以根据这些信息动态的选择自己需要的小的媒体片段,播放出需要的效果。

现有的多媒体内容插入方法通常是创建2个不同的播放器(player),第一player播放原始流的内容,第二player播放插入的内容。当需要播放插入的内容时,将原始流内容暂停,将第二player的画面覆盖第一player的画面,播放插入内容,插入的内容播放完成后,再隐去第二player,将第一player的画面继续播放。

对于嵌入式环境,由于硬件资源的限制,通常只有一个硬件解码器资源。该硬件解码器在解码原始流的时候,无法再解码其他的多媒体资源,也就无法解码要插入的内容,而使用2个player做覆盖播放时,需要涉及到2个player之间的资源切换,以及相关资源的销毁创建,在仅有一个硬件解码器的情况下无法做到无缝播放,并且创建2个player将更加消耗资源。



技术实现要素:

本申请提供了一种基于DASH的多媒体内容插入播放的方法和设备,以实现高效的无缝插入播放。

本申请公开了一种基于DASH的多媒体内容插入播放的方法,包括:

获取原始媒体描述MPD文件,对MPD文件进行解析;

确定插入多媒体内容的时间点;其中,每一个待插入的多媒体内容对应一个时间点;

根据每一个待插入的多媒体内容的长度以及对应的时间点,分别在原始MPD文件中切分出对应的Period;其中,每一个用于插入多媒体内容的Period的起始时间为对应的插入多媒体内容的时间点,长度为对应的待插入的多媒体内容的长度;

将每一个待插入的多媒体内容分别独立包装,并分别插入所切分的对应的Period中,得到扩展后的MPD文件;

将扩展后的MPD文件发送给DASH播放器;

DASH播放器对扩展后的MPD文件进行解析,并播放。

较佳的,该方法还包括对每一个待插入的多媒体内容进行以下预处理:

判断所述待插入的多媒体内容是否为MP4格式,如果不是MP4格式,将其转换为MP4格式;

判断所述待插入的多媒体内容是否已经碎片化为片段文件,如果没有碎片化为片段文件,则对所述待插入的多媒体内容进行碎片化,并保存碎片化后的结果。

较佳的,对所述待插入的多媒体内容进行碎片化包括:

将待插入的多媒体内容切割成长度小于或者等于15秒的片段文件,其中,片段文件的格式符合DASH段文件的相关规范。

较佳的,如果当前插入多媒体内容的时间点在原始MPD文件中的一个已有Period中,则所述在原始MPD文件中切分出对应的Period包括:

以所述当前插入多媒体内容的时间点为界,将所述已有Period切分成两个Period;

在所述两个Period之间插入所述对应的Period;

将所述两个Period的起始时间及长度,以及所述对应的Period的起始时间及长度写入原始MPD文件中,并校正原始MPD文件中相关Period的起始时间。

本申请还公开了一种基于DASH的多媒体内容插入播放的设备,包括:MPD预处理模块,其中:

所述MPD预处理模块,用于从DASH远程服务器获取原始MPD文件,对MPD文件进行解析;

并用于确定插入多媒体内容的时间点,其中,每一个待插入的多媒体内容对应一个时间点;

还用于根据每一个待插入的多媒体内容的长度以及对应的时间点,分别在原始MPD文件中切分出对应的Period;其中,每一个用于插入多媒体内容的Period的起始时间为对应的插入多媒体内容的时间点,长度为对应的待插入的多媒体内容的长度;

最后将每一个待插入的多媒体内容分别独立包装,并分别插入所切分的对应的Period中,得到扩展后的MPD文件,发送给DASH播放器;所述DASH播放器,用于对扩展后的MPD文件进行解析,并播放。

较佳的,所述MPD预处理模块还用于对每一个待插入的多媒体内容进行以下预处理:

判断所述待插入的多媒体内容是否为MP4格式,如果不是MP4格式,将其转换为MP4格式;

判断所述待插入的多媒体内容是否已经碎片化为片段文件,如果没有碎片化为片段文件,则对所述待插入的多媒体内容进行碎片化,并将碎片化后的结果保存到插入流缓存服务器;所述插入流缓存服务器,用于向DASH播放器提供所保存的文件。

较佳的,所述MPD预处理模块按照以下方式对所述待插入的多媒体内容进行碎片化:

将待插入的多媒体内容切割成长度小于或者等于15秒的片段文件,其中,片段文件的格式符合DASH段文件的相关规范。

较佳的,如果当前插入多媒体内容的时间点在原始MPD文件中的一个已有Period中,则,所述MPD预处理模块按照以下方式在原始MPD文件中切分出对应的Period:

以所述当前插入多媒体内容的时间点为界,将所述已有Period切分成两个Period;

在所述两个Period之间插入所述对应的Period;

将所述两个Period的起始时间及长度,以及所述对应的Period的起始时间及长度写入原始MPD文件中,并校正原始MPD文件中相关Period的起始时间。

由上述技术方案可见,本申请提供的基于DASH的多媒体内容插入播放的方法和设备,通过扩展原始MPD的方式,将需要插入的多媒体内容插入到原始多媒体流中,从而可以在播放原始多媒体流的过程中,在插入点直接播放所插入的多媒体内容,而无需创建第二player,不增加新的硬件投入,不修改已有的软件代码,也不会出现硬件资源切换的问题,从而可以更加高效的实现无缝插入播放。

附图说明

图1为本发明基于DASH的多媒体内容插入播放设备的组成结构示意图;

图2为本发明基于DASH的多媒体内容插入播放方法的流程示意图;

图3为本发明对待插入多媒体内容进行切分并插入原始流的MPD文件的流程示意图;

图4为本发明实施例中在原始多媒体内容中插入一段多媒体内容的示意图;

图5为本发明实施例中在原始多媒体内容中插入两段多媒体内容的示意图。

具体实施方式

为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本申请作进一步详细说明。

本发明针对现有技术的不足,提出一种新的方法,该方法使用扩展原始MPD的方式,将需要插入的多媒体内容插入到原始多媒体流中,这样可以在播放原始多媒体流的过程中,在插入点直接播放所插入的多媒体内容,而无需创建第二player,不增加新的硬件投入,不修改已有的软件代码,也不会出现硬件资源切换的问题,从而可以更加高效的实现无缝插入播放。

图1为本发明基于DASH的多媒体内容插入播放设备的组成结构示意图,图1所示设备在现有设备的基础上,在DASH播放器前增加一个MPD预处理模块,该MPD预处理模块用于按照本发明提供的方法对原始MPD文件进行切分,并将待插入的多媒体内容插入到需要插入的位置得到扩展后的MPD文件,然后将扩展后的MPD文件发送给DASH播放器进行播放。

具体而言:所述MPD预处理模块,用于从DASH远程服务器获取原始MPD文件,对MPD文件进行解析;

并用于确定插入多媒体内容的时间点,其中,每一个待插入的多媒体内容对应一个时间点;

还用于根据每一个待插入的多媒体内容的长度以及对应的时间点,分别在原始MPD文件中切分出对应的Period;其中,每一个用于插入多媒体内容的Period的起始时间为对应的插入多媒体内容的时间点,长度为对应的待插入的多媒体内容的长度;

最后将每一个待插入的多媒体内容分别独立包装,并分别插入所切分的对应的Period中,得到扩展后的MPD文件,发送给DASH播放器;

所述DASH播放器,用于对扩展后的MPD文件进行解析,并播放。

较佳的,所述MPD预处理模块还用于对每一个待插入的多媒体内容进行以下预处理:

判断所述待插入的多媒体内容是否为MP4格式,如果不是MP4格式,将其转换为MP4格式;

判断所述待插入的多媒体内容是否已经碎片化为片段文件,如果没有碎片化为片段文件,则对所述待插入的多媒体内容进行碎片化,并将碎片化后的结果保存到插入流缓存服务器;

所述插入流缓存服务器,用于向DASH播放器提供所保存的文件。

较佳的,所述MPD预处理模块按照以下方式对所述待插入的多媒体内容进行碎片化:将待插入的多媒体内容切割成长度小于或者等于15秒的片段文件,其中,片段文件的格式符合ISO-14496以及ISO-IEC-23009-1中对DASH的段文件的规范。

较佳的,如果当前插入多媒体内容的时间点在原始MPD文件中的一个已有Period中,则,所述MPD预处理模块按照以下方式在原始MPD文件中切分出对应的Period:

以所述当前插入多媒体内容的时间点为界,将所述已有Period切分成两个Period;

在所述两个Period之间插入所述对应的Period;

将所述两个Period的起始时间及长度,以及所述对应的Period的起始时间及长度写入原始MPD文件中,并校正原始MPD文件中相关Period的起始时间。

图2为本发明基于DASH的多媒体内容插入播放方法的流程图,如图2所示,该方法包括:

步骤100,读取一段或者多段待插入原始流的多媒体内容。

该多媒体内容一般为MP4格式,如果为其他格式,需要将其转换为MP4格式,可以采用现有相关的转换方法进行转换,本发明不再赘述。

步骤200,检查读取的MP4格式的待插入原始流的多媒体内容是否已经碎片化为片段文件,如果没有碎片化为片段文件,则需要进行步骤300的碎片化工作,如果已经碎片化为片段文件,则跳过步骤300,执行步骤400。

本步骤中所描述的碎片化的含义为:此MP4格式的待插入原始流的多媒体内容是否已经被切割成多个片段(segment),每个片段(segment)单独保存为一个文件。碎片化后的文件格式需要符合ISO-14496以及ISO-IEC-23009-1中对Dash的段文件的一系列规范。

步骤300,对待插入原始流的多媒体内容进行碎片化,得到若干片段文件。

碎片化之后的文件需要满足之前所述的协议规范,具体碎片化的操作是:将指定文件切割成不大于15s的片段文件,将每个文件都保存在图1所示的插入流缓存服务器上。

步骤400,在Dash播放器获取远程Dash服务器的MPD文件的过程中,截取MPD文件,并解析MPD文件中的各种信息。

步骤500,获取插入多媒体内容的时间点。这里,插入多媒体内容的时间点记为需要插入多媒体内容的时间点。

步骤600,根据步骤500获得的插入多媒体内容的时间点以及待插入的多媒体内容的长度,在原始MPD文件中切分出对应的Period。

步骤700,将每个待插入的多媒体内容各自独立包装成新的Period,分别插入步骤600所切分的对应的Period中。

步骤600和步骤700的具体实施方式将在描述完本流程后,结合图3和图4进行详细描述。

步骤800,完成对原始MPD文件的切分,以及对待插入多媒体内容的插入后,生成新的扩展MPD文件发给后续的Dash播放器。

步骤900,Dash播放解析扩展的MPD,并播放。

图3为本发明对原始流的MPD文件进行切分,并将待插入多媒体内容插入切分后的MPD文件的流程示意图,图3所示流程包括以下步骤:

步骤1000,读取MPD文件,确定所有Period的起始时间以及时长。

步骤2000,按时间先后顺序遍历所有的Period,检查需要插入多媒体内容的时间点T是否在当前的Period范围内,如果需要插入多媒体内容的时间点T不在当前的Period范围内,进入步骤3000,如果需要插入多媒体内容的时间点T在当前的Period范围内,进入步骤4000。

例如,参见图4,假设定位到时间点T所在的Period,该Period的起始时间为0,其长度为T2。

步骤3000,将当前Period的下一个period作为当前Period,返回步骤2000。

步骤4000,将当前的Period切分为2个period,PeriodA和PeriodB,其中,PeriodA的文件片段(segment)长度为T,PeriodB文件片段(segment)的长度为原始Period时长除去PeriodA的时长所剩下的时间T2-T,如图4所示。

步骤5000,在PeriodA和PeriodB中间插入PeriodC。

步骤6000,在PeriodC中添加需要插入的多媒体内容列表。需要注意的是,如果插入的多媒体内容与之前的Period的解码参数一致,则可以省略插入初始化段(init segment),如果不一致,则需要在PeriodC的起始时间添加相应的初始化段。如此,可以做到无缝播放2个完全不同的多媒体数据。

步骤7000,修改PeriodC的Period@Start值为T,Period@duration值为offset,修改PeriodB的Period@start值为T+offset,Period@duration值为T2-T。本步骤主要是校正原始MPD文件中相关Period的起始时间信息。

步骤8000,检查是否还有其他需要插入多媒体内容的位置,如果有跳到步骤2000,否则结束。

图5给出了一个在原始多媒体内容中插入两段多媒体内容的示意图,假设需要插入的两段多媒体内容的长度分别为offset1和offset2,插入的时间点分别为T1和T2,其实现方法与上述流程图3类似,在此不再赘述。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1