著录项信息
| 专利名称 | 一种支持PS流媒体文件直接帧精确定位的索引方法 |
| 申请号 | CN201110061154.8 | 申请日期 | 2011-03-14 |
| 法律状态 | 权利终止 | 申报国家 | 中国 |
| 公开/公告日 | 2011-11-02 | 公开/公告号 | CN102231827A |
| 优先权 | 暂无 | 优先权号 | 暂无 |
| 主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
| 申请人 | 新奥特(北京)视频技术有限公司 | 申请人地址 | 北京市海淀区五棵松路49号新奥特科技大厦
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
| 权利人 | 新奥特(北京)视频技术有限公司 | 当前权利人 | 新奥特(北京)视频技术有限公司 |
| 发明人 | 夏永宏;杨珂 |
| 代理机构 | 北京挺立专利事务所(普通合伙) | 代理人 | 叶树明 |
摘要
本发明公开了一种实现PS流媒体文件直接帧精确定位的索引方法及系统,所述生成PS流媒体文件的索引文件的方法包括:读取PS流媒体数据流信息,预分析流媒体文件中的视音频数据流的基本文件信息,选择第一个有效的视频数据与第一个有效的音频数据;解析读取到的流媒体文件数据单元单元,按照数据流信息的标志码流SteramID值从中得到实际的编码数据的文件偏移,生成视音频二级索引;在记录二级索引的同时,根据数据单元出现时间的先后顺序分组形成一级索引;复写完整的视音频流信息。通过本发明可以有效地避免源文件断帧现象,通过二级索引的方法实现直接快速帧定位,大大提高了读取查询的效率,也减少了系统内存的存储空间。
一种支持PS流媒体文件直接帧精确定位的索引方法\n技术领域\n[0001] 本发明涉及节目制作技术领域,尤其涉及一种支持PS流媒体文件直接帧精确定位、索引的方法。\n背景技术\n[0002] 随着多媒体视频业务越来越快的发展,文件的存储介质已经不限于卡带或者光盘,适合于网络传输的流媒体得到了更多的关注。然而在目前三网融合的国家大政策背景下,对网络,电视,电信三大网络的发展提出了很高要求。\n[0003] 流媒体是数据网络上按时间先后次序传输和播放的连续音/视频数据流,它作为一种新的媒体传送方式也越来越广泛的应用于视频与电视制作领域。流媒体的流式传输方式可将整个A/V及3D等多媒体文件经过特殊的分块方式分成一个个包含基本分块信息的数据包,由视频服务器向用户计算机连续、实时传送。因此用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解码设备(硬件或软件)对压缩的A/V、3D等多媒体文件解码后进行播放和观看,此时多媒体文件的剩余部分同时通过后台的服务器继续下载。\n[0004] 据传输媒体的质量不同,MPEG-2中定义了节目流(PS:ProgramStream)传输方式,其中PS流的包结构是可变长度的,因此,一旦某一PS包的同步信息丢失,接收机无法确定下一包的同步位置,就会造成失步,导致严重的信息丢失。因此,而在信道环境较好,传输误码较低时,一般采用PS码流如DVD格式媒体文件等等,但是PS流文件传输成功后,其文件的格式会比较完整,可以更好的还原媒体文件的格式。\n[0005] 在非线性编辑视频播放或者帧采样的时候,通常不仅仅关注于实时播放的效率,而更关注于关键帧的显示效果,所以对于整体的完整的文件在读取的时候需要搜索到每一帧的具体位置和数据包或者数据包组的大小。由于PS流媒体文件很大且多数不存在适合于方便编辑用的索引数据,这就需要占用很大的内存空间,以现有的存储方式或内置索引结构直接精确定位帧的时候,资源占用率很大,与每次直接从头查询源流媒体文件并无区别。\n[0006] 在上述现有技术实现的过程中,发明人发现至少存在以下技术问题:\n[0007] 1、读取文件时容易断帧,播出出错;\n[0008] 2、编辑流媒体文件需要占用内存空间很大,等待时间长;\n[0009] 3、传统的编辑定位方法很难达到快速的帧精确定位;\n[0010] 4、PS虽属MPEG流媒体结构的大框架内,但是有着自己的特点,PS有着更灵活的存放方法,可以按帧来存放,也可以一整个GOP的数据(多帧)为单位来存放,没有可以兼容的数据结构。\n发明内容\n[0011] 为了解决上述现有技术的缺点,本发明的主要目的是提供一种支持节目流PS(Program stream)流媒体文件直接帧精确定位的索引方法,通过对PS流媒体文件按视音频数据单元处理并建立分级索引的方法,解决现有技术中编辑PS流媒体文件需要占用很大内存和查询需要很长时间以及丢帧的问题,达到高效的帧精确定位编辑。\n[0012] 为了达到上述目的,本发明提供了一种支持PS流媒体文件直接帧精确定位的索引方法,主要步骤包括:\n[0013] 读取PS流媒体数据流信息,预分析流媒体文件中的视音频数据流的基本文件信息,选择第一个有效的视频数据与第一个有效的音频数据;\n[0014] 解析读取到的流媒体文件数据单元,按照数据流信息的标志码流SteramID值从中得到实际的编码数据的文件偏移,生成视音频二级索引;\n[0015] 在记录二级索引的同时,根据数据单元出现时间的先后顺序分组形成一级索引;\n[0016] 复写完整的视音频流信息。\n[0017] 本发明实施例通过对支持PS视音频媒体流文件建立两级索引,并且在记录下每一帧位置的同时分析记录下每一帧的基本属性信息(包括位移信息,数据大小,是否关键帧等等),按照用户自定义的比特大小的数据单元模式存储并建立索引以最优化文件读取效率,使得在读取查询媒体流文件每一帧时就能在一级索引进行粗定位,再到二级索引实现直接快速精确定位目标帧的具体位置和基本信息,而无需对源文件内视音频数据进行额外存储,也避免了频繁直接读取源文件信息,大大提高了读取查询的效率,也减少了对系统内存的过多依赖。\n附图说明\n[0018] 为了更清楚的说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0019] 图1为本发明实施例提供的一种支持PS流媒体文件直接帧精确定位的索引文件生成示意图;\n[0020] 图2为为本发明实施例提供的一种支持PS流媒体文件直接帧精确定位索引文件加载示意图。\n具体实施方式\n[0021] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然所描述的实施例仅是本发明的一部分实施例,不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0022] 本发明实施例一方面提供了一种PS流媒体文件直接帧精确定位索引方法的索引文件生成的方法,如图1所示为PS索引文件生成的具体方法步骤:\n[0023] 步骤S1:读取支持PS的流媒体文件基本文件信息,从文件头开始搜索并解析PS流媒体文件的文件结构信息。\n[0024] 步骤S2:搜索到第一个有效的视频数据后真正开始记录数据,并预写所有数据流的基本文件信息到文件头,在预写基本文件信息到文件头的同时分别预留空间以供分别保存视频GOP一级索引数据与视频Payload一级索引。\n[0025] 步骤S3:搜索到第一个有效的音频数据并真正开始记录数据。在搜索到第一个有效的音频索引数据的同时预写所有数据流的基本文件信息到文件头,在预写基本文件信息到文件头的同时预留空间以供分别保存音频一级索引数据。\n[0026] 其中步骤S3与步骤S4同时进行并不分先后顺序。\n[0027] 步骤S4:根据通用国际标准解析读取到的PS媒体流数据单元的信息,对所述PS媒体流数据单元根据数据流信息的StreamID值进行分类,不同的StreamID值记录节目流列表中不同的数据单元种类,将PS流媒体文件数据流分类:视频数据单元,音频数据单元,其他数据单元。如果StreamID值为节目流中记录的视频数据单元则转到步骤S401,如果为音频数据单元则进行步骤S5,如果为其他数据则不记录到二级索引。\n[0028] 其中,步骤S4中判断为视频数据单元后,如果得到第一次有效的视频数据单元后分析实际数据后截取记录并记录其视频序列头信息数据。如果为音频数据单元,得到第一次有效的音频数据后分析出音频头信息数据,如有必要也需要像视频一样加以记录。\n[0029] 步骤S401:对每次读取的视频数据包进行记录并生成视频Payload的二级索引。\n在生成视频Payload二级索引的同时对当前视频Payload记录进行关键帧的判断分析,当前帧如果为关键帧则意味着前一个GOP数据的结束,需要加入累计到的前一个视频GOP数据的基本信息二级索引,并清空累计信息开始记录新的一个GOP数据。\n[0030] 步骤S5:当判断媒体流数据单元为音频数据单元后则对每次读取的音频数据流属性信息记录到音频二级索引内。\n[0031] 步骤S401与步骤S5是同时进行的,并不分先后顺序。\n[0032] 步骤S6:对于步骤S401与步骤S5中生成的视音频二级索引后按照一定的数据单元大小进行存储(数据单元大小是由用户自己设定的,并不是固定不变的),当存储上限达到预设值时则回写到对应的视音频一级索引中。\n[0033] 步骤S7:对所述读取到的媒体流文件从文件头开始按照视音频数据流每一帧都进行分别的分级索引的建立,直到读取到数据结尾为止。\n[0034] 步骤S8:当读取到文件尾的时候,则复写完整的视音频数据流信息到一级索引的文件头基本文件信息进行索引记录。\n[0035] 本发明实施例通过对支持PS视音频媒体流文件建立两级索引,并且在记录下每一帧位置的同时分析记录下每一帧的基本属性信息(包括位移信息,数据大小,是否关键帧等等),按照用户自定义的比特大小的数据单元模式存储并建立索引以最优化文件读取效率,使得在读取查询媒体流文件每一帧时就能在一级索引进行粗定位,再到二级索引实现直接快速精确定位目标帧的在具体位置和基本信息,而无需对源文件内视音频数据进行额外存储,也避免了频繁直接读取源文件信息,大大提高了读取查询的效率,也减少了对系统内存的过多依赖。\n[0036] 本发明的另一方面提供了一种支持PS流媒体文件直接帧精确定位索引文件的加载方法,如图2所示,具体为:\n[0037] 步骤S1:加载流媒体索引文件。\n[0038] 步骤S2:按照帧精确定位结果,加载流媒体文件。\n[0039] 步骤S3:按照视音频分解流媒体文件为视频流和音频流。\n[0040] 步骤S4:对加载的PS流媒体文件区分视频流与音频流两种方式分别进行加载。\n[0041] 步骤S5:对于加载的音频流,加载音频流解码器;对于加载的视频流,加载视频解码器。\n[0042] 步骤S6:分别输出音频流与视频流。\n[0043] 本发明实施例通过对支持PS视音频媒体流文件建立两级索引,并且在记录下每一帧位置的同时分析记录下每一帧的基本属性信息(包括位移信息,数据大小,是否关键帧等等),按照用户自定义的比特大小的数据单元模式存储并建立索引以最优化文件读取效率,使得在读取查询媒体流文件每一帧时就能在一级索引进行粗定位,再到二级索引实现直接快速精确定位目标帧的在具体位置和基本信息,而无需对源文件内视音频数据进行额外存储,也避免了频繁直接读取源文件信息,大大提高了读取查询的效率,也减少了对系统内存的过多依赖。\n[0044] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。\n[0045] 以上所述,仅为本发明的一个最佳具体实施例,但本发明的特征并不局限于此,任何熟悉该项技术的人在本发明领域内,可轻易想到的变化或修饰,都应涵盖在以下本发明的申请专利范围中。
法律信息
- 2019-03-08
未缴年费专利权终止
IPC(主分类): H04N 5/262
专利号: ZL 201110061154.8
申请日: 2011.03.14
授权公告日: 2013.03.06
- 2013-03-06
- 2011-12-14
实质审查的生效
IPC(主分类): H04N 7/24
专利申请号: 201110061154.8
申请日: 2011.03.14
- 2011-11-02
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |