CN105933724A - 视频制作方法、装置及系统 - Google Patents
视频制作方法、装置及系统 Download PDFInfo
- Publication number
- CN105933724A CN105933724A CN201610344295.3A CN201610344295A CN105933724A CN 105933724 A CN105933724 A CN 105933724A CN 201610344295 A CN201610344295 A CN 201610344295A CN 105933724 A CN105933724 A CN 105933724A
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- gpu
- rendering
- screen
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000009877 rendering Methods 0.000 claims abstract description 103
- 238000004519 manufacturing process Methods 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims abstract description 29
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000015572 biosynthetic process Effects 0.000 claims description 7
- 238000003786 synthesis reaction Methods 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 4
- 239000000463 material Substances 0.000 description 10
- 238000009432 framing Methods 0.000 description 8
- 239000000203 mixture Substances 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 3
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 2
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000686 essence Substances 0.000 description 2
- 230000035807 sensation Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明属于视频制作技术领域,具体涉及一种视频制作方法、装置及系统。本发明的视频制作方法包括以下步骤:读取配置文件,获取并加载制作视频的资源;启动渲染引擎,初始化硬件编解码环境和OpenGL离屏渲染环境;进行逐帧离屏渲染,生成裸视频流。通过采用离屏渲染技术,使得视频制作可以以后台任务的形式运行,不受屏幕分辨率的限制;通过基于解码时间的逐帧渲染,保证了输出视频的音视频同步和动画的流畅性;另外,通过对支持硬件解码的视频采用硬件解码以及对离屏渲染好的内容进行硬件截屏,充分利用硬件资源,降低了视频制作过程中CPU占用率,提高了处理效率。
Description
技术领域
本发明属于视频制作技术领域,具体涉及一种视频制作方法、装置及系统。
背景技术
视频制作是将图片、视频及背景音乐进行重新剪辑、整合、编排,从而生成一个新的视频文件的过程,不仅是对原素材的合成,也是对原有素材的再加工。现阶段视频制作技术已经得到广泛的应用,无论在生活中还是网络上,经常可以看到将照片和视频制作成的各种精美视频。视频制作软件也层出不穷,除了可以在电脑上使用的视频制作软件,还可以在移动端使用的视频制作软件。另一方面,除了在电脑和移动端利用本机的硬件资源进行视频制作外,在C/S(客户端/服务端)或B/S(浏览器/服务端)架构中的服务器端进行视频制作和合成的需求也日益迫切。在服务器端进行制作视频,比在客户端进行制作,需要更加高效的进行合成以支持更多的合成任务。
现有的视频制作软件,大多使用软件编解码的方式,通过CPU对视频进行编解码处理,这种方式导致CPU占用率高,编码效率低,处理速度缓慢。另外,支持硬件编解码的软件,需要通过专用的设备(子卡)单独完成视频编解码,比如VCD/DVD解压卡、视频压缩卡等等,这类专用设备大多价格高昂,并且不支持命令式操作和离屏渲染。
发明内容
本发明的目的之一在于克服以上缺点,降低视频制作时候的CPU使用率,提高视频制作效率,同时使得视频制作不受屏幕分辨率的限制。
为了解决上述技术问题,本发明提供了一种视频制作方法,包括以下步骤:
读取配置文件,获取并加载制作视频的资源;
启动渲染引擎,初始化硬件编解码环境和OpenGL离屏渲染环境;
进行逐帧离屏渲染,生成裸视频流。
本发明的技术方案,通过采用离屏渲染技术,使得视频制作可以以后台任务的形式运行;同时使得视频制作不受屏幕分辨率的限制,即使不接显示器也可制作。
进一步地,所述的视频制作方法,还包括步骤:
将裸视频流和音频流进行叠加得到最终的视频文件。
进一步地,所述制作视频的资源包括下列两种或两种以上的组合:初始视频、音频、图片或字幕。
进一步地,所述逐帧离屏渲染,包括以下步骤:
生成当前视频帧的时间戳;
清空OpenGL渲染内容;
将制作视频的资源渲染到OpenGL;
在GPU中将离屏渲染好的内容复制到进行硬件编码的纹理中;
使用GPU进行硬件编码;
将硬件编码后的内容写入裸视频流。
首先,通过基于解码时间的逐帧渲染,使得视频、动画、音频能够以共同的时间基准进行渲染,保证了输出视频的音视频同步和动画的流畅性;同时,通过将离屏渲染好的内容进行硬件截屏,避免了软件截屏的方式将待编码的数据需要从GPU拷贝到CPU导致CPU占用率升高的问题。
进一步地,所述将制作视频的资源渲染到OpenGL,包括以下步骤:
视频内容渲染;
图片渲染,根据配置文件中动画的时间,将图片上传为GPU纹理,并进行渲染和动画操作;
字幕渲染,通过图形引擎将文字转换为图片,根据节目时间将图片上传为GPU纹理并进行渲染。
进一步地,所述视频内容渲染,包括以下步骤:
读取视频文件;
判断视频已播放总时间是否到达当前视频帧的时间戳;
若视频已播放总时间到达当前视频帧的时间戳,则进一步判断GPU中是否有未解码的视频帧,若有,进一步判断视频文件是否支持硬件解码,若视频文件支持硬件解码,则将视频帧GPU解码成GPU中YUV纹理,并将GPU中YUV纹理转换为GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若视频文件不支持硬件解码,则将视频帧CPU解码得到视频图像,并将图像上传成GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若GPU中没有未解码的视频帧,进一步判断GPU中是否有RGB纹理,若有,则渲染上一帧RGB纹理到OpenGL离屏显示;若没有,则不进行操作;
若视频已播放总时间未到达当前视频帧的时间戳,则不进行处理。
本技术方案,通过对支持硬件解码的视频,采用硬件解码,充分利用硬件资源,降低了视频制作过程中视频解码的CPU占用率,提高了解码处理效率,以适应后台任务的形式。
相应地,本发明还提供了一种视频制作装置,包括:
加载模块,用于读取配置文件,获取并加载制作视频的资源;
初始化模块,用于启动渲染引擎,初始化硬件编解码环境和OpenGL离屏渲染环境;
渲染模块,用于进行逐帧离屏渲染,生成裸视频流。
进一步地,所述的视频制作装置,还包括:
合并模块,用于将裸视频流和音频流进行叠加得到最终的视频文件。
进一步地,所述渲染模块,包括:
第一渲染单元,用于生成当前视频帧的时间戳;
第二渲染单元,用于清空OpenGL渲染内容;
第三渲染单元,用于将制作视频的资源渲染到OpenGL;
第四渲染单元,用于在GPU中将离屏渲染好的内容复制到进行硬件编码的纹理中;
第五渲染单元,用于使用GPU进行硬件编码;
第六渲染单元,用于将硬件编码后的内容写入裸视频流。
进一步地,所述第三渲染单元,包括:
视频渲染子单元,用于视频内容渲染;
图片渲染子单元,用于图片渲染,根据配置文件中动画的时间,将图片上传为GPU纹理,并进行渲染和动画操作;
字幕渲染子单元,用于字幕渲染,通过图形引擎将文字转换为图片,根据节目时间将图片上传为GPU纹理并进行渲染。
进一步地,所述视频渲染子单元,包括:
第一视频渲染构件,用于读取视频文件;
第二视频渲染构件,用于判断视频已播放总时间是否到达当前视频帧的时间戳;
第三视频渲染构件,用于若视频已播放总时间到达当前视频帧的时间戳,则进一步判断GPU中是否有未解码的视频帧,若有,进一步判断视频文件是否支持硬件解码,若视频文件支持硬件解码,则将视频帧GPU解码成GPU中YUV纹理,并将GPU中YUV纹理转换为GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若视频文件不支持硬件解码,则将视频帧CPU解码得到视频图像,并将图像上传成GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若GPU中没有未解码的视频帧,进一步判断GPU中是否有RGB纹理,若有,则渲染上一帧RGB纹理到OpenGL离屏显示;若没有,则不进行操作;
第四视频渲染构件,用于若视频已播放总时间未到达当前视频帧的时间戳,则不进行处理。
相应地,本发明还提供了一种视频制作系统,包括客户端和服务端,所述服务端和客户端通过网络连接,所述客户端用于采集视频资源,所述服务端用于对客户端采集的视频进行合成处理。
采用服务端进行视频合成处理的方式,不仅方便了视频处理软件的管理部署,还减轻了客户端的运行负载。
综上所述,本发明技术方案的有益效果有:
1.通过采用离屏渲染技术,使得视频制作可以以后台任务的形式运行;同时使得视频制作不受屏幕分辨率的限制,即使不接显示器也可制作。
2.通过基于解码时间的逐帧渲染,使得视频、动画、音频能够以共同的时间基准进行渲染,保证了输出视频的音视频同步和动画的流畅性。
3.本技术方案,通过对支持硬件解码的视频,采用硬件解码,充分利用硬件资源,降低了视频制作过程中视频解码的CPU占用率,提高了解码处理效率,以适应后台任务的形式。
4.通过将离屏渲染好的内容进行硬件截屏,避免了软件截屏的方式将待编码的数据需要从GPU拷贝到CPU导致CPU占用率升高的问题。
附图说明
图1是本发明实施例的一种视频制作方法步骤流程图。
图2是本发明实施例的离屏逐帧渲染视频步骤流程图。
图3是本发明实施例的一种将内容渲染到OpenGL步骤流程图。
图4是本发明实施例的一种视频内容渲染步骤流程图。
图5是本发明实施例的一种视频制作装置结构框架图。
图6是本发明实施例的一种渲染模块结构框架图。
图7是本发明实施例的一种第三渲染单元结构框架图。
图8是本发明实施例的一种视频渲染子单元结构框架图。
图9是本发明实施例的一种视频制作系统结构框架图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1,是本发明实施例的一种视频制作方法步骤流程图,包括以下步骤:
步骤10.读取配置文件,获取制作视频需要的资源;
所述制作视频的资源包括下列两种或两种以上的组合:初始视频、音频、图片或字幕。其中,初始视频文件可以是通过采集设备采集的原始文件,也可以是其他视频编辑软件生成的视频文件;音频数据文件,包含初始视频文件中的声音或音乐,还可以是另一段独立的音频数据;无伴音的动画文件;静态图像文件;在做电视节目、新闻或者采访的片段中,还可能包括字幕文件,以更明确的表示画面的内容,使人物说话的内容更加清晰。所述制作视频的资源可以包括以上全部的四种文件,还可以是其中两种或三种文件的组合,例如制作视频的资源可以只包括初始视频和音频,或只包括初始视频和字幕等。
通过读取配置文件信息,确定需要制作的视频由哪些素材文件组成,以及这些素材各自存放的物理路径地址,如果资源获取不到,则退出制作程序。
步骤11.加载制作视频的各类资源;
通常为了提高视频处理的速度,都是将制作视频的各类素材加载到计算机内存中,同时加载过程中,也会对各类素材进行基本的校验,例如,判断视频资源是否完整,判断音频文件是否完整,如果资源加载出错,则退出制作程序。
步骤12.启动渲染引擎,初始化硬件编解码环境和OpenGL离屏渲染;
通常视频制作需要包括解码,渲染,编码步骤,其中解码是指对视频文件的解压缩,渲染是指将解码器还原出来的视频流以及其他素材组合后正确地“画”在屏幕上,编码是指将组合好的视频重新压缩成指定的文件格式。
OpenGL(Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口,它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库。OpenGL中,GPU屏幕渲染有以下两种方式:一、当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行,渲染的结果直接在屏幕上显示;二、离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作,这种渲染结果不在屏幕上显示。本发明的技术方案,通过采用OpenGL离屏渲染技术,使得视频制作可以以后台任务的形式运行;同时使得视频制作不受屏幕分辨率的限制,即使不接显示器也可制作。
初始化硬件编解码环境和OpenGL离屏渲染主要包括:初始化X11(类UNIX操作系统的窗口系统)显示设备、初始化vaapi(Video Acceleration API)、初始化EGL(OpenGL和具体平台实现的接口层)、和使用EGL接口初始化OpenGL离屏渲染。
步骤13.离屏逐帧渲染视频;
众所周知,视频文件就是利用人类视觉暂留的原理通过播放一系列的图片,使人眼产生运动的感觉,其中每一幅静止的图片,我们称之为视频帧。为了能使动画,字幕,图像等素材与视频文件相结合,就必须对整个视频文件进行逐帧的渲染操作,将特定时间点所需的动画特效,字幕,图像同时输出到视频帧的屏幕画布上,这样才能达到相应的显示效果。
步骤14.如果初始视频文件的播放时间结束,则退出渲染;反之则重复步骤13,得到裸视频流;
按照初始视频文件的播放时间顺序对每个视频帧图像进行渲染,直至视频文件包含的所有图像帧全部渲染完成。
在其他的一些实施例中,还可以包括以下步骤15:
步骤15.将编码后的裸视频流和音频数据进行合成,得到最终视频。
通过上述步骤14,即可得到裸视频。由于对视频帧,动画内容,静态图像以及字幕等素材的渲染结果都是针对显示内容的,视频的声音并不包含在内,通常称为裸视频文件,所以还必须将音频文件和裸视频文件进行合并,得到最终的视频文件。
如图2,是本发明步骤13离屏逐帧渲染视频步骤流程图,包括:
步骤131.生成当前视频帧的时间戳。
FPS是图像领域中的定义,是指视频每秒显示的图像帧数,每秒钟帧数愈多,所显示的动作就会愈流畅。通常一段视频的每秒帧数是固定的,其中,视频的每秒帧数取值可以是23.97,25等。本技术方案中的实施例中,我们需要先获取所有待处理视频中的最大帧率max_fps(即取视频每秒帧数的最大值),并通过公式n/max_fps计算当前视频帧的时间戳,再通过当前视频帧的时间戳为基准时间来处理视频渲染操作。(公式中,n为帧数序列号,取值为0,1,2……,max_fps;例如,在一视频文件中,帧率为25,某一帧在视频中的序列号为4,则n取值为4,则该视频帧显示结束时,当前视频帧的时间戳为4/25=0.16s。)本发明该步骤的优点,基于解码的时间来计算当前视频帧的时间戳,使得渲染引擎最大限度保持原始视频帧率,保持原有视频的连贯性,否则需要通过图像插值来保持,效率较低。
步骤132.清空OpenGL渲染内容。将OpenGL渲染缓冲区中的内容清空。
步骤133.将初始视频文件的内容,以及相关的素材渲染到OpenGL渲染缓冲区。
步骤134.将离屏渲染好的内容从GPU中复制到进行硬件编码的纹理中。
传统的做法都是将离屏渲染好的内容从GPU拷贝到内存中,再在内存中利用CPU做颜色空间RGB到YUV的转换,再复制到硬件编码的纹理中。其中,将GPU显存内容到内存的拷贝需要占用CPU,颜色空间RGB到YUV的转换更占用CPU,从而使得CPU占用率很高,在视频文件为高清视频的时候,CPU占用率可能达到100%。本发明的实施例中,通过将离屏渲染好的内容从GPU中复制到进行硬件编码的纹理中,可使得视频制作CPU占用率降低至20%。
步骤135.通过vaapi库使用GPU进行硬件编码。
通过GPU硬件编码的方式,采用特定的压缩技术(例如,H.264编码方式或MPEG-4编码方式等),将视频格式的文件转换成另一种视频格式文件。例如,在一具体的实施例中,可采用MPEG-4编码方式进行视频编码;另一具体实施例中,可采用H.264编码方式进行视频编码。
步骤136.通过vaapi库将硬件编码后的内容写入视频文件中。
将编码好的视频帧图像,按照播放的时间顺序写到视频文件中,从而形成一系列动态的图片序列。
如图3,是本发明实施例的一种将内容渲染到OpenGL步骤流程图,包括:
1)视频内容渲染;
如图4,是本发明实施例的一种视频内容渲染步骤流程图,包括:
步骤1331.读取视频文件;
在本发明实施例中,采用FFmpeg读取视频文件。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
步骤1332.判断视频已播放总时间是否到达当前视频帧的时间戳;当需要处理的视频为两个以上时,以帧率最大的视频的视频帧时间戳为准;
若视频已播放总时间未到达当前视频帧的时间戳,则不进行处理;
若视频已播放总时间到达当前视频帧的时间戳,则进一步判断GPU中是否有未解码的视频帧,若有,则对接收的未解码的视频帧依次进行解码、渲染处理;若无,则进入步骤1336;
所述视频已播放总时间为视频从开始播放后,共进行播放的时间。所述视频帧的时间戳是根据帧率计算得到的数值。例如,若一视频的帧率为25fps,则第一视频帧的时间戳为1/25=0.04s;第二视频帧的时间戳为2/25=0.08s;依次类推,该视频的时间戳依次为0.04s、0.08s、0.12s……的递增数列。
视频帧的时间戳根据每个视频文件的帧率确定的,在视频编码时就已经确定的,通过解码视频文件可以获得到该视频帧的时间戳;当需要处理的视频为两个以上时,本发明以帧率最大的视频的视频帧时间戳为准。
当只有一个需要进行渲染的视频文件的时候,视频已播放总时间每到达一次视频帧的时间戳,均对视频帧进行相应处理(包括解码处理,渲染处理)一次。例如,视频文件的帧率为25帧,则第一帧视频帧的时间戳为1/25=0.04s,第二帧视频帧的时间戳为2/25=0.08s...依此类推。本发明的技术方案在视频已播放总时间为0.04s时,判断第一帧视频的时间戳(0.04s)已经到达,则开始对第一帧视频进行处理;同理,在视频已播放总时间为0.08s开始对第二帧进行处理,在视频已播放总时间0.12s开始对第三帧进行处理...依此类推。
在某些特殊的应用场景中,存在需要对多路视频进行渲染的情况,而视频的帧率可能存在不一致的情况,这时候就需要取最大的帧率值计算视频帧时间戳,例如,在有两个视频文件需要同时渲染的实施例中,视频1帧率是25fps,则视频1的第一帧视频帧时间戳为1/25=0.04s,第二帧视频时间戳为2/25=0.08s,第三帧视频时间戳为3/25=0.12s...依此类推;视频2帧率是30fps,则视频2的第一帧视频时间戳为1/30=0.033s,第二帧视频时间戳为2/30=0.066s,第三帧视频时间戳为3/30=0.1s...依此类推。取视频1和视频2的最大帧率30fps来计算视频帧时间戳,当视频已播放总时间为0.033s时,此时判断视频1第一帧视频的时间戳(0.04s)尚未达到,则不进行处理,而视频2的第一帧视频的时间戳(0.033s)已经达到,则进行视频2第一帧视频的后续处理;当视频已播放总时间为0.066s,此时判断视频1的第一帧视频的时间戳(0.04s)已经达到,即视频1中存在未解码的视频帧,则处理视频1的第一帧,同时判断视频2的第二帧视频的时间戳(0.066s)已经达到,则处理视频2的第二帧视频;当视频已播放总时间为0.1s,此时判断视频1的第二帧视频的时间戳(0.08s)已经达到,视频1中存在未解码的视频帧,则处理视频1的第二帧;判断视频2的第三帧视频的时间戳(0.1s)已经达到,则处理视频2的第三帧...依此类推。
步骤1333.判断视频文件是否支持硬件解码,如果支持硬件解码,则跳转到步骤1334;如果支持不硬件解码,则跳转到步骤1335;
本发明主要面向的是支持硬件解码的高清视频。对于支持硬件解码的视频文件,采用硬件解码,从而降低CPU占用,以适应后台任务的形式。在实际的实施例中,CPU的占用率可以由100%降至5%;对于不支持硬件解码的视频文件(如MPEG1),为保证兼容性的需要,本发明采用软件解码方式进行处理,由于通常这类视频分辨率不高,此时CPU占用率也并不高。
步骤1334.对于支持硬件解码的视频,则使用FFmpeg和vaapi(Video Acceleration API)库进行GPU解码成GPU中YUV纹理,并将GPU中YUV纹理转换为GPU中RGB纹理。
上述的RGB和YUV都是人为规定的彩色模型或颜色空间,它的用途是在某些标准下用通常可接受的方式对彩色加以说明,其中,RGB(红绿蓝)是依据人眼识别的颜色定义出的空间,可表示大部分颜色,而在YUV空间中,每一个颜色有一个亮度信号Y,和两个色度信号U和V。亮度信号是强度的感觉,它和色度信号断开,这样强度就可以在不影响颜色的情况下改变。RGB和YUV可以相互进行转换。
本发明的实施例中,通过在支持GPU硬件编解码功能的Intel CPU上,采用GPU硬件对视频文件进行解码,充分利用硬件资源,降低了视频制作过程中视频解码的CPU占用率,并且在相同时间内可以解码更多帧视频,从而加快视频制作过程。
GPU硬件解码完成后,渲染RGB纹理到OpenGL离屏显示。具体的操作如下:创建纹理显示的着色语言(shader),包括顶点着色器(vertex shader)和片段着色器(fragment shader),将视频纹理与之绑定,执行着色语言将纹理渲染到缓冲区,缓冲区的内容即为离屏显示的结果,执行完成后销毁着色语言。
步骤1335.对于不支持硬件解码的视频,则使用FFmpeg进行CPU解码得到视频图像,并将图像上传成GPU中RGB纹理;
步骤1336.若视频已播放总时间到达当前视频帧的时间戳,其GPU中无未解码的视频帧,进一步判断GPU中是否有RGB纹理,若有,则渲染上一帧RGB纹理到OpenGL离屏显示;若没有,则不进行操作。
2)图片渲染,根据配置文件中动画所在视频中的时间点,将图片上传为GPU纹理,并进行渲染和动画操作;所述动画操作可以是对图片的缩放操作、旋转操作、加速操作等等。
3)字幕渲染,由于文字无法直接显示在屏幕上,所以必须通过图形引擎将文字转换为图片格式,再根据字幕需要显示的节目时间将图片上传为GPU纹理并进行渲染。
下面以一具体实施例详细说明本发明的视频制作方法。
本实施例中,制作视频的资源包括初始视频文件、图片、音频和字幕。所述初始视频文件为用户在KTV中唱歌时电视播放的歌曲MTV,图片为用户移动终端中的照片,音频为用户所唱歌曲的湿声(通过音效器将麦克风录制的干声和歌曲合成后的声音),所述字幕为用户所唱歌曲的歌词。将上述初始视频文件、图片、音频和字幕进行制作视频的具体过程为:
步骤11.加载制作视频的四类资源:用户在KTV中唱歌时电视播放的歌曲MTV、用户移动终端中的照片、用户所唱歌曲的湿声和用户所唱歌曲的字幕;
判断视频资源、音频文件是否完整,如果资源加载出错,则退出制作程序;若完整则进入步骤12;
步骤12.启动渲染引擎,初始化硬件编解码环境和OpenGL离屏渲染;
步骤13.离屏逐帧渲染视频,具体包括以下步骤;
步骤131.生成当前视频帧的时间戳。
首先获取所有待处理视频中的最大帧率max_fps(本实施例中,只有一个视频文件,即为视频的帧率,通常为29.97),并通过公式n/max_fps计算当前视频帧的时间戳。(n为帧数序列号,取值为0,1,2……;例如,某一帧在视频中的序列号为4,则n取值为4。)
步骤132.清空OpenGL渲染内容。
步骤133.将初始视频文件的内容,以及图片和字幕渲染到OpenGL渲染缓冲区,包括以下步骤:
1)视频内容渲染;
步骤1331.读取视频文件;在本发明实施例中,采用FFmpeg读取视频文件。
步骤1332.判断视频已播放总时间是否到达当前视频帧的时间戳,如果视频已播放总时间未到达当前视频帧的时间戳,则不处理;若视频已播放总时间到达当前视频帧的时间戳,则进一步判断GPU中是否有未解码的视频帧,若有,则执行步骤1333;若无,则进入步骤1336;
步骤1333.进一步判断视频文件是否支持硬件解码,由于本实施例中的初始视频文件支持硬件解码,则跳转到步骤1334;本发明主要面向的是支持硬件解码的高清视频。对于支持硬件解码的视频文件,采用硬件解码,从而降低CPU占用,以适应后台任务的形式。在实际的实施例中,CPU的占用率可以由100%降至5%;对于不支持硬件解码的视频文件(如MPEG1),为保证兼容性的需要,本发明采用软件解码方式进行处理,由于通常这类视频分辨率不高,此时CPU占用率也并不高。
步骤1334.使用FFmpeg和vaapi(Video Acceleration API)库将初始视频文件进行GPU解码成GPU中YUV纹理,并将GPU中YUV纹理转换为GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示。
本实施例中,通过在支持GPU硬件编解码功能的Intel CPU上,采用GPU硬件对视频文件进行解码,充分利用硬件资源,降低了视频制作过程中视频解码的CPU占用率,并且在相同时间内可以解码更多帧视频,从而加快视频制作过程。
GPU硬件解码完成后,渲染RGB纹理到OpenGL离屏显示。具体操作如下:创建纹理显示的着色语言(shader),包括顶点着色器(vertex shader)和片段着色器(fragment shader),将视频纹理与之绑定,执行着色语言将纹理渲染到缓冲区,缓冲区的内容即为离屏显示的结果,执行完成后销毁着色语言。
步骤1335.对于不支持硬件解码的视频,则使用FFmpeg进行CPU解码得到视频图像,并将图像上传成GPU中RGB纹理;
步骤1336.若视频已播放总时间到达当前视频帧的时间戳,其GPU中无未解码的视频帧,进一步判断GPU中是否有RGB纹理,若有,则渲染上一帧RGB纹理到OpenGL离屏显示;若没有,则不进行操作。
2)照片渲染,根据配置文件中动画所在视频中的时间点,将图片上传为GPU纹理,并进行渲染和动画操作;所述动画操作可以是对图片的缩放操作、旋转操作、加速操作等等。本实施例中照片透明叠加在视频上方。
3)歌词字幕渲染,由于文字无法直接显示在屏幕上,所以必须通过图形引擎将文字转换为图片格式,再根据字幕需要显示的节目时间将图片上传为GPU纹理并进行渲染。本实施例中字幕在照片之后渲染,并显示在视频和照片的上方。
步骤134.将离屏渲染好的内容从GPU中复制到进行硬件编码的纹理中。
传统的做法都是将离屏渲染好的内容从GPU拷贝到内存中,再在内存中利用CPU做颜色空间RGB到YUV的转换,再复制到硬件编码的纹理中。将GPU显存内容到内存的拷贝需要占用CPU,颜色空间RGB到YUV的转换更占用CPU,从而使得CPU占用率很高,在视频文件为高清视频的时候,CPU占用率可能达到100%。本发明的实施例中,通过将离屏渲染好的内容从GPU中复制到进行硬件编码的纹理中,可使得视频制作CPU占用率降低至20%。
步骤135.通过vaapi库使用GPU进行硬件编码。
通过GPU硬件编码的方式,采用特定的压缩技术(例如,H.264编码方式或MPEG-4编码方式等),将视频格式的文件转换成另一种视频格式文件。例如,在一具体的实施例中,可采用MPEG-4编码方式进行视频编码;另一具体实施例中,可采用H.264编码方式进行视频编码。
步骤136.通过vaapi库将硬件编码后的内容写入视频文件中。
将编码好的视频帧图像,按照播放的时间顺序写到视频文件中,从而形成一系列动态的图片序列。
步骤14.如果初始视频文件的播放时间结束,则退出渲染;反之则重复步骤13。
按照初始视频文件的播放时间顺序对每个视频帧图像进行渲染,直至视频文件包含的所有图像帧全部渲染完成,得到裸视频流,这里的裸视频流包括用户演唱视频、用户上传的照片和歌曲字幕。
步骤15.将编码后的裸视频流和音频数据进行合成,得到最终视频。
如图5,是本发明实施例的一种视频制作装置结构框架图,包括:
加载模块,用于读取配置文件,获取并加载制作视频的资源;
初始化模块,用于启动渲染引擎,初始化硬件编解码环境和OpenGL离屏渲染环境;
渲染模块,用于进行逐帧离屏渲染,生成裸视频流;
合并模块,用于将裸视频流和音频流进行叠加得到最终的视频文件。
如图6,是本发明实施例的一种渲染模块结构框架图,包括:
第一渲染单元,用于生成当前视频帧的时间戳;
第二渲染单元,用于清空OpenGL渲染内容;
第三渲染单元,用于将制作视频的资源渲染到OpenGL;
第四渲染单元,用于在GPU中将离屏渲染好的内容复制到进行硬件编码的纹理中;
第五渲染单元,用于使用GPU进行硬件编码;
第六渲染单元,用于将硬件编码后的内容写入裸视频流。
如图7,是本发明实施例的一种第三渲染单元结构框架图,包括:
视频渲染子单元,用于视频内容渲染;
图片渲染子单元,用于图片渲染,根据配置文件中动画的时间,将图片上传为GPU纹理,并进行渲染和动画操作;
字幕渲染子单元,用于字幕渲染,通过图形引擎将文字转换为图片,根据节目时间将图片上传为GPU纹理并进行渲染。
如图8,是本发明实施例的一种视频渲染子单元结构框架图,包括:
第一视频渲染构件,用于读取视频文件;
第二视频渲染构件,用于判断视频已播放总时间是否到达当前视频帧的时间戳;
第三视频渲染构件,用于若视频已播放总时间到达当前视频帧的时间戳,则进一步判断GPU中是否有未解码的视频帧,若有,进一步判断视频文件是否支持硬件解码,若视频文件支持硬件解码,则将视频帧GPU解码成GPU中YUV纹理,并将GPU中YUV纹理转换为GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若视频文件不支持硬件解码,则将视频帧CPU解码得到视频图像,并将图像上传成GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若GPU中没有未解码的视频帧,进一步判断GPU中是否有RGB纹理,若有,则渲染上一帧RGB纹理到OpenGL离屏显示;若没有,则不进行操作;
第四视频渲染构件,用于若视频已播放总时间未到达当前视频帧的时间戳,则不进行处理。
如图9,是本发明实施例的一种视频制作系统结构框架图,包括客户端和服务端,服务端和客户端通过网络连接。
客户端用于采集视频资源并将视频发送给服务端,客户端可以是配有摄像头的电脑设备,也可以是具有视频采集功能的移动终端,如手机、平板、智能手表,当然,还可以是专业的录像摄像设备,如安防监控摄像头,KTV录像机。
服务端用于对客户端采集的视频进行合成处理,在一具体的实施例中,一个服务端可对应一个客户端,专门负责对该客户端采集发送的视频进行制作,通常这种情况下对服务器的要求不高,服务器可以由移动终端设备,电脑设备或小型服务器来担任。
在另一优选的实施例中,一个服务端可对应多个客户端,服务端负责对多个客户端采集发送的视频进行后期制作,这种情况下,服务器通常由大型服务器来担任。例如,在一个KTV场所内,只需设置一台录像服务器,通过离屏的视频合成技术,可对该场所内所有包厢采集的视频进行合成处理;又如,在小区安防监控控制中心设置一台视频制作服务器,可对小区所有的监控摄像头采集的视频文件进行合成处理。通过这种一对多的方式,可以减少视频制作服务器的硬件投资,提高硬件的使用率,同时,只需要部署一套的视频制作环境,简化了部署维护工作。
上述具体实施方式只是对本发明的技术方案进行详细解释,本发明并不只仅仅局限于上述实施例,凡是依据本发明原理的任何改进或替换,均应在本发明的保护范围之内。
Claims (12)
1.一种视频制作方法,其特征在于,包括以下步骤:
读取配置文件,获取并加载制作视频的资源;
启动渲染引擎,初始化硬件编解码环境和OpenGL离屏渲染环境;
进行逐帧离屏渲染,生成裸视频流。
2.如权利要求1所述的视频制作方法,其特征在于,还包括步骤:
将裸视频流和音频流进行叠加得到最终的视频文件。
3.如权利要求2所述的视频制作方法,其特征在于,所述制作视频的资源包括下列两种或两种以上的组合:初始视频、音频、图片或字幕。
4.如权利要求1或2所述的视频制作方法,其特征在于,所述逐帧离屏渲染,包括以下步骤:
生成当前视频帧的时间戳;
清空OpenGL渲染内容;
将制作视频的资源渲染到OpenGL;
在GPU中将离屏渲染好的内容复制到进行硬件编码的纹理中;
使用GPU进行硬件编码;
将硬件编码后的内容写入裸视频流。
5.如权利要求4所述的视频制作方法,其特征在于,所述将制作视频的资源渲染到OpenGL,包括以下步骤:
视频内容渲染;
图片渲染,根据配置文件中动画的时间,将图片上传为GPU纹理,并进行渲染和动画操作;
字幕渲染,通过图形引擎将文字转换为图片,根据节目时间将图片上传为GPU纹理并进行渲染。
6.如权利要求5所述的视频制作方法,其特征在于,所述视频内容渲染,包括以下步骤:
读取视频文件;
判断视频已播放总时间是否到达当前视频帧的时间戳;
若视频已播放总时间到达当前视频帧的时间戳,则进一步判断GPU中是否有未解码的视频帧,若有,进一步判断视频文件是否支持硬件解码,若视频文件支持硬件解码,则将视频帧GPU解码成GPU中YUV纹理,并将GPU中YUV纹理转换为GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若视频文件不支持硬件解码,则将视频帧CPU解码得到视频图像,并将图像上传成GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若GPU中没有未解码的视频帧,进一步判断GPU中是否有RGB纹理,若有,则渲染上一帧RGB纹理到OpenGL离屏显示;若没有,则不进行操作;
若视频已播放总时间未到达当前视频帧的时间戳,则不进行处理。
7.一种视频制作装置,其特征在于,包括:
加载模块,用于读取配置文件,获取并加载制作视频的资源;
初始化模块,用于启动渲染引擎,初始化硬件编解码环境和OpenGL离屏渲染环境;
渲染模块,用于进行逐帧离屏渲染,生成裸视频流。
8.如权利要求7所述的视频制作装置,其特征在于,还包括:
合并模块,用于将裸视频流和音频流进行叠加得到最终的视频文件。
9.如权利要求8所述的视频制作装置,其特征在于,所述渲染模块,包括:
第一渲染单元,用于生成当前视频帧的时间戳;
第二渲染单元,用于清空OpenGL渲染内容;
第三渲染单元,用于将制作视频的资源渲染到OpenGL;
第四渲染单元,用于在GPU中将离屏渲染好的内容复制到进行硬件编码的纹理中;
第五渲染单元,用于使用GPU进行硬件编码;
第六渲染单元,用于将硬件编码后的内容写入裸视频流。
10.如权利要求9所述的视频制作装置,其特征在于,所述第三渲染单元,包括:
视频渲染子单元,用于视频内容渲染;
图片渲染子单元,用于图片渲染,根据配置文件中动画的时间,将图片上传为GPU纹理,并进行渲染和动画操作;
字幕渲染子单元,用于字幕渲染,通过图形引擎将文字转换为图片,根据节目时间将图片上传为GPU纹理并进行渲染。
11.如权利要求10所述的视频制作装置,其特征在于,所述视频渲染子单元,包括:
第一视频渲染构件,用于读取视频文件;
第二视频渲染构件,用于判断视频已播放总时间是否到达当前视频帧的时间戳;
第三视频渲染构件,用于若视频已播放总时间到达当前视频帧的时间戳,则进一步判断GPU中是否有未解码的视频帧,若有,进一步判断视频文件是否支持硬件解码,若视频文件支持硬件解码,则将视频帧GPU解码成GPU中YUV纹理,并将GPU中YUV纹理转换为GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若视频文件不支持硬件解码,则将视频帧CPU解码得到视频图像,并将图像上传成GPU中RGB纹理,渲染当前帧RGB纹理到OpenGL离屏显示;若GPU中没有未解码的视频帧,进一步判断GPU中是否有RGB纹理,若有,则渲染上一帧RGB纹理到OpenGL离屏显示;若没有,则不进行操作;
第四视频渲染构件,用于若视频已播放总时间未到达当前视频帧的时间戳,则不进行处理。
12.一种视频制作系统,其特征在于,包括客户端和服务端,所述服务端和客户端通过网络连接,所述客户端用于采集视频资源,所述服务端用于对客户端采集的视频进行合成处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610344295.3A CN105933724A (zh) | 2016-05-23 | 2016-05-23 | 视频制作方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610344295.3A CN105933724A (zh) | 2016-05-23 | 2016-05-23 | 视频制作方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105933724A true CN105933724A (zh) | 2016-09-07 |
Family
ID=56840865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610344295.3A Pending CN105933724A (zh) | 2016-05-23 | 2016-05-23 | 视频制作方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105933724A (zh) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106331849A (zh) * | 2016-09-14 | 2017-01-11 | 北京金山安全软件有限公司 | 一种视频图像处理方法、装置及电子设备 |
CN106899875A (zh) * | 2017-02-06 | 2017-06-27 | 合网络技术(北京)有限公司 | 外挂字幕的显示控制方法及装置 |
CN107786876A (zh) * | 2017-09-21 | 2018-03-09 | 北京达佳互联信息技术有限公司 | 音乐和视频的同步方法、装置及移动终端 |
CN107886557A (zh) * | 2017-12-02 | 2018-04-06 | 天津大行道动漫文化发展有限公司 | 一种基于媒体流的动画生成系统 |
WO2018094814A1 (zh) * | 2016-11-28 | 2018-05-31 | 深圳Tcl数字技术有限公司 | 视频合成方法及装置 |
CN108495174A (zh) * | 2018-04-09 | 2018-09-04 | 深圳格莱珉文化传播有限公司 | 一种h5页面效果生成视频文件的方法及系统 |
CN108632540A (zh) * | 2017-03-23 | 2018-10-09 | 北京小唱科技有限公司 | 视频处理方法和装置 |
CN109168068A (zh) * | 2018-08-23 | 2019-01-08 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN109218802A (zh) * | 2018-08-23 | 2019-01-15 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN109327727A (zh) * | 2018-11-20 | 2019-02-12 | 网宿科技股份有限公司 | 一种WebRTC中的直播流处理方法及推流客户端 |
CN109379628A (zh) * | 2018-11-27 | 2019-02-22 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN109587555A (zh) * | 2018-11-27 | 2019-04-05 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及存储介质 |
CN109600650A (zh) * | 2018-08-01 | 2019-04-09 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
CN109788325A (zh) * | 2018-12-28 | 2019-05-21 | 网宿科技股份有限公司 | 视频任务分配方法及服务器 |
CN110022452A (zh) * | 2019-05-16 | 2019-07-16 | 深圳市芯动电子科技有限公司 | 一种适于全息显示装置的视频抽帧方法及系统 |
CN110147512A (zh) * | 2019-05-16 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 播放器预加载、运行方法、装置、设备及介质 |
CN110620954A (zh) * | 2018-06-20 | 2019-12-27 | 北京优酷科技有限公司 | 用于硬解的视频处理方法和装置 |
CN110930480A (zh) * | 2019-11-30 | 2020-03-27 | 航天科技控股集团股份有限公司 | 液晶仪表的开机动画视频直接渲染方法 |
CN111193876A (zh) * | 2020-01-08 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 视频中添加特效的方法及装置 |
CN111355960A (zh) * | 2018-12-21 | 2020-06-30 | 北京字节跳动网络技术有限公司 | 合成视频文件的方法、装置、移动终端及存储介质 |
CN111357289A (zh) * | 2017-11-17 | 2020-06-30 | Ati科技无限责任公司 | 针对视频编码器渲染的游戏引擎应用程序 |
CN112004041A (zh) * | 2019-05-27 | 2020-11-27 | 腾讯科技(深圳)有限公司 | 视频录制方法、装置、终端及存储介质 |
CN112218148A (zh) * | 2020-09-11 | 2021-01-12 | 杭州易现先进科技有限公司 | 屏幕录制方法、装置、计算机设备和计算机可读存储介质 |
CN112419456A (zh) * | 2019-08-23 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种特效画面生成方法和装置 |
CN113365139A (zh) * | 2020-03-03 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 一种基于iOS系统的视频录制方法、装置以及存储介质 |
CN113382178A (zh) * | 2021-08-12 | 2021-09-10 | 江苏三步科技股份有限公司 | 一种多路视频合成方法、引擎、装置及可读存储介质 |
JP2022509191A (ja) * | 2018-11-27 | 2022-01-20 | オッポ広東移動通信有限公司 | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 |
CN114222166A (zh) * | 2021-09-29 | 2022-03-22 | 重庆创通联达智能技术有限公司 | 多路视频码流实时处理、同屏播放方法及相关系统 |
CN114845162A (zh) * | 2021-02-01 | 2022-08-02 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置、电子设备及存储介质 |
CN114979766A (zh) * | 2022-05-11 | 2022-08-30 | 深圳市大头兄弟科技有限公司 | 音视频的合成方法、装置、设备及存储介质 |
CN116260990A (zh) * | 2023-05-16 | 2023-06-13 | 合肥高斯智能科技有限公司 | 一种多路视频流的ai异步检测并实时渲染方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007286082A (ja) * | 2006-04-12 | 2007-11-01 | Sony Computer Entertainment Inc | 描画処理装置 |
CN101911125A (zh) * | 2008-01-18 | 2010-12-08 | 高通股份有限公司 | 图形处理系统中对离屏表面的多重缓冲支持 |
CN103402100A (zh) * | 2013-08-23 | 2013-11-20 | 北京奇艺世纪科技有限公司 | 一种视频处理方法及移动终端 |
CN104219555A (zh) * | 2014-08-21 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种安卓系统终端中的视频显示装置和方法 |
CN104580973A (zh) * | 2014-12-30 | 2015-04-29 | 中国科学院深圳先进技术研究院 | 一种虚拟手术模拟过程的录制、回放方法及装置 |
-
2016
- 2016-05-23 CN CN201610344295.3A patent/CN105933724A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007286082A (ja) * | 2006-04-12 | 2007-11-01 | Sony Computer Entertainment Inc | 描画処理装置 |
CN101911125A (zh) * | 2008-01-18 | 2010-12-08 | 高通股份有限公司 | 图形处理系统中对离屏表面的多重缓冲支持 |
CN103402100A (zh) * | 2013-08-23 | 2013-11-20 | 北京奇艺世纪科技有限公司 | 一种视频处理方法及移动终端 |
CN104219555A (zh) * | 2014-08-21 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种安卓系统终端中的视频显示装置和方法 |
CN104580973A (zh) * | 2014-12-30 | 2015-04-29 | 中国科学院深圳先进技术研究院 | 一种虚拟手术模拟过程的录制、回放方法及装置 |
Cited By (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106331849A (zh) * | 2016-09-14 | 2017-01-11 | 北京金山安全软件有限公司 | 一种视频图像处理方法、装置及电子设备 |
WO2018094814A1 (zh) * | 2016-11-28 | 2018-05-31 | 深圳Tcl数字技术有限公司 | 视频合成方法及装置 |
CN106899875A (zh) * | 2017-02-06 | 2017-06-27 | 合网络技术(北京)有限公司 | 外挂字幕的显示控制方法及装置 |
CN108632540A (zh) * | 2017-03-23 | 2018-10-09 | 北京小唱科技有限公司 | 视频处理方法和装置 |
CN108632540B (zh) * | 2017-03-23 | 2020-07-03 | 北京小唱科技有限公司 | 视频处理方法和装置 |
CN107786876A (zh) * | 2017-09-21 | 2018-03-09 | 北京达佳互联信息技术有限公司 | 音乐和视频的同步方法、装置及移动终端 |
CN111357289A (zh) * | 2017-11-17 | 2020-06-30 | Ati科技无限责任公司 | 针对视频编码器渲染的游戏引擎应用程序 |
CN111357289B (zh) * | 2017-11-17 | 2024-04-02 | Ati科技无限责任公司 | 针对视频编码器渲染的游戏引擎的方法、设备及系统 |
CN107886557A (zh) * | 2017-12-02 | 2018-04-06 | 天津大行道动漫文化发展有限公司 | 一种基于媒体流的动画生成系统 |
CN108495174A (zh) * | 2018-04-09 | 2018-09-04 | 深圳格莱珉文化传播有限公司 | 一种h5页面效果生成视频文件的方法及系统 |
CN110620954B (zh) * | 2018-06-20 | 2021-11-26 | 阿里巴巴(中国)有限公司 | 用于硬解的视频处理方法、装置和存储介质 |
CN110620954A (zh) * | 2018-06-20 | 2019-12-27 | 北京优酷科技有限公司 | 用于硬解的视频处理方法和装置 |
CN109600650A (zh) * | 2018-08-01 | 2019-04-09 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
CN109168068B (zh) * | 2018-08-23 | 2020-06-23 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN109218802B (zh) * | 2018-08-23 | 2020-09-22 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN109218802A (zh) * | 2018-08-23 | 2019-01-15 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
WO2020038130A1 (zh) * | 2018-08-23 | 2020-02-27 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN109168068A (zh) * | 2018-08-23 | 2019-01-08 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN109327727A (zh) * | 2018-11-20 | 2019-02-12 | 网宿科技股份有限公司 | 一种WebRTC中的直播流处理方法及推流客户端 |
CN109587555A (zh) * | 2018-11-27 | 2019-04-05 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及存储介质 |
CN109379628B (zh) * | 2018-11-27 | 2021-02-02 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN109379628A (zh) * | 2018-11-27 | 2019-02-22 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
JP7186877B2 (ja) | 2018-11-27 | 2022-12-09 | オッポ広東移動通信有限公司 | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 |
US11418832B2 (en) | 2018-11-27 | 2022-08-16 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Video processing method, electronic device and computer-readable storage medium |
JP2022509191A (ja) * | 2018-11-27 | 2022-01-20 | オッポ広東移動通信有限公司 | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 |
WO2020108098A1 (zh) * | 2018-11-27 | 2020-06-04 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN111355960A (zh) * | 2018-12-21 | 2020-06-30 | 北京字节跳动网络技术有限公司 | 合成视频文件的方法、装置、移动终端及存储介质 |
CN111355960B (zh) * | 2018-12-21 | 2021-05-04 | 北京字节跳动网络技术有限公司 | 合成视频文件的方法、装置、移动终端及存储介质 |
CN109788325A (zh) * | 2018-12-28 | 2019-05-21 | 网宿科技股份有限公司 | 视频任务分配方法及服务器 |
CN110022452A (zh) * | 2019-05-16 | 2019-07-16 | 深圳市芯动电子科技有限公司 | 一种适于全息显示装置的视频抽帧方法及系统 |
CN110147512B (zh) * | 2019-05-16 | 2022-12-20 | 腾讯科技(深圳)有限公司 | 播放器预加载、运行方法、装置、设备及介质 |
CN110147512A (zh) * | 2019-05-16 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 播放器预加载、运行方法、装置、设备及介质 |
CN112004041A (zh) * | 2019-05-27 | 2020-11-27 | 腾讯科技(深圳)有限公司 | 视频录制方法、装置、终端及存储介质 |
CN112004041B (zh) * | 2019-05-27 | 2022-06-10 | 腾讯科技(深圳)有限公司 | 视频录制方法、装置、终端及存储介质 |
CN112419456A (zh) * | 2019-08-23 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种特效画面生成方法和装置 |
CN112419456B (zh) * | 2019-08-23 | 2024-04-16 | 腾讯科技(深圳)有限公司 | 一种特效画面生成方法和装置 |
CN110930480A (zh) * | 2019-11-30 | 2020-03-27 | 航天科技控股集团股份有限公司 | 液晶仪表的开机动画视频直接渲染方法 |
CN111193876B (zh) * | 2020-01-08 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 视频中添加特效的方法及装置 |
CN111193876A (zh) * | 2020-01-08 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 视频中添加特效的方法及装置 |
CN113365139A (zh) * | 2020-03-03 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 一种基于iOS系统的视频录制方法、装置以及存储介质 |
CN113365139B (zh) * | 2020-03-03 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 一种基于iOS系统的视频录制方法、装置以及存储介质 |
CN112218148A (zh) * | 2020-09-11 | 2021-01-12 | 杭州易现先进科技有限公司 | 屏幕录制方法、装置、计算机设备和计算机可读存储介质 |
CN114845162A (zh) * | 2021-02-01 | 2022-08-02 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置、电子设备及存储介质 |
CN114845162B (zh) * | 2021-02-01 | 2024-04-02 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置、电子设备及存储介质 |
CN113382178A (zh) * | 2021-08-12 | 2021-09-10 | 江苏三步科技股份有限公司 | 一种多路视频合成方法、引擎、装置及可读存储介质 |
CN114222166B (zh) * | 2021-09-29 | 2024-02-13 | 重庆创通联达智能技术有限公司 | 多路视频码流实时处理、同屏播放方法及相关系统 |
CN114222166A (zh) * | 2021-09-29 | 2022-03-22 | 重庆创通联达智能技术有限公司 | 多路视频码流实时处理、同屏播放方法及相关系统 |
CN114979766A (zh) * | 2022-05-11 | 2022-08-30 | 深圳市大头兄弟科技有限公司 | 音视频的合成方法、装置、设备及存储介质 |
CN114979766B (zh) * | 2022-05-11 | 2023-11-21 | 深圳市闪剪智能科技有限公司 | 音视频的合成方法、装置、设备及存储介质 |
CN116260990B (zh) * | 2023-05-16 | 2023-07-28 | 合肥高斯智能科技有限公司 | 一种多路视频流的ai异步检测并实时渲染方法及系统 |
CN116260990A (zh) * | 2023-05-16 | 2023-06-13 | 合肥高斯智能科技有限公司 | 一种多路视频流的ai异步检测并实时渲染方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105933724A (zh) | 视频制作方法、装置及系统 | |
US7394969B2 (en) | System and method to compose a slide show | |
US9620169B1 (en) | Systems and methods for creating a processed video output | |
CN1251494C (zh) | 用于创建多媒体可操作光盘的系统和方法 | |
JP2003087785A (ja) | 動画像符号化データの形式変換方法及び装置 | |
CN111899322B (zh) | 视频处理方法、动画渲染sdk和设备及计算机存储介质 | |
SG173703A1 (en) | Method for generating gif, and system and media player thereof | |
KR101952260B1 (ko) | 다수의 동영상 썸네일을 동시에 표시하기 위한 영상 재생 장치 및 방법 | |
JP2006101521A (ja) | 入力メディアオブジェクトの視覚的表現を決定する方法、コンピュータプログラム及びデータ処理システム | |
JP2006135939A (ja) | 入力メディアオブジェクトをエンコードする方法、コンピュータプログラム及びデータ処理システム | |
JP2006155580A (ja) | メディアオブジェクトを生成する方法、コンピュータプログラム及びデータ処理システム | |
CN102026017A (zh) | 一种视频解码高效测试方法 | |
JP7317189B2 (ja) | 自動メディア出版 | |
CN101998051A (zh) | 图像显示控制装置、图像处理装置及搭载其的摄像装置 | |
CN100394773C (zh) | 影片转换编辑装置及其方法 | |
KR100956768B1 (ko) | 합성 동영상 생성 장치 및 방법 | |
US6845214B1 (en) | Video apparatus and re-encoder therefor | |
US20120251081A1 (en) | Image editing device, image editing method, and program | |
CN113905254A (zh) | 视频合成方法、装置、系统与可读存储介质 | |
CN113490047A (zh) | 一种Android音视频播放方法 | |
JP3637726B2 (ja) | 字幕情報付きディジタル情報処理方法及び装置 | |
KR20160015128A (ko) | 클라우드 스트리밍 서비스 시스템, 이미지 타입에 따른 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
JP2007013473A (ja) | 再生装置及び再生方法 | |
KR100810649B1 (ko) | 동영상 파일과 멀티미디어 파일을 합성하는 시스템 및 그방법 | |
WO2023193524A1 (zh) | 直播视频处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160907 |