短视频批量剪辑制作技巧(批量剪辑软件设计思路)
今天分享一下一个程序员做自媒体中发现的商机,他自己做带货视频,每天都苦于剪视频。
最多的时候,一天剪到 50 个视频,通宵剪。
流程是先搜集脚本,爆款的段子、视频,让人忍俊不禁的笑话,网络上流行的热梗,都会成为创作脚本来源。
然后利用微信对话生成工具,制作视频素材,一般是聊天截图。最后,在剪映中,导入素材剪辑出片。
其中,比较费时间的是脚本的搜集、整理,和用脚本制作微信对话图片的过程。
剪辑部分模块化,一个视频一两分钟就可搞定。
视频批量化创作的痛点,是在于脚本创作和素材的制作。
批量化的视频创作,必定是重素材而轻剪辑的。
恰逢有老板,也有批量化制作视频的需求,找到了我。
报价不算高,但还是接了下来,用一个周末的时间,从零开发了一款批量生成视频的工具。虽然不是微信对话的视频类型,但也有很大的参考意义。
下面,作为一个程序员,从方案和实施技术方面,来分析下如何用程序来批量化制作视频!
一、需求来源
批量视频生成工具,接到过两拨需求,都是做抖音的老板提供的。
其一探店类,要将多个录好的视频素材,随机时长截取片段,进行拼接。再随机指定背景音乐,合成视频。用视频时长,除以片段时长,按最少的数量,计为最大合成视频数量。
其二变脸类,将多张正脸照片,多个变脸视频素材,多个标题和描述,同屏拼接组装。再随机指定背景音乐,合成视频。素材之间拼接,增加动画过场。 至于这两种类型的视频, 如何赚到钱的, 事关老板的利益, 且和文章主题不相关,就不赘述了。
再看需求的本身,素材是文字、图片、视频和音频等类型,其实就是想将手动在剪辑工具中做的事情,将重复性的劳动工作,改用程序来实现。将剪辑的过程程序化,节省人工成本。并保证不大影响到作品的质量。
我先进行核心技术调研。用提供的素材,通过 ffmpeg (音视频处理的开源软件,可以在终端命令行或代码中函数式调用),在命令行工具中,按照需求写了一些视频的处理指令。进行了简单的测试后,发现是可以通过程序做出类似人工剪辑的效果的。证明开发这个工具,没有技术风险。便接了活,开搞!
二、需求分析
两种类型的视频制作需求,本质上很相似,拿探店类视频软件举例。大概要实现的功能是,通过选择准备的文本、图片、音乐和视频,配置片段时长、过场动画,自动「剪辑」,生成视频。
所以需求开发可以拆分两部分,
一部分是 UI 交互, 主要是界面的设计和实现,提供用户交互,导入素材,配置参数等界面能力。
另一部分是功能实现,功能也可以再细分为二:
其一,通用功能。记录用户导入的素材路径,记录用户选择的片段时长,选择的过场动画等,记录输出目录,记录和是清理视频处理过程中的临时数据。
其二,视频处理功能。对原素材,进行裁剪、截取片段、静音等处理;对多个视频进行拼接的操作;对视频和音频进行合并等等。通过一步或多步,将视频按照原素材和预设参数,加工出来。
这样分析下来,思路相对清晰。简化就是收集用户入参(视频素材和预设参数,根据入参自动化剪辑,输出视频。
初步分析结束后,接着具象化,尽量细化需求和问题。
界面分析
先设计一个软件界面。 考虑参数设置,素材导入和合成监听。边做边改,最终实现的软件界面如下: 支持的功能:
-
ffmpeg 设置 -
导出码率设置 -
输出目录设置 -
添加视频 -
清空添加的视频 -
添加的视频,显示文件名、时长 -
视频截取的片段长度选择 -
入场特效选择 -
删除导入的视频 -
背景音乐目录设置 -
合成按钮 -
合成进度条 -
信息提示框
功能分析
结合界面的设计,进一步分析要实现的产品功能:
-
打开系统文件夹,选择目录或文件 -
缓存上次打开的目录,方便下次操作 -
解析添加的视频,显示视频时长 -
合成时,先根据视频时长和片段时长,计算要合成的最大视频数 -
根据视频片段时长,依次将多个片段截取静音拼接合成 -
拼接时,添加过场动画 -
指定输出文件的分辨率 -
视频和音频合并 -
清空过程中产生的临时文件
三、技术选型
音视频处理
首先考虑音视频处理,用的 ffmpeg ,上文也提到过。完全满足需求中的音视频处理功能。
FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库 libavcodec。
FFmpeg 在 Linux 平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括 Windows、Mac OS X 等。
技术栈选择
视频批量制作的工具,定位是 PC 桌面端软件。
常见的桌面端开发技术, 主流选择是 C# 搭配 WPF, C++ 搭配 QT , Python+ PyQT 等。没有 C# 和 C++ 的技术基础和经验。所以选择用 Python 开发。
Python + PyQT 的方式, 也可以分别导出 win 系统和 macOS 系统的软件,兼容跨平台是意外收获。
需要确认一个问题,就是 Python 是否可以调用 FFmpeg ?调研发现,Python 可以通过 PyAV ,ffmpy 等库调用 ffmpeg,也可以通过subprocess 类,跨进程调用 ffmpeg。最后决定用 subprocess 的方式,对ffmpeg 命令的使用,和版本控制更灵活。
四、产品优化
产品开发完成后,测试交付。客户长时间使用后,提出几个问题。其中有两个比较有代表性,记录出来。
合成速度优化
工作室的机器,配置不会特别高。发现的问题就是,视频很大的时候,合成的过程时间会比较久。老板问能不能优化下合成技术。
研究发现,ffmpeg 默认是用 CPU ,支持 GPU 加速指令,需要有 GPU 驱动支持。紧接着验证这种加速指令的可行性,优化原有的 ffmpeg 命令,发现确实合成时间变短,有效。
如果改造原有程序,需通过一些硬件检查接口,检查机器的硬件驱动,是否支持GPU 加速。在逻辑上进行兼容性处理,如果支持 GPU 加速,调用 GPU 加速的 ffmpeg 命令,如果不支持,就还调用之前的普通命令。
机器绑定
这种工具类型的软件,如果流传出去,基本没有门槛,所有人都可以使用。
所以后来追加了机器码绑定的功能:
-
打开软件,用户得到一个机器码。 -
将机器码发送到软件运营,可以兑换激活码。 -
将兑换的激活码,填入软件的激活框中,注册激活软件,软件可正常使用。 -
激活码验证和机器硬盘 ID 及网卡 ID 绑定,机器、时间双重校验。 -
增加类似代码混淆的处理,即使软件被破译,也无法轻易重新打包。
这一部分功能设计,相对费脑。但在软件商用方面,有很大的价值。
产品通用化
又逢遇到了变脸视频批量创作的需求,便开始考虑产品的通用化。
这种事情,空想是没有用的,难不成开发一个剪映出来,什么都支持,还支持批量化脚本?
五、终极目标
公众号红利的时代,诞生出很多自动采编,自动发布文章的平台。流量主收益,赚的盆满钵满。
只需要将公众号和采编工具绑定,程序便会自动化的采集,发布文章。
上面批量剪辑的工具,只是降低了重复性剪辑的工作量。素材采编,和视频自动发布,没有解决。
素材采编,利用脚本采编热门文字、图片、视频,去水印、马赛克处理敏感部分,结合文案,生成新的视频。技术上看,也是可以实现的。 视频的自动上传,主要看视频号平台,是否会提供公开的 API 接口,如果有提供,那么就很简单了。目前还没有。
再有,现在语音合成的技术已经很成熟。再加上很多虚拟人物视频生成,仿真人视频生成的技术也逐渐丰富起来。未来这种自动化生成发布视频的流程,也很有想象空间。
越早把这个流程打通,越早收益。 24 小时自动生成发布视频,无异于拥有一台印钞机。
结尾
感谢看到这里,这篇文章更偏向意识流。
希望对二创方向的短视频创作者,一些程序思维优化自己工作路径的启发。 也希望给开发者,一个以工具人身份,加入短视频市场的一个机会。
微信:xhllsys88
- 微信号
- 微信扫一扫
- 搞钱阿蓝
- 微信扫一扫
评论