CN106804003A - 基于ffmpeg的视频编辑方法及装置 - Google Patents
基于ffmpeg的视频编辑方法及装置 Download PDFInfo
- Publication number
- CN106804003A CN106804003A CN201710139600.XA CN201710139600A CN106804003A CN 106804003 A CN106804003 A CN 106804003A CN 201710139600 A CN201710139600 A CN 201710139600A CN 106804003 A CN106804003 A CN 106804003A
- Authority
- CN
- China
- Prior art keywords
- video
- watermark
- video file
- file
- recording
- 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.)
- Granted
Links
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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47205—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8358—Generation of protective data, e.g. certificates involving watermark
Abstract
本发明提供了一种基于ffmpeg的视频编辑方法及装置,涉及视频编辑技术领域,该方法包括获取并打开指定目录下的视频文件;接收用户输入的操作指令,其中,所述操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或多种;当所述操作指令为所述视频剪切指令时,对所述视频文件进行剪切;当所述操作指令为所述水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件;当所述操作指令为所述录音混合指令时,将录音文件与所述视频文件进行混合。本发明解决了现有的移动终端视频编辑存在的功能过于简单、用户使用不便等问题。
Description
技术领域
本发明涉及视频编辑技术领域,尤其是涉及一种基于ffmpeg的视频编辑方法及装置。
背景技术
近年来,随着手机性能的不断提高、手机屏幕的尺寸不断攀升、大屏幕掌上设备的不断普及,催生了移动平台媒体的诞生。手机拍摄视频的用户特别是青少年手机拍摄爱好者逐渐增多。应用移动终端拍摄的视频效果较单调,用户在分享自己录制的手机视频的时候往往需要通过编辑加工后再发布出去,在此过程中,为满足用户的体验需求,移动终端上进行视频后期编辑的应用软件相应而生。
对于android平台上视频的编辑,有多种方案可供选择。
1.ffmpeg框架,对视频进行一帧一帧解码编码处理。
2.第三方Java开源库,比如优秀的mp4parser。
3.Android4.1中新加入的API(Application Programming Interface,应用程序编程接口):MediaCodec。
以上方法都有各自的优劣势,其中ffmpeg框架,需要做JNI(Java NativeInterface,Java本地接口)实现。通过编码解码可以裁剪任意长度视频的任意中间长度区间,支持对视频的多种处理;支持裁剪屏幕尺寸。
然而,移动终端如手机、平板,视频编辑功能过于简单,许多用户选择把需要编辑的视频导入到电脑进行处理,然后再传输回移动终端中,过程复杂麻烦,给在外游玩或者办公的用户带来了极大的不便。
因此,现有的移动终端视频编辑存在着功能过于简单、用户使用不便等问题。
发明内容
有鉴于此,本发明的目的在于提供一种基于ffmpeg的视频编辑方法及装置,以缓解现有的移动终端视频编辑存在的功能过于简单、用户使用不便等问题。
第一方面,本发明实施例提供了一种基于ffmpeg的视频编辑方法,应用于移动终端,该方法包括:
获取并打开指定目录下的视频文件;
接收用户输入的操作指令,其中,所述操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或多种;
当所述操作指令为所述视频剪切指令时,对所述视频文件进行剪切;
当所述操作指令为所述水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件;
当所述操作指令为所述录音混合指令时,将录音文件与所述视频文件进行混合。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件,包括:
检查移动终端是否支持硬解码和硬编码;
若是,则调用移动终端的GPU对所述视频文件进行硬解码和硬编码;
若否,则调用移动终端的CPU启用neon指令对所述视频文件进行软解码和软编码。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件的过程中,还包括:
根据人眼视觉的时间特性,对添加水印中的所述视频文件进行减帧处理,使添加水印后的所述视频文件的输出帧率达到预设帧率。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件,包括:
获取当前水印图片列表中的水印图片,并通过在软编码过程中启用neon指令或者利用硬编码将所述水印图片添加至所述视频文件。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述水印添加指令包括文字内容、图片内容、文字格式以及标签样式中的一种或者多种;
所述通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件之前,还包括:
根据所述水印添加指令,生成所述水印图片;
将所述水印图片存储至水印图片列表中。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述将录音文件与所述视频文件进行混合,包括:
获取当前录音列表中的所述录音文件,将所述录音文件与所述视频文件进行混合。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述录音混合指令包括录音插入时间;
所述将所述录音文件与所述视频文件进行混合的具体过程为:
将所述视频文件分离为纯音频文件和纯视频文件;
根据所述录音插入时间,将所述录音文件进行延时;
将延时后的录音文件与所述纯音频文件混合得到混频文件;
将所述混频文件与所述纯视频文件混合得到录音混合后的视频文件。
第二方面,本发明实施例还提供一种基于ffmpeg的视频编辑装置,包括:
视频获取模块,用于获取并打开指定目录下的视频文件;
操作接收模块,用于接收用户输入的操作指令,其中,所述操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或者多种;
视频剪切模块,用于当所述操作指令为所述视频剪切指令时,对所述视频文件进行剪切;
水印添加模块,用于当所述操作指令为所述水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件;
录音混合模块,用于当所述操作指令为所述录音混合指令时,将录音文件与所述视频文件进行混合。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述水印添加模块包括:
检查单元,用于检查移动终端是否支持硬解码和硬编码;
GPU调用单元,用于若检查移动终端支持硬解码和硬编码,则调用移动终端的GPU对所述视频文件进行硬解码和硬编码;
CPU调用单元,用于若检查移动终端不支持硬解码和硬编码,则调用移动终端的CPU启用neon指令对所述视频文件进行软解码和软编码。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述水印添加模块包括:
减帧单元,用于根据人眼视觉的时间特性,对添加水印中的所述视频文件进行减帧处理,使添加水印后的视频文件的输出帧率达到预设帧率。
本发明实施例带来了以下有益效果:
本发明所提供的实施例中,首先获取并打开指定目录下的视频文件,然后接收用户输入的操作指令,其中,该操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或多种。当该操作指令为视频剪切指令时,对视频文件进行剪切;当该操作指令为水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至视频文件;当该操作指令为录音混合指令时,将录音文件与视频文件进行混合。本发明通过利用ffmpeg视频编辑库,实现了在移动终端对视频文件的视频剪切、水印添加以及录音混合等功能,使用户可以随时随地利用移动终端进行视频编辑,解决了现有的移动终端视频编辑存在的处理过于简单、用户使用不便等问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于ffmpeg的视频编辑方法的流程示意图;
图2为本发明实施例提供的基于ffmpeg的视频编辑方法中录音混合过程的流程示意图;
图3为本发明实施例提供的基于ffmpeg的视频编辑方法中视频编辑具体过程的流程示意图;
图4为本发明实施例提供的基于ffmpeg的视频编辑装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前现有的移动终端视频编辑存在着功能过于简单、用户使用不便等问题,基于此,本发明实施例提供的一种基于ffmpeg的视频编辑方法及装置,可以缓解现有的移动终端视频编辑存在着功能过于简单、用户使用不便等问题,满足用户随时随地编辑视频的需求。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于ffmpeg的视频编辑方法进行详细介绍。
实施例一:
图1示出了本发明实施例提供的基于ffmpeg的视频编辑方法的流程示意图,如图1所示,该方法采用二次开发ffmpeg视频编辑库进行视频编辑,应用于移动终端,具体为移动终端的Android平台,包括:
步骤S110,获取并打开指定目录下的视频文件。
具体地,用户将需要编辑的视频文件放到指定目录下,本发明实施例,本发明提供的实施例,通过用户点击操作,获取并打开该视频文件。
步骤S120,接收用户输入的操作指令。
其中,该操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或多种。其中,视频剪切指令包括剪切开始时间、剪切结束时间;水印添加指令包括文字内容、图片内容、文字格式以及标签样式中的一种或者多种,该文字格式包括文字大小、文字字体、文字颜色中的一种或者多种,该标签样式包括滤镜、输入效果、输出效果、及文字排列方式中的一种或者多种;录音混合指令包括录音插入时间。
步骤S131,当该操作指令为视频剪切指令时,对视频文件进行剪切。
具体地,视频文件打开后,通过用户拖动视频文件的播放进度条选择剪切开始时间与剪切结束时间,然后点击剪切按钮,进而生成视频剪切指令。本发明提供的方法中,接收到上述视频剪切指令后,根据该视频剪切指令对上述视频文件进行剪切,从而得到剪切后的视频文件。
步骤S132,当操作指令为水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至视频文件。
具体地,用户点击水印添加按钮,添加想要输入的文字内容或者图片内容,并可点击切换文字格式以及标签样式,或者图片的标签样式。其中,标签样式可以以模板的形式存储在模板库中。用户也可以选择在视频文件的固定时间段内添加水印,时间选择方式与上述步骤S131中剪切开始时间与剪切结束时间的选择方式类似,在此不再赘述。
步骤S133,当操作指令为录音混合指令时,将录音文件与视频文件进行混合。
用户点击录音按钮,并选择需要添加的录音文件,然后点击已经打开的视频文件的播放进度条已确定录音插入时间,从而将录音文件插入至视频文件中,可以达到解说视频的效果。
用户在完成视频编辑后,点击保存按钮进行保存并预览。具体地,可以保存至本地即移动终端的存储器中,也可以通过连接网络节点分享到云端网络。
进一步地,上述步骤可通过在包含Android平台的移动终端上安装客户端实现。
本发明所提供的实施例中,首先获取并打开指定目录下的视频文件,然后接收用户输入的操作指令,其中,该操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或多种。当该操作指令为视频剪切指令时,对视频文件进行剪切;当该操作指令为水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至视频文件;当该操作指令为录音混合指令时,将录音文件与视频文件进行混合。本发明实施例通过利用ffmpeg视频编辑库,实现了在移动终端对视频文件的视频剪切、水印添加以及录音混合等功能,使用户可以随时随地利用移动终端进行视频编辑,解决了现有的移动终端视频编辑存在的处理过于简单、用户使用不便等问题。
为了便于对水印添加指令的处理,上述通过在软编码过程中启用neon指令或者利用硬编码添加水印至视频文件之前,该方法还包括:根据水印添加指令,生成水印图片;将该水印图片存储至水印图片列表中。即在后续过程中将水印以图片的形式添加至上述视频文件中。具体地,按照用户输入的文字内容或者图片内容,选择的文字格式、标签样式等生成水印图片。另外,为了方便后续对水印图片的按需存取,将水印图片存储到当前水印图片列表中。
进一步地,通过在软编码过程中启用neon指令或者利用硬编码添加水印至视频文件,包括:获取当前水印图片列表中的水印图片,并通过在软编码过程中启用neon指令或者利用硬编码将水印图片添加至视频文件。具体地,用户可以为视频文件添加多个水印,也就需要生成多个水印图片,存储至当前水印列表中。在接收到用户的水印添加指令后,检测当前水印图片列表是否为空,若不为空,则获取当前水印图片列表中的水印图片,并将该水印图片通过在软编码过程中启用neon指令或者利用硬编码添加至视频文件,然后检测当前水印图片列表是否为空,反复循环,直至当前水印图片列表为空;若为空,则执行后续用户输入的其他操作指令,
添加水印的过程中,涉及到对视频画面像素的操作,一般都会经过视频解码、视频处理、视频编码三个步骤,采用现有技术处理一个60秒、视频帧率为30帧每秒的视频文件时,每一帧的处理都需要经过视频解码、视频处理、视频编码三个步骤,处理效率低,时间长。
在本发明实施例的步骤S132,添加水印至视频文件的过程中,视频解码过程为软解码或者硬解码,视频编码过程为软编码或者硬编码。具体的,上述软编码和软解码是基于CPU(Central Processing Unit,中央处理器)的处理,几乎适配所有类型包含Android平台的移动终端;上述硬编码和硬解码是基于GPU(Graphics Processing Unit,图形处理器)的处理。传统ffmpeg视频编辑库默认是没有启动neon指令功能的,neon指令是一种128位单指令、多数据扩展结构,专门针对大规模并行计算而设计,其性能使非neon指令性能的2倍左右,在本发明提供的实施例中,在视频编辑过程中,配置configure-enable neon,使得ffmpeg视频编辑库启动neon指令,进而提高水印添加过程中,软解码与软编码的处理效率,减少视频编辑处理时间。
为了进一步增强Android版本较低的低端移动终端的处理速度,最大化利用移动终端本身硬件性能来优化视频编辑处理效率,在本发明的一个实施例中,在添加水印过程中,采用ffmpeg进行硬编码和硬解码,就是调用移动终端的GPU的专门模块进行编码和解码,减少CPU的运算,进一步提高视频编辑的处理速度。上述硬编码和硬解码主要步骤为:
(a)利用JNI技术实现c++层对android平台的java层的硬编码和硬解码的系统调用,如mediacodec的编解码函数API,从而可以有效利用移动端硬件的GPU来加速视频编辑的处理。
(b)实现与ffmpeg的libavcodec模块里面匹配的接口适配函数,如init(),encode(),decode(),flush()等接口函数,将其通过configure配置作为扩展功能来编译成为ffmpeg视频编辑库中的函数,从而实现对ffmpeg的二次开发,生成新的ffmpeg视频编辑库。当应用该新的ffmpeg视频编辑库进行视频处理时,就会调用到上述新的ffmpeg视频编辑库中的上述扩展功能,实现硬编码和硬解码,从而加快视频编辑的处理。
常用的视频编解码方案,即mediacodec和OpenGlde组合使用,mediacodec的底层实现中,会在后续音视频的混合和分离的时候产生多余的拷贝操作,导致处理时间变长。本发明实施例通过上述硬编码和硬解码过程减少了拷贝操作,减少了视频处理时间。
考虑到,有些移动终端不支持硬编码与硬解码,因此在一个实施例中,上述通过在软编码过程中启用neon指令或者利用硬编码添加水印至视频文件,包括:检查移动终端是否支持硬解码和硬编码;若是,则调用移动终端的GPU对视频文件进行硬解码和硬编码;若否,则调用移动终端的CPU启用neon指令对视频文件进行软解码和软编码。这样,实现了移动终端硬解码和硬编码、软解码和软编码的适配策略切换,以达到最优的视频处理效果。
为了进一步减少视频编辑的时间,通过在软编码过程中启用neon指令或者利用硬编码添加水印至视频文件的过程中,还包括:根据人眼视觉的时间特性,对添加水印中的视频文件进行减帧处理,使添加水印后的视频文件的输出帧率达到预设帧率。例如,录屏默认的帧率一般大于30帧每秒,我们根据人眼视觉的时间特性,在不影响视频质量的情况下,采用ffmpeg命令设置预设帧率为24帧每秒,这样ffmpeg每秒处理的帧数减少,视频编辑的时间下降。
进一步地,在上述步骤S133中,为了便于对录音混合指令的处理,在一个实施例中,将用户选择混合的一个或者多个录音文件存储于录音列表中。上述将录音文件与视频文件进行混合,包括:获取当前录音列表中的录音文件,将录音文件与视频文件进行混合。在接收到用户的录音混合指令后,检测当前录音列表是否为空,若不为空,则获取当前录音列表中的录音文件,将录音文件与视频文件进行混合,然后再次检测当前录音列表是否为空,反复循环,直至当前录音列表为空;若为空,则执行后续用户输入的其他操作指令。
具体地,图2示出了本发明实施例提供的基于ffmpeg的视频编辑方法中录音混合过程的流程示意图,如图2所示,上述将录音文件与视频文件进行混合的具体过程为:
步骤S1331,将视频文件分离为纯音频文件和纯视频文件。
步骤S1332,根据录音插入时间,将录音文件进行延时。
步骤S1333,将延时后的录音文件与纯音频文件混合得到混频文件。
步骤S1334,将混频文件与纯视频文件混合得到录音混合后的视频文件。
在一个实施例中,用户需要在视频文件播放的30秒处,插入录音文件,则确定录音插入时间为30秒,将录音文件延时30秒,然后将延时30秒后的录音文件与纯音频文件混合,得到混频文件。
进一步,针对上述介绍的方法,本实施例提供了具体的命令行实现过程如下:
(1)利用AsyncTask实现每个编辑步骤的串行执行。AsyncTask是Android平台下异步任务的API(Application Programming Interface,应用程序编程接口)。Android的线程分为两种,有一个线程叫做UI(User Interface,用户界面)线程或者Main Thread,除了Main Thread之外的线程都可称为Worker Thread。Main Thread主要负责控制UI页面的显示、更新、交互等。因此所有在UI线程中的操作要求越短越好,只有这样用户才会觉得操作比较流畅。一个比较好的做法是把一些比较耗时的操作,例如网络请求、数据库操作、复杂计算等逻辑都封装到单独的线程,这样就可以避免阻塞主线程。因此,在本发明实施例中,将所有的执行编辑命令的工作都放到工作线程执行。
(2)基于Android平台,利用JNI调用ffmpeg视频编辑数据库,视频编辑的每个操作都由ffmpeg视频编辑数据库实现。具体的编辑步骤可以用以下命令行来描述:
A)剪切视频命令:"ffmpeg-i"+inputPath+"-ss"+start+"-t"+(stop-start)+"-vcodec copy-acodec copy-y"+cachePath
ffmpeg:初始化ffmpeg视频编辑库
inputPath:输入视频路径start:剪切开始时间
(stop-start):持续时间
-vcodec copy-acodec copy:拷贝音视频数据
Cache:输出视频路径
B)添加水印命令:"ffmpeg-i"+inputPath+"-i"+imagePath+"-filter_complex"+"overlay="+x+":"+y+":enable=\'between(t,"+start+","+stop+")\'"
inputPath:输入视频路径imagePath:输入的水印图片的路径
filter_complex:滤镜overlay=x:y:输入水印图片的位置
":enable=\'between(t,"+start+","+stop+“)\’":同时添加多个水印
C)录音混合命令,分为以下4条命令:
command1."ffmpeg-i"+originalPath+"-map 0:0-c:v copy-an"+videoPath+"-map 0:1-c:a copy-vn-y"+audioPath
从原始的视频文件中提取出纯音频文件和纯视频文件。
command2."ffmpeg-i"+voicePath+"-strict experimental-c:a aac-b:a32k-filter_complex adelay="+(audioList.get(i).startTime*1000)+"-y"+voiceDelay
处理录音文件使其延时n秒。
command3."ffmpeg-i"+audioPath+"-i"+voiceDelay+"-strict experimental-c:aaac-b:a 32k-filter_complex
amix=inputs=2:duration=first:dropout_transition=0-y"+audioOutput
把延时后的录音文件和纯音频文件混合在一起,生成混频文件。
command4."ffmpeg-i"+videoPath+"-i"+audioOutput+"-c:v copy-bsf:a aac_adtstoasc-c:a copy-y"+cachePath
把纯视频文件和混频文件混合在一起。
进一步地,图3示出了本发明实施例提供的基于ffmpeg的视频编辑方法中视频编辑具体过程的流程示意图。该流程示意图针对的用户操作顺序为剪切视频、添加水印、混合录音,如图3所示,该具体过程包括:
步骤S201:获取视频文件。即获取用户选择的指定目录下的需要编辑的视频文件。
步骤S202:接收视频剪切指令。
具体地,视频文件打开后,通过用户拖动视频文件的播放进度条选择剪切开始时间与剪切结束时间,然后点击剪切按钮,进而生成视频剪切指令。
步骤S203:对视频文件进行剪切,从而获得剪切后的第一视频文件。
接收到上述视频剪切指令后,根据该视频剪切指令对上述视频文件进行剪切,从而得到剪切后的第一视频文件。
步骤S204:接收水印添加指令。
用户点击水印添加按钮,添加想要输入的文字内容或者图片内容,并可点击切换文字格式以及标签样式,或者图片的标签样式。其中,标签样式可以以模板的形式存储在模板库中。
步骤S205:检测当前水印图片列表是否为空。
在接收到用户的水印添加指令后,检测当前水印图片列表是否为空,若不为空,则执行步骤S206,若为空,则执行步骤S207。
步骤S206:获取当前水印图片列表中的水印图片,并将该水印图片添加至第一视频文件。完成步骤S206后,执行步骤S205。
利用步骤S205与步骤S206,将当前水印图片列表中的水印图片依次添加至第一视频文件中,直至当前水印图片列表为空,最后生成第二视频文件。
步骤S207:接收录音混合指令。
用户的点击录音按钮,并选择需要添加的录音文件,然后点击已经打开的视频文件的播放进度条已确定录音插入时间,从而将录音文件插入至视频文件中,可以达到解说视频的效果。
步骤S208:检测当前录音列表是否为空。
在接收到录音混合指令后,检测当前录音列表是否为空,若不为空,则执行步骤S2091和步骤S2092,若为空,则执行步骤S213。
步骤S2091:将第二视频文件进行分离,从而生成纯音频文件和纯视频文件。
步骤S2092:从当前录音列表中获取录音文件,并将该录音文件进行延时。
其中,步骤S2091和S2092可以无先后顺序。
步骤S210:将延时后的录音文件与纯音频文件进行混合,得到混频文件。
步骤S211:将混频文件与纯视频文件进行混合。完成步骤S211后,执行步骤S208。
利用步骤S208至步骤S211,将当前录音列表中的所有录音文件与第二视频文件混合,直至当前录音列表为空,最后生成第三视频文件。
步骤S212:将第三视频文件作为最终视频文件输出。
输出最终视频文件后,点击保存按钮进行保存并预览。具体地,可以保存至本地即移动终端的存储器中,也可以通过连接网络节点分享到云端网络。
值得强调的是,在本发明提供的方法中,视频剪切指令、水印添加指令、录音混合指令没有先后顺序,按照用户输入的操作顺序进行视频编辑步骤的执行。当然可以提示用户如何进行操作以及操作顺序。
另外,在一个实施例中,当用户输入了水印添加操作与录音混合操作时,可以将先将视频文件分离为纯视频文件和纯音频文件,在不影响视频质量的情况下减小纯视频文件的帧率,然后将水印添加至减小帧率的纯视频文件中得到新纯视频文件,将纯音频文件与录音文件混合得到新音频文件,最后将新纯视频文件与新音频文件混合为最终的视频文件输出。这样,可以达到加快最终的视频文件输出的目的。
实施例二:
图4示出了本发明实施例提供的基于ffmpeg的视频编辑装置的结构示意图。如图4所示,该装置包括:
视频获取模块50,用于获取并打开指定目录下的视频文件;
操作接收模块60,用于接收用户输入的操作指令,其中,操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或者多种;
视频剪切模块71,用于当操作指令为视频剪切指令时,对视频文件进行剪切;
水印添加模块72,用于当操作指令为水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至视频文件;
录音混合模块73,用于当操作指令为录音混合指令时,将录音文件与视频文件进行混合。
本发明所提供的实施例中,首先利用视频获取模块50,获取并打开指定目录下的视频文件,然后通过操作接收模块60接收用户输入的操作指令,其中,该操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或多种。视频剪切模块71用于当该操作指令为视频剪切指令时,对视频文件进行剪切;水印添加模块72当该操作指令为水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至视频文件;录音混合模块73当该操作指令为录音混合指令时,将录音文件与视频文件进行混合。本发明实施例通过利用ffmpeg视频编辑库,实现了在移动终端对视频文件的视频剪切、水印添加以及录音混合等功能,使用户可以随时随地利用移动终端进行视频编辑,解决了现有的移动终端视频编辑存在的处理过于简单、用户使用不便等问题。
进一步地,上述水印添加模块72包括:
检查单元,用于检查移动终端是否支持硬解码和硬编码;
GPU调用单元,用于若检查移动终端支持硬解码和硬编码,则调用移动终端的GPU对视频文件进行硬解码和硬编码;
CPU调用单元,用于若检查移动终端不支持硬解码和硬编码,则调用移动终端的CPU启用neon指令对视频文件进行软解码和软编码。
进一步地,上述水印添加模块72包括:
减帧单元,用于根据人眼视觉的时间特性,对添加水印中的视频文件进行减帧处理,使添加水印后的视频文件的输出帧率达到预设帧率。
进一步地,上述水印添加模块72包括:
水印获取与添加单元,用于获取当前水印图片列表中的水印图片,并通过在软编码过程中启用neon指令或者利用硬编码将水印图片添加至视频文件。
进一步地,上述水印添加指令包括文字内容、图片内容、文字格式以及标签样式中的一种或者多种;上述水印添加模块72包括:
水印生成单元,用于根据水印添加指令,生成水印图片;
水印存储单元,用于将水印图片存储至水印图片列表中。
进一步地,上述录音混合模块包括:
录音获取并混合单元,用于获取当前录音列表中的录音文件,将录音文件与视频文件进行混合。
进一步地,上述录音混合指令包括录音插入时间;上述录音混合模块73包括:
分离单元,用于将视频文件分离为纯音频文件和纯视频文件;
延时单元,用于根据录音插入时间,将录音文件进行延时;
音频混合单元,用于将延时后的录音文件与纯音频文件混合得到混频文件;
音视频混合单元,用于将混频文件与纯视频文件混合得到录音混合后的视频文件。
本发明实施例提供的基于ffmpeg的视频编辑装置,与上述实施例提供的基于ffmpeg的视频编辑方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例所提供的基于ffmpeg的视频编辑方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的基于ffmpeg的视频编辑装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种基于ffmpeg的视频编辑方法,应用于移动终端,其特征在于,包括:
获取并打开指定目录下的视频文件;
接收用户输入的操作指令,其中,所述操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或多种;
当所述操作指令为所述视频剪切指令时,对所述视频文件进行剪切;
当所述操作指令为所述水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件;
当所述操作指令为所述录音混合指令时,将录音文件与所述视频文件进行混合。
2.根据权利要求1所述的方法,其特征在于,所述通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件,包括:
检查移动终端是否支持硬解码和硬编码;
若是,则调用移动终端的GPU对所述视频文件进行硬解码和硬编码;
若否,则调用移动终端的CPU启用neon指令对所述视频文件进行软解码和软编码。
3.根据权利要求1所述的方法,其特征在于,所述通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件的过程中,还包括:
根据人眼视觉的时间特性,对添加水印中的所述视频文件进行减帧处理,使添加水印后的所述视频文件的输出帧率达到预设帧率。
4.根据权利要求1所述的方法,其特征在于,所述通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件,包括:
获取当前水印图片列表中的水印图片,并通过在软编码过程中启用neon指令或者利用硬编码将所述水印图片添加至所述视频文件。
5.根据权利要求4所述的方法,其特征在于,所述水印添加指令包括文字内容、图片内容、文字格式以及标签样式中的一种或者多种;
所述通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件之前,还包括:
根据所述水印添加指令,生成所述水印图片;
将所述水印图片存储至水印图片列表中。
6.根据权利要求1所述的方法,其特征在于,所述将录音文件与所述视频文件进行混合,包括:
获取当前录音列表中的所述录音文件,将所述录音文件与所述视频文件进行混合。
7.根据权利要求6所述的方法,其特征在于,所述录音混合指令包括录音插入时间;
所述将所述录音文件与所述视频文件进行混合的具体过程为:
将所述视频文件分离为纯音频文件和纯视频文件;
根据所述录音插入时间,将所述录音文件进行延时;
将延时后的录音文件与所述纯音频文件混合得到混频文件;
将所述混频文件与所述纯视频文件混合得到录音混合后的视频文件。
8.一种基于ffmpeg的视频编辑装置,其特征在于,包括:
视频获取模块,用于获取并打开指定目录下的视频文件;
操作接收模块,用于接收用户输入的操作指令,其中,所述操作指令包括视频剪切指令、水印添加指令、录音混合指令中的一种或者多种;
视频剪切模块,用于当所述操作指令为所述视频剪切指令时,对所述视频文件进行剪切;
水印添加模块,用于当所述操作指令为所述水印添加指令时,通过在软编码过程中启用neon指令或者利用硬编码添加水印至所述视频文件;
录音混合模块,用于当所述操作指令为所述录音混合指令时,将录音文件与所述视频文件进行混合。
9.根据权利要求8所述的装置,其特征在于,所述水印添加模块包括:
检查单元,用于检查移动终端是否支持硬解码和硬编码;
GPU调用单元,用于若检查移动终端支持硬解码和硬编码,则调用移动终端的GPU对所述视频文件进行硬解码和硬编码;
CPU调用单元,用于若检查移动终端不支持硬解码和硬编码,则调用移动终端的CPU启用neon指令对所述视频文件进行软解码和软编码。
10.根据权利要求8所述的装置,其特征在于,所述水印添加模块包括:
减帧单元,用于根据人眼视觉的时间特性,对添加水印中的所述视频文件进行减帧处理,使添加水印后的视频文件的输出帧率达到预设帧率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710139600.XA CN106804003B (zh) | 2017-03-09 | 2017-03-09 | 基于ffmpeg的视频编辑方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710139600.XA CN106804003B (zh) | 2017-03-09 | 2017-03-09 | 基于ffmpeg的视频编辑方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106804003A true CN106804003A (zh) | 2017-06-06 |
CN106804003B CN106804003B (zh) | 2020-08-04 |
Family
ID=58987694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710139600.XA Active CN106804003B (zh) | 2017-03-09 | 2017-03-09 | 基于ffmpeg的视频编辑方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106804003B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107396180A (zh) * | 2017-08-29 | 2017-11-24 | 北京小米移动软件有限公司 | 基于移动终端的视频制作方法及装置 |
CN107688657A (zh) * | 2017-09-05 | 2018-02-13 | 上海勤联物联网有限公司 | 一种视频简历的制作系统及其方法 |
CN108769738A (zh) * | 2018-06-15 | 2018-11-06 | 广州酷狗计算机科技有限公司 | 视频处理方法、装置、计算机设备和存储介质 |
CN109637539A (zh) * | 2019-01-29 | 2019-04-16 | 浪潮金融信息技术有限公司 | 一种基于科大讯飞不限时间的所见即所得的语音识别方法 |
CN110300328A (zh) * | 2018-03-21 | 2019-10-01 | 腾讯科技(深圳)有限公司 | 一种视频播放控制方法、装置及可读存储介质 |
CN110602061A (zh) * | 2019-08-23 | 2019-12-20 | 福建星网智慧科技股份有限公司 | 一种安卓播放器网络协议和格式的拓展方法、系统和设备 |
CN111400038A (zh) * | 2020-03-10 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 一种视频与图片多分辨率自适应的视频水印方法及系统 |
CN114173192A (zh) * | 2021-12-09 | 2022-03-11 | 广州阿凡提电子科技有限公司 | 一种基于导出视频添加动态特效的方法及系统 |
CN114650457A (zh) * | 2021-12-27 | 2022-06-21 | 深圳市麦谷科技有限公司 | 一种视频水印增强方法、系统及终端 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818542A (en) * | 1996-04-10 | 1998-10-06 | Discreet Logic, Inc. | Processing image data |
CN101026542A (zh) * | 2007-03-30 | 2007-08-29 | 北京呼啦在线传媒科技有限公司 | 在用户终端设备上下载拼接多媒体文件的方法 |
CN102638658A (zh) * | 2012-03-01 | 2012-08-15 | 盛乐信息技术(上海)有限公司 | 音视频编辑方法及系统 |
CN103873954A (zh) * | 2012-12-13 | 2014-06-18 | 航天信息股份有限公司 | 将不见数字水印嵌入到流媒体的方法、装置和系统 |
CN104754349A (zh) * | 2013-12-25 | 2015-07-01 | 炫一下(北京)科技有限公司 | 硬解码音视频的方法及装置 |
US20150271531A1 (en) * | 2014-03-20 | 2015-09-24 | Nanjing Yuyan Information Technology Ltd. | Efficient software for transcoding to hevc on multi-core processors |
CN104994390A (zh) * | 2015-06-30 | 2015-10-21 | 湖南基石通信技术有限公司 | 一种嵌入式视频处理器、系统及构建方法 |
CN105898496A (zh) * | 2015-11-18 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 基于Android设备的HLS流硬解码方法及装置 |
CN205647807U (zh) * | 2016-04-29 | 2016-10-12 | 中傲智能科技(苏州)有限公司 | 视频采集与转发系统 |
-
2017
- 2017-03-09 CN CN201710139600.XA patent/CN106804003B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818542A (en) * | 1996-04-10 | 1998-10-06 | Discreet Logic, Inc. | Processing image data |
CN101026542A (zh) * | 2007-03-30 | 2007-08-29 | 北京呼啦在线传媒科技有限公司 | 在用户终端设备上下载拼接多媒体文件的方法 |
CN102638658A (zh) * | 2012-03-01 | 2012-08-15 | 盛乐信息技术(上海)有限公司 | 音视频编辑方法及系统 |
CN103873954A (zh) * | 2012-12-13 | 2014-06-18 | 航天信息股份有限公司 | 将不见数字水印嵌入到流媒体的方法、装置和系统 |
CN104754349A (zh) * | 2013-12-25 | 2015-07-01 | 炫一下(北京)科技有限公司 | 硬解码音视频的方法及装置 |
US20150271531A1 (en) * | 2014-03-20 | 2015-09-24 | Nanjing Yuyan Information Technology Ltd. | Efficient software for transcoding to hevc on multi-core processors |
CN104994390A (zh) * | 2015-06-30 | 2015-10-21 | 湖南基石通信技术有限公司 | 一种嵌入式视频处理器、系统及构建方法 |
CN105898496A (zh) * | 2015-11-18 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 基于Android设备的HLS流硬解码方法及装置 |
CN205647807U (zh) * | 2016-04-29 | 2016-10-12 | 中傲智能科技(苏州)有限公司 | 视频采集与转发系统 |
Non-Patent Citations (1)
Title |
---|
李炜锋: "基于Android的视频软硬件解码及渲染的对比研究与实现", 《电视技术》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107396180A (zh) * | 2017-08-29 | 2017-11-24 | 北京小米移动软件有限公司 | 基于移动终端的视频制作方法及装置 |
CN107688657A (zh) * | 2017-09-05 | 2018-02-13 | 上海勤联物联网有限公司 | 一种视频简历的制作系统及其方法 |
CN110300328A (zh) * | 2018-03-21 | 2019-10-01 | 腾讯科技(深圳)有限公司 | 一种视频播放控制方法、装置及可读存储介质 |
CN110300328B (zh) * | 2018-03-21 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 一种视频播放控制方法、装置及可读存储介质 |
CN108769738A (zh) * | 2018-06-15 | 2018-11-06 | 广州酷狗计算机科技有限公司 | 视频处理方法、装置、计算机设备和存储介质 |
CN108769738B (zh) * | 2018-06-15 | 2021-01-08 | 广州酷狗计算机科技有限公司 | 视频处理方法、装置、计算机设备和存储介质 |
CN109637539A (zh) * | 2019-01-29 | 2019-04-16 | 浪潮金融信息技术有限公司 | 一种基于科大讯飞不限时间的所见即所得的语音识别方法 |
CN110602061A (zh) * | 2019-08-23 | 2019-12-20 | 福建星网智慧科技股份有限公司 | 一种安卓播放器网络协议和格式的拓展方法、系统和设备 |
CN111400038A (zh) * | 2020-03-10 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 一种视频与图片多分辨率自适应的视频水印方法及系统 |
CN114173192A (zh) * | 2021-12-09 | 2022-03-11 | 广州阿凡提电子科技有限公司 | 一种基于导出视频添加动态特效的方法及系统 |
CN114650457A (zh) * | 2021-12-27 | 2022-06-21 | 深圳市麦谷科技有限公司 | 一种视频水印增强方法、系统及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN106804003B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106804003A (zh) | 基于ffmpeg的视频编辑方法及装置 | |
US20220264029A1 (en) | Video special effect processing method and apparatus, and electronic device | |
CN102256049B (zh) | 自动化故事生成 | |
US20220377259A1 (en) | Video processing method and apparatus, electronic device, and non-transitory computer readable storage medium | |
CN112184856A (zh) | 支持多图层特效及动画混合的多媒体处理装置 | |
CN110534088A (zh) | 语音合成方法、电子装置及存储介质 | |
CN111914523B (zh) | 基于人工智能的多媒体处理方法、装置及电子设备 | |
US10014030B2 (en) | Method, device and system for playing video | |
CN110174942B (zh) | 眼动合成方法及装置 | |
CN109672902A (zh) | 一种视频抽帧方法、装置、电子设备和存储介质 | |
CN110297616B (zh) | 话术的生成方法、装置、设备以及存储介质 | |
US20190371023A1 (en) | Method and apparatus for generating multimedia content, and device therefor | |
CN108958698A (zh) | 一种添加设备的方法、装置、存储介质及终端 | |
CN109599115A (zh) | 用于音频采集设备和用户终端的会议记录方法和装置 | |
CN112637675A (zh) | 视频生成方法、装置、电子设备以及存储介质 | |
CN105975168A (zh) | 一种osd菜单淡入/淡出方法及装置 | |
CN113806570A (zh) | 图像生成方法和生成装置、电子设备和存储介质 | |
CN111930289B (zh) | 一种处理图片和文本的方法和系统 | |
CN111488147A (zh) | 一种智能布局方法及装置 | |
CN116958326A (zh) | 图像编辑方法、装置、电子设备以及存储介质 | |
CN109640148A (zh) | 一种通过文本框展示文本内容的方法及装置 | |
CN115878247A (zh) | 一种前端元素适应性显示方法、装置、存储介质及系统 | |
CN109889883A (zh) | 一种精彩时刻视频录制方法及装置 | |
CN114390307A (zh) | 图像画质增强方法、装置、终端及可读存储介质 | |
CN115225962A (zh) | 视频生成方法、系统、终端设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |