一种云视频编辑方法和系统的制作方法_3

文档序号:8475464阅读:来源:国知局
相应的定点着色器和片着色器对所述图形处理器进行在线编程。
[0102]本发明实施例中,优选地,所述移动客户端还包括:
[0103]视频存储模块,用于将渲染得到的图像数据存储在视频缓冲区中;
[0104]所述显示模块,具体用于从所述视频缓冲区调用渲染得到的图像数据,并调用显示模块将渲染得到的视频数据显示在所述移动设备的屏幕上。
[0105]本发明实施例中,优选地,所述参数发送模块,还用于在所述移动客户端将用户对所述视频数据的编辑参数传输到云端的视频编辑服务器的同时,将所述视频数据的属性信息传输到所述视频编辑服务器。
[0106]本发明实施例中,优选地,所述系统还包括视频存储服务器;
[0107]所述编辑处理模块包括:
[0108]视频读取子模块,用于所述视频编辑服务器读取备份在视频存储服务器中的所述视频数据;
[0109]视频编辑子模块,用于根据所述编辑参数对提取的视频数据进行解码、特效处理及编码操作。
[0110]本发明实施例将视频处理过程中的效果预览和生成最终视频两个环节分开,分别在移动设备和视频编辑服务器上执行,效果预览步骤在移动设备上利用图形处理器GPU上完成,在此步骤上并不需要进行计算量极大的转码工作,而只是将处理效果展示给用户;而在最终的视频分享环节,只需要移动客户端将用户最终确认好的编辑参数上传到云端服务器,由云端服务器完成后续的处理及转码操作,并完成用户分享发布任务。
[0111]由于本方案不需要客户端在用户每次更改特效时,将云端生成的视频下载到本地进行预览,所以可以显著的节约网络带宽,极大降低了云视频编辑对带宽的消耗,该方案在2G/3G等网络环境下依然行之有效,可以解决用户在2G/3G网络环境下,无法实时预览效果的问题,改善了用户体验;同时,由于云端服务器不需要在反复进行视频渲染和转码等工作,极大降低了云端服务器的负载。综合这两个有点,采用本发明实施例可显著降低提供云视频编辑服务的成本。
[0112]为使本领域技术人员更好地理解本发明实施例,以下通过一个具体的示例对本发明实施例所述的云视频编辑方案进行说明。
[0113]参考图3,示出了传统方案的系统框图。
[0114]根据用户操作编辑视频的过程包括:用户将需要编辑的视频上传到云端的视频编辑服务器,视频编辑服务器将接收到的视频数据保存到视频存储服务器,并对视频数据依次进行视频解码、视频特效处理和视频编码的三个处理环节,进一步将处理好的视频数据下发给移动设备,移动客户端对处理过的视频数据采用硬件解码器进行解码,并发送到显示屏进行显示,或是进行进一步的分享发布。
[0115]若用户不满意编辑效果,则需要云端服务器每次需要重新进行编辑转码,移动设备端上的客户端则需要每次下载播放生成的高码率视频,对网络带宽的占用非常可观,当用户处于2G/3G等低网速环境时,则无法实时的预览编辑效果。
[0116]通过图3所示的传统方案的系统架构图可以看出,目前,云端视频编辑的瓶颈在于用户反复调整编辑参数并预览效果时,需要占用大量的带宽资源;由于为了满足用户的游戏需求,移动设备上通常具有计算能力较强的GPU,用于实时渲染。基于这两点考虑,本方案创新提出将效果预览和生成最终视频两个步骤分散在两个设备上进行,以减轻对带宽的占用和减轻云端服务器的负载。
[0117]参考图4,示出了本发明实施例的一个示例中云视频编辑方案的系统架构图,整个解决方案需要移动客户端与远端服务器的紧密配合。
[0118]移动客户端app负责接收用户的操作,然后调用移动设备上的硬件编码器对本地的视频进行解码,并将解码后的图像数据传送到GPU。利用OPENGL ES 2.0编程接口,根据用户不同的编辑操作调用相应的定点着色器(vertex shader)和片着色器(fragmentshader),对GPU进行在线编程,实现对视频数据的实时渲染。GPU完成渲染后,将处理过的图像数据存储在视频缓冲区中,然后由显示模块负责显示在设备屏幕上。在此过程中,用户可以尝试不同编辑效果,直至满意为止。
[0119]由于GPU是专门处理图像的硬件设备,有相应的图像缩放、旋转等模块,能够对1080P甚至4K的视频进行实时的渲染(30-120fps)。
[0120]在用户完成编辑效果的尝试后,在“分享发布”环节,客户端将用户对本地视频的编辑参数及需要编辑视频的信息传输到云端的编辑服务器,编辑服务器会读取已备份到存储服务器中的视频,根据编辑参数,对视频进行解码、特效处理及编码操作,并最终将生成的新视频文件发布在网络上。
[0121]由于本方案不需要客户端在用户每次更改特效时,将云端生成的视频下载到本地进行预览,所以可以显著的节约网络带宽。同时,由于云端服务器不需要在反复进行视频渲染和转码等工作,极大降低了云端服务器的负载。以上两点,可显著降低提供云视频编辑服务的成本。
[0122]对于上述云视频编辑系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1所示方法实施例的部分说明即可。
[0123]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0124]本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
[0125]本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0126]本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0127]在本发明中,“组件”、“装置”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,组件可以、但不限于是运行于处理器的过程、处理器、对象、可执行组件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是组件。一个或多个组件可在执行的过程和/或线程中,并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。组件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一组件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
[0128]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0129]而且,上文中的“和/或”表示本文既包含了 “和”的关系,也包含了 “或”的关
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1