基于视频转码的多路输出方法及系统与流程

文档序号:13075993阅读:887来源:国知局

本发明涉及计算机技术领域,具体涉及基于视频转码的多路输出方法及系统。



背景技术:

目前的转码的输出过程是:传统面向流方式的视频转码,由于视频数据自身的特点,数据量的庞大和线性的存储格式,长期以来传统的视频编码转换都是面向数据流进行操作。其工作原理如一个制式转换器一样,输入端输入连续的ntsc制信号,同时在输出端输出实时的pal制信号。

现有的转码输出存在的技术问题是:这种方式的优点是可以以实时或者接近实时的方式输出转码结果,转码算法固化在板卡芯片上,转码工作基本上是由硬件完成,稳定性好。但其缺点也是显而易见的,转码单元针对特定的源编码方式和目标编码方式,用户基本无法对码流的大小和附加信息进行控制,灵活性较差。而为了满足实时处理的要求,有时必须需要牺牲一些图像的质量。另外的缺点就是这种基于流方式的视频转码,输入和输出基本同步,不能以快于实时的速度进行编码转换。



技术实现要素:

为解决现有技术存在的不足,本发明公开了基于视频转码的多路输出方法及系统。本发明根据可视化界面设定可同时转出多路应对于不同网络不同设备的视频,减少用户适配网络和移动设备而手动进行参数设定转化视频的时间。

为实现上述目的,本发明的具体方案如下:

基于视频转码的多路输出方法,包括以下步骤:

在可视化界面上设置参数并将设置的相关参数实例化对象到处理器的内存储器中,并创建堆栈对象,将实例化对象加入到内存堆栈中,并排序;

转码主线程读取原视频进行转码处理,将视频流临时写入到内存储器中,转码主线程读取堆栈数据,从上而下按照顺序读取待转码视频数据;

分解视频流:分解为视频和音频,根据读取到的待转化视频参数将视频流和音频流根据设定的参数重组;

将重组后的视频流和音频流合并为新的流媒体数据,压缩为实体物理文件,将已经转化好的实例对象从堆栈中移除并读取下一个,直到堆栈中再无数据,结束。

进一步的,将设置的相关参数实例化对象到处理器的内存储器中时,处理器根据用户可视化界面上设定的设定分析视频转码路数进行处理,读取页面上用户所选择的参数设定,将每一路视频实例化为一个对象。

进一步的,创建堆栈对象时,处理器根据路数创建转码堆栈,根据设定的转化路数创建出对应路数的转码虚拟对象。

进一步的,转码处理:循环堆栈中的所有转化对象,输出最终每一路的转换视频,并以相应的分辨率和原始文件名命名;

将转换后所有视频拷贝到设定的转换目录下已原文件名命名的文件夹中,删除上一步临时转换的文件。

进一步的,在可视化界面上设置参数为:用户在界面上所选择的转化的路数以及各路视频的参数,将实例化对象加入到内存堆栈中为将所有路数和各路参数已对象的形式存储起来。

基于视频转码的多路输出系统,包括处理器以及存储器;

处理器中执行以下程序指令:

在可视化界面上设置参数并将设置的相关参数实例化对象到处理器的内存储器中,并创建堆栈对象,将实例化对象加入到内存堆栈中,并排序;

转码主线程读取原视频进行转码处理,将视频流临时写入到内存储器中,转码主线程读取堆栈数据,从上而下按照顺序读取待转码视频数据;

分解视频流:分解为视频和音频,根据读取到的待转化视频参数将视频流和音频流根据设定的参数重组;

将重组后的视频流和音频流合并为新的流媒体数据,压缩为实体物理文件,将已经转化好的实例对象从堆栈中移除并读取下一个,直到堆栈中再无数据,结束。

进一步的,将设置的相关参数实例化对象到处理器的内存储器中时,处理器根据用户可视化界面上设定的设定分析视频转码路数进行处理,读取页面上用户所选择的参数设定,将每一路视频实例化为一个对象。

进一步的,创建堆栈对象时,处理器根据路数创建转码堆栈,根据设定的转化路数创建出对应路数的转码虚拟对象。

进一步的,转码处理:循环堆栈中的所有转化对象,输出最终每一路的转换视频,并以相应的分辨率和原始文件名命名;

将转换后所有视频拷贝到设定的转换目录下已原文件名命名的文件夹中,删除上一步临时转换的文件。

进一步的,在可视化界面上设置参数为:用户在界面上所选择的转化的路数以及各路视频的参数,将实例化对象加入到内存堆栈中为将所有路数和各路参数已对象的形式存储起来。

本发明的有益效果:

1.本发明采用纯软件式编码,无需采用其他硬件设备。

2.本发明根据可视化界面设定可同时转出多路应对于不同网络不同设备的视频,减少用户适配网络和移动设备而手动进行参数设定转化视频的时间。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1本发明的多路输出流程图。

具体实施方式:

下面结合附图对本发明进行详细说明:

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

本申请的一种典型的实施方式中,如图1所示,基于视频转码的多路输出方法,包括:

一个文件转多路开始;

根据用户可视化界面上设定的设定分析视频转码路数进行处理,读取页面上用户所选择的参数设定,将每一路视频实例化为一个对象;

根据路数创建转码堆栈;

转码堆栈,根据设定的转化路数创建出对应路数的转码虚拟对象,如设定为3路转化,则创建3个对象,每一个对象上包含该路转化的基本信息,如分别率,码流等;

转码处理,循环堆栈中的所有转化对象,输出最终每一路的转换视频,并以相应的分辨率和原始文件名命名;

将转换后所有视频拷贝到设定的转换目录下已原文件名命名的文件夹中,删除上一步临时转换的文件,结束。

其中,本申请中提供可视化页面,为自主开发的桌面应用程序,为用户提供界面进行选择要转化的分辨率,多选,便于让用户自主设定要输出的路数,另外,堆栈性质的转码次序,一路一路的视频输出,保证了转码的有序进行以及稳定性。

需要解释的是:一路一路的输出具体的步骤为:

1.首先记录用户在界面上所选择的转化的路数以及各路视频的参数。

2.内存创建堆栈对象,将所有路数和各路参数以对象的形式存储起来,并按照顺序进行排列。

3.视频转化主线程读取堆栈中的数据,自上而下,转化成功一路后将该路视频对象从堆栈中移除,并重新读取下一个,直到所有对象全部移除完毕。

本申请的另一种典型的实施方式中,基于视频转码的多路输出方法,包括以下步骤:

1.记录用户在可视化界面上选择好的参数;

2.记录相关参数,实例化对象到内存中,并创建堆栈对象,将实例化对象加入到内存堆栈中,并排序;

3.转码主线程读取原视频,将视频流临时写入到内存中;

4.转码主线程读取堆栈数据,从上而下按照顺序读取待转码视频数据;

5.分解视频流,分解为视频和音频;

6.根据读取到的待转化视频参数将视频流和音频流根据设定的参数重组;

7.将重组后的视频流和音频流合并为新的流媒体数据,压缩为实体物理文件;

8.将已经转化好的实例对象从堆栈中移除并读取下一个;

9.直到堆栈中再无数据,结束。

本申请的另一种典型的实施方式中,基于视频转码的多路输出系统,包括:

模块共包括可视化配置界面,视频转码主服务,核心视频压缩重组组件;

可视化配置界面:提供给用户选择界面;

视频转码主服务:读取界面选择参数,创建转码队列,调用视频压缩组件;

视频压缩重组组件:视频转码。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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