前期有些自媒体大V靠搬运一些搞笑、好玩的GIF,然后利用剪辑软件合成一段视频,再添加一个节奏感强的BGM后,上传各大自媒体平台后,能带来不错的阅读量和收益。
2
准备工作
首先,对视频和背景音乐的剪辑,这里用到了「moviepy」库,通过pip3安装到虚拟环境中。
#moviepy用于视频剪辑和背景音乐的合成、剪辑pip3installmoviepy另外,项目中需要利用「PIL」库来分析、获取GIF动画中的所有帧图片。
#将GIF图片转为帧,需要对GIF进行分析pip3installffmpeg编写脚本之前,我们需要提前准备一些GIF动画素材。当然,你也可以去爬取一些搞笑、好玩的GIF动画。
另外再准备一段BGM作为视频的背景音乐。
3
编写脚本
第一步,我们需要把每一个GIF动画转为一段视频。
由于GIF动画已经是一段包含很多帧的视频了,没法直接通过moviepy库转为一段普通视频。
所以,这里需要对GIF动画进行分析,将动画转为「静态帧图片」。
这里将所有图片的分辨率统一修改为720*1080,在转换的过程中,如果存在空白部分,就使用黑色进行填充。
在转换为视频之前,我们需要提供一个「合理的转换帧率」来保证视频播放的流畅性。由于最后需要将多段视频合成为一段视频,这里默认指定帧率为10帧/s。
GIF动画原始的帧率、播放时长等动画文件属性值可以利用「imgpy」获取到。
第二步是将所有的视频文件进行剪辑,写入一个单独的文件中。利用moviepy库下面的「VideoFileClip」可以非常快捷方便地完成这一操作。
defcompound_a_video(self,videos_path):"""合成一个视频:paramvideos_output:视频集合的完整目录:return:"""#定义一个数组L=[]forvideo_pathinvideos_path:#载入视频video=VideoFileClip(video_path)#添加到数组L.append(video)#拼接视频final_clip=concatenate_videoclips(L)#生成目标视频文件final_clip.to_videofile(self.video_output_temp,fps=self.fps,remove_temp=False)最后一步是往视频中添加背景音乐。
首先是通过AudioFileClip和VideoFlieClip获取到视频文件和音频文件的播放时长,对播放时长较长的文件进行截取处理。
结果结论
以上的脚本会对指定文件夹的的GIF动画文件分别生成一段普通视频,然后把所有的视频合成一段视频,然后再添加一段BGM背景音乐,最后写入到一个新的视频文件中,如此,就完成了制作一个GIF视频的操作。
当然,本文只是提供一个思路,让Python爬取一些有趣好玩的GIF动画进而批量做成视频,上传各大自媒体平台,应该也能获取到不错的阅读量。