著录项信息
专利名称 | 一种视音频文件读取的方法和装置 |
申请号 | CN201010618300.8 | 申请日期 | 2010-12-31 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2012-07-04 | 公开/公告号 | CN102547203A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 新奥特(北京)视频技术有限公司 | 申请人地址 | 北京市海淀区五棵松路49号新奥特科技大厦
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 新奥特(北京)视频技术有限公司 | 当前权利人 | 新奥特(北京)视频技术有限公司 |
发明人 | 刘铁华;徐进;郑鹏程;见良 |
代理机构 | 北京挺立专利事务所(普通合伙) | 代理人 | 叶树明 |
摘要
本发明实施例公开了一种视音频文件读取的方法和装置,所述方法包括:获取用户产生的一条IPlayList的播放列表;将当前的IPlayList设置给IFileReader;按照用户的要求控制IFileReader进行操作;FileReader根据不同的控制命令从IPlayList播放列表中取出对应的IPlayListElement,根据当前IPlayListElement中取出对应的文件信息,创建对应的IclipReader,读取数据;当IFileReader收到从IClipReader返回的数据,IFileReader根据需要查找解码器,解码数据;如果解码后的数据需要制式变换,则变换数据的制式;返回用户需要的数据。通过本发明实施例,可以让用户简单的使用接口就可以支持各种文件的读取,简化了调用者的繁杂的读取流程,优化文件读取速度,提高文件的使用效率,提高数据的利用率,用户只要加入新格式的IClipReader就可以支持新的格式,统一调用流程,管理所有文件的使用。
1.一种视音频文件读取的方法,其特征在于,包括:
获取用户产生的一条IPlayList的播放列表;
将当前的IPlayList设置给IFileReader;
按照用户的要求控制IFileReader进行操作;
所述IFileReader根据不同的控制命令从所述IPlayList播放列表中取出对应的IPlayListElement,根据当前IPlayListElement中取出的对应的文件信息,创建对应的IClipReader,读取数据;
当IFileReader收到从IClipReader返回的数据,IFileReader根据需要查找解码器,解码数据;
如果解码后的数据需要制式变换,则变换数据的制式;
返回用户需要的数据;
其中,所述IPlayList、IFileReader、IPlayListElement、IClipReader是为统一调用流程封装的读操作接口,其中的IPlayList和IPlayListElement分别是由用户产生的播放列表和播放单元,IClipReader提供对不同种类素材的统一读操作行为,IFileReader提供对所有文件读操作的完整封装。
2.如权利要求1所述的方法,其特征在于,所述按照用户的要求控制IFileReader进行操作,具体包括Seek,Play,Shuttle或Stop。
3.如权利要求2所述的方法,其特征在于,如果操作为Stop,还包括:
等待所有没有处理完数据的IClipReader,销毁所有的IClipReader。
4.如权利要求2所述的方法,其特征在于,如果操作为Seek,还包括:
设置预取数据N,并且检查所有的IClipReader发出的数据是不是都处理完成,销毁已经处理完数据的IClipReader,所述N为1。
5.如权利要求2所述的方法,其特征在于,如果操作为Play,还包括:
从P位置开始,设置预取数据N,并且检查所有的IClipReader发出的数据是不是都处理完成,销毁已经处理完数据的IClipReader,所述N为PIPESIZE。
6.如权利要求5所述的方法,其特征在于,所述取出对应的IPlayListElement,为取出(P+n)位置的IPlayListElement。
7.如权利要求1所述的方法,其特征在于,还包括:IClipReader执行流程如下:
收到IFileReader要读取的数据;
从文件中读取数据;
返回数据给IFileReader。
8.如权利要求1所述的方法,其特征在于,还包括:如果解码后的数据不需要制式变换,则直接输出数据。
9.如权利要求1所述的方法,其特征在于,所述播放列表是由IPlayListElement按照播出时间排列的。
10.一种视音频文件读取的装置,其特征在于,包括:
获取模块,用于获取用户产生的一条IPlayList的播放列表,所述播放列表是由IPlayListElement按照播出时间排列的;
设置模块,用于把当前的IPlayList设置给IFileReader;
控制模块,用于按照用户的要求控制IFileReader进行Seek,Play,Shuttle,Stop;
创建模块,用于IFileReader根据不同的控制命令从PlayList播放列表中取出对应的IPlayListElement,根据当前IPlayListElement中取出的对应的文件信息,创建对应的IClipReader读取数据;
解码模块,用于当IFileReader收到从IClipReader返回的数据,IFileReader根据需要查找解码器,解码数据;
变换模块,用于如果解码后的数据需要制式变换,则变换数据的制式;
返回模块,用于返回用户需要的数据;
其中,所IPlayList、IFileReader、IPlayListElement、IClipReader是为统一调用流程封装的读操作接口,其中的IPlayListt和IPlayListElement分别是由用户产生的播放列表和播放单元,IClipReader提供对不同种类素材的统一读操作行为,IFileReader提供对所有文件读操作的完整封装。
一种视音频文件读取的方法和装置\n技术领域\n[0001] 本发明实施例涉及非线性编剪辑软件及视音频后期特效处理与合成软件领域,特别涉及一种视音频文件读取的方法和装置。\n背景技术\n[0002] 在利用非线性编剪辑软件及视音频后期特效处理与合成软件,制作广告、片花、电影等的过程中,经常需要高效读取大量的各种不同格式,不同压缩方式的文件,每一种文件的读取方法和解压缩的方法都不相同,对于每一种文件我们都需要设计一种调用流程来使用该类型的文件,这样对于使用者特别的繁杂。\n发明内容\n[0003] 为了统一调用流程,管理所有文件的使用,本发明实施例提供一种视音频文件读取的方法和装置,管理所有文件的使用,来方便调用者使用,简化了繁杂的读取流程,优化文件读取速度,提高文件的使用效率。\n[0004] 为达到上述目的,本发明实施例一方面提供一种文件读取的方法,包括:\n[0005] 获取用户产生的一条IPlayList的播放列表;\n[0006] 将当前的IPlayList设置给IFileReader;\n[0007] 按照用户的要求控制IFileReader进行操作;\n[0008] 所述IFileReader根据不同的控制命令从所述IPlayList播放列表中取出对应的IPlayListElement,根据当前IPlayListElement中取出对应的文件信息,创建对应的IclipReader,读取数据;\n[0009] 当IFileReader收到从IClipReader返回的数据,IFileReader根据需要查找解码器,解码数据;\n[0010] 如果解码后的数据需要制式变换,则变换数据的制式;\n[0011] 返回用户需要的数据。\n[0012] 另一方面,本发明实施例还提供一种文件读取的装置,包括:\n[0013] 获取模块,用于获取用户产生的一条IPlayList的播放列表,所述播放列表是由IPlayListElement按照播出时间排列的。\n[0014] 设置模块,用于把当前的IPlayList设置给IfileReader;\n[0015] 控制模块,用于按照用户的要求控制IFileReader进行Seek,play,shuttle,Stop;\n[0016] 创建模块,用于IFileReader根据不同的控制命令从PlayList播放列表中取出对应的IPlayListElement,根据当前PlayListElement中取出对应的文件信息,创建对应的IClipReader读取数据;\n[0017] 解码模块,用于当IFileReader收到从IClipReader返回的数据,IFileReader根据需要查找解码器,解码数据;\n[0018] 变换模块,用于如果解码后的数据需要制式变换,则变换数据的制式;\n[0019] 返回模块,用于返回用户需要的数据。\n[0020] 与现有技术相比,本发明实施例具有以下优点:通过本发明实施例,可以让用户简单的使用接口就可以支持各种文件的读取,简化了调用者的繁杂的读取流程,优化文件读取速度,提高文件的使用效率,提高数据的利用率,简化了用户添加新的格式支持,用户只要加入新格式的IClipReader就可以支持新的格式,来统一调用流程,管理所有文件的使用。\n附图说明\n[0021] 图1为本发明实施例一中接口的调用流程图;\n[0022] 图2为本发明实施例二中视音频文件读取的方法的流程图;\n[0023] 图3为本发明实施例三中视音频文件读取的方法的具体实现流程图;\n[0024] 图4为本发明实施例四中视音频文件读取的装置的结构图。\n具体实施方式\n[0025] 本发明实施例提供一种视音频文件读取的方法和装置,通过本发明实施例,提供了一个完整读操作封装,来统一调用流程,管理所有文件的使用,从而方便调用者使用,并提供了统一的调用管理机制,简化了调用者的繁杂的读取流程,优化文件读取速度,提高文件的使用效率。\n[0026] 本发明设计了四个核心的模块来实现这个调用流程,如图1所示,为本发明实施例一中提出的接口的调用流程图,模块的接口分别是IplayList接口101,IplayListElement接口102,IfileReader接口103,IClipReader接口104,各个接口的要求如下:\n[0027] IPlayListElement接口101:由用户产生的播放单元。包括要播出的文件名、文件的基本信息、文件的播出起始位置、结束位置、在PlayList中的起始位置以及结束位置。功能有:\n[0028] 保存数据单元的基本信息;\n[0029] 提供岁数据单元信息的修改。\n[0030] IPlayList接口102:由用户产生的播放列表,由IPlayListElement组成。按照IPlayListElement在IPlayList中的起始位置有小到大排列的。在PlayList中的Element不能用相互重叠。功能有:\n[0031] 提供给FileReader所需要的数据链表;\n[0032] 支持数据的各种定位功能;\n[0033] 支持数据的各种增删插操作功能;\n[0034] 支持PlayList中存在空隙的情况。\n[0035] IClipReader接口103:视频、音频、图文等不同各类素材的统一读操作行为。功能有:\n[0036] 提供对视频、音频文件的数据读取;\n[0037] 支持数据的缓存;\n[0038] 按照调用者要求读取一定范围的数据。\n[0039] IFileReader接口104:对所有文件读操作的完整封装。功能有:\n[0040] 保存数据读数据;\n[0041] 提供局部数据的读操作;\n[0042] 提供对原始数据读的控制,Seek,play,shuttle,Stop;\n[0043] 提供管道流量控制(PIPE size);\n[0044] 支持任意位置数据的读取;\n[0045] 支持异步数据的读取;\n[0046] 支持读取数据的优先级排列;\n[0047] 支持不同类型数据的读取,可以返回原始数据的内容,也可以是解码后的数据,也可以是混合后的数据;\n[0048] 支持不同制式数据的读取(如在PAL下读取HDV的文件),可以返回原始大小的内容,也可以是经过Scaler的数据(如经过Pan And Scan,LetterBox)。\n[0049] 如图2所示,为本发明实施例二中的视音频文件读取的方法的流程图,步骤如下:\n[0050] S201,获取用户产生的一条IPlayList的播放列表,所述播放列表是由IPlayListElement按照播出时间排列的。\n[0051] S202,将当前的IPlayList设置给IfileReader。\n[0052] S203,按照用户的要求控制IFileReader进行Seek,play,shuttle,Stop。\n[0053] S204,IFileReader根据不同的控制命令从PlayList播放列表中取出对应的IPlayListElement,根据当前IPlayListElement中取出对应的文件信息,创建对应的IClipReader读取数据。\n[0054] S205,当IFileReader收到从IClipReader返回的数据,IFileReader根据需要查找解码器,解码数据。\n[0055] S206,如果解码后的数据需要制式变换,则变换数据的制式。\n[0056] S207,返回用户需要的数据。\n[0057] 其中,IClipReader执行流程如下:\n[0058] 收到IFileReader要读取的数据;\n[0059] 从文件中读取数据;\n[0060] 返回数据给IfileReader。\n[0061] 如图3所示,为本发明实施例三中的视音频文件读取的方法的具体实现流程图。\n[0062] 包括以下步骤:\n[0063] S301,用户创建一条IPlayList的播放列表,所述播放列表是由IPlayListElement按照播出时间排列的。\n[0064] S302,创建FileReader,设置播放列表,设置流量控制。\n[0065] S303,按照用户的要求控制IFileReader进行Seek,play,shuttle或Stop,如果是seek,跳转到S304,如果是stop,跳转到S305,如果是play,跳转到S306。\n[0066] 其中,Seek为P位置,Play从P位置开始。\n[0067] S304,设置预取数据为N,N=1,跳转到S307。\n[0068] S305,等待所有没有处理完数据的IClipReader。销毁所有的IClipReader。\n[0069] S306,设置预取数据为N,N=PIPE size。\n[0070] S307,检查所有的IClipReader发出的数据是否都处理完成,销毁已经处理完数据的IclipReader。\n[0071] S308,从IplayList播放列表中取出(P+n)位置的IplayListElement。\n[0072] S309,根据IplayListElement中的文件信息,创建对应的IclipReader。\n[0073] S310,使用IclipReader读取(P+n)位置文件中的数据,同时进行S311和S314。\n[0074] S311,设置N=N-1;判断n是否小于N,如果是,则跳转到S312,如果否,则跳转到S313。\n[0075] S312,判断当前IplayListElement是否已经读取完成?如果是,则跳转到步骤S307,如果否,则跳转到S310。\n[0076] S313,等待IclipReader返回读取数据。\n[0077] S314,IclipReader读取对应位置的数据。\n[0078] S315,IclipReader发送异步读取数据。\n[0079] S316,IclipReader收到异步读取数据。\n[0080] S317,收到IclipReader返回读取数据,设置N=N+1,同时进行S318和S312。\n[0081] S318,判断数据是否需要解码,如果是,跳转到S319,如果否,跳转到S320。\n[0082] S319,查找解码器,解码数据。\n[0083] S320,判断解码后的数据是否需要制式变换,如果是,跳转到S321,如果否,跳转到S322。\n[0084] S321,进行制式变换。\n[0085] S322,输出数据,返回给用户。\n[0086] 如图4所示,为本发明实施例提出的视音频文件读取的装置的结构图,包括:\n[0087] 获取模块401,用于获取用户产生的一条IPlayList的播放列表,所述播放列表是由IPlayListElement按照播出时间排列的。\n[0088] 设置模块402,用于把当前的IPlayList设置给IfileReader。\n[0089] 控制模块403,用于按照用户的要求控制IFileReader进行Seek,play,shuttle,Stop。\n[0090] 创建模块404,用于IFileReader根据不同的控制命令从PlayList播放列表中取出对应的IPlayListElement,根据当前PlayListElement中取出对应的文件信息,创建对应的IClipReader读取数据。\n[0091] 解码模块405,用于当IFileReader收到从IClipReader返回的数据,IFileReader根据需要查找解码器,解码数据。\n[0092] 变换模块406,用于如果解码后的数据需要制式变换,则变换数据的制式。\n[0093] 返回模块407,用于返回用户需要的数据。\n[0094] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。\n[0095] 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。\n[0096] 本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。\n[0097] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。\n[0098] 以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
法律信息
- 2019-12-20
未缴年费专利权终止
IPC(主分类): H04N 7/01
专利号: ZL 201010618300.8
申请日: 2010.12.31
授权公告日: 2017.02.08
- 2017-02-08
- 2014-01-15
实质审查的生效
IPC(主分类): H04N 7/01
专利申请号: 201010618300.8
申请日: 2010.12.31
- 2012-07-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-08-30
|
2004-06-09
| | |
2
| | 暂无 |
2009-12-21
| | |
3
| |
2007-01-17
|
2006-07-10
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |