最近在抖音上看到一个很有意思的视频,这个视频里面是通过写一个程序来操控数字的间隔,从而达到一种看到美女跳舞的效果。由于我对这个效果挺中意的,加上昨晚睡觉听到了一首 Michael Jackson的dangerous,所以我就琢磨着也来做一个这样的程序。不仅仅是想做个这样的代码,更是想在看一遍Michael Jackson的太空步。
项目环境
语言: Python3
工具:Pycharm
工具准备
ffmpeg,刚才说的处理视频的程序,可去官网下载https://www.ffmpeg.org/download.html#build-windows。
PIL 包:Python 的图形处理库。
numpy 包:Python 的一种开源的数值计算扩展,可用来存储和处理大型矩阵。
程序结构
我写了三个 py 文件,一个用来把视频转换为图片,一个用来把图片转为编码,最后一个来做最后的执行。
视频处理
下面的 ffmpeg 程序后面的几个参数我解释一下,-i 后面需要指定输入的文件名。-f 指定格式(音频或视频格式)。-vframes 设置转换多少桢(frame)的视频。-ss 从指定的时间(s)截图。
用这个函数获取视频的每帧图片,给出的视频存放路径和获取图片的路径调用此函数就可以获取视频每帧的图片,我设置了每 0.1 秒保存一张图片。
图片转换
用 convert('L') 把图片转换为为二值图像,非黑即白。但是它每个像素用 8 个bit 表示,0 表示黑,255 表示白。
执行这个函数不会有数据返回,用下一个 go.py 文件导入调用才行。
控制输出
调用上个函数 image2txt,图片转换为编码。
通过 os.system('cls') 控制屏幕的及时清除,以便及时显示下一帧图片的编码。
给出编码文件路径和图片路径,执行函数。
收集完视频图片后在 cmd 控制台执行 go.py 文件,编码出现后点击视频播放就能达到刚才视频中的效果了。
你们可以用自己的视频去做,视频背景固定的话效果更好。好了,方法教给大家了,视频素材可以优化,大家可以自己收集好的视频素材,发到朋友圈,让代码骚动起来!
另外解释一下 ffmpeg:
ffmpeg:一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以用来把视频转化为图片,在用 PIL 库把图片处理成编码,这样编码就可以躁动与跳动起来了!
想学Python或者对Python感兴趣的老铁,可以加群571799375,群里有适合Python初学者学习的资料(2018最新版Python资料),免费送给大家!
本文来自网络,如有侵权,请联系小编删除!
网友评论