可能是闲着太无聊,然而复习是不可能复习的,就做了一个这个玩意儿,改天进军UC和百家号(不会真有人用吧)
先看看效果
自动生成的营销号视频https://www.zhihu.com/video/1235535585877389312
资源准备
分析一下平时能刷到的垃圾视频,可以发现有几个小特征:
1. 文本格式固定,而且内容没有什么意义
2. 语音是女性
3. 视频一般都是一些什么自然风光,和文本也没有什么关联
4. 有一个大家一听就知道是营销号的 BGM
这样的话,就可以开始找素材了 我们上B站找一段自然风光的拍摄视频
- 上B站找一段自然风光的拍摄视频(自己去找一个两分钟左右的,太短了不行,太长了没必要)(下文中用的video_ori.mp4)
- 找到营销号用的BGM(项目的Github上有我用的)(下文中的bgm.mp3)
- 注册百度开发者 (为了使用他们免费的文字转语音API)
- 生成营销号视频文案(等下你就知道了)
让我们现在就开始做吧(假设你已经有了背景视频和BGM)
生成营销号视频文案
def
是不是感觉很熟悉,使用
print
放一段生成品上来
健身伤害身体是怎么回事呢?健身相信大家一定很熟悉,但是健身伤害身体是怎么回事呢,下面就让小编来带着大家一起了解吧! 健身伤害身体,其实就是运动过度肌肉会损伤,大家可能会很惊讶健身怎么会伤害身体呢?但事实就是这样,小编也感到非常惊讶。 这就是关于健身伤害身体的事情了,大家有什么想法呢,欢迎在评论区告诉小编来一起讨论哦!
文本生成语音
首先需要安装 baidu-aip 库 (SDK),直接pip install baidu-aip就好了
申请百度语音识别接入的开发者账号,网址:百度开发者,目的是为了获取AppID,API Key,Secret Key
这里使用的就是最简单的合成方法,具体使用可以去看他们的文档。免费生成中文语音可以用50000次,还是良心的
from
我直接保存到代码文件目录的sound.mp3,可以自己修改一下各项参数。包括语音的速度,语调,音量等等。
语音+bgm+背景视频 融合
这个地方我踩了好多坑,不知道为什么我用subprocess调用ffmpeg总是出毛病,pydub库也总是报json文件错误。所以我选择了moviepy库
moviepy官方文档 这个库还是蛮好用的,就是网上的中文文案还在制作中,很多东西还得去官方文档搜英文说明。
先把代码放一下:
def
应该很容易读懂,构建两个AudioFileClip对象,作为bgm和语音;构建一个VideoFileClip作为视频图像。然后两个音频融合,BGM先播放,语音2秒后播放,再把视频剪成参数中的time秒,这个时间和视频剪辑的函数下面会说到:
视频剪辑:
def
没什么技术含量了
获取MP3的长度:
def
整体代码:
from
就这样了8