解放双手,提高生产力,看我如何用Python实现自动化剪视频
作者:豆豆
来源:Python 技术
人类和动物最本质的区别就是人类懂的制造并使用工具,这是由上古时代一直延续至今的基因所决定的。
前段时间朋友的一个业务需要大量的原创短视频,问我是否可以帮忙弄下,我了解了具体需求之后发现不需要很高质量的内容,操作也不是很复杂,完全可以通过 Python 实现自动化操作,也是就把这个事给应承了下来。
我们知道 PyAutoGUI 是一个通过编程方式来控制鼠标和键盘的 Python 库,那么就从它身上下手了。 安装
Win 和 macOS 的安装命令有所不同。 ## windows py -m pip install pyautogui ## macOS python3 -m pip install pyautogui 屏幕位置
屏幕上的位置由笛卡尔坐标表示,X 坐标从左上角的 0 开始,向右增加,与数学不同,Y 坐标从左上角 0 开始,向下增加。
因此左上角的像素位于坐标(0,0),如果你的屏幕分辨率为 1920 x 1080,则右下角的像素将为(1919, 1079),因为像素是从坐标 0 开始的。屏幕分辨率大小可以通过 size() 函数获得,当前鼠标位置则可以通过 position() 函数获得。 0,0 X increases --> +---------------------------+ | | Y increases | | | | 1920 x 1080 screen | | | | V | | | | +---------------------------+ 1919, 1079 import pyautogui x, y = pyautogui.position() print(x, y) x, y = pyautogui.size() print(x, y) ## 输出结果 545 437 1440 900 鼠标移动
鼠标的移动则分为绝对坐标移动和相对坐标移动。
比如你想将鼠标移动到坐标(100,100)处,直接调用 moveTo 函数即可。 import pyautogui # 将鼠标移动至(100,200)坐标处 pyautogui.moveTo(100, 200) # 将鼠标移动至(100,500 坐标处 pyautogui.moveTo(None, 500) # 将鼠标移动至(600,500)坐标处 pyautogui.moveTo(600, None) # 将鼠标移动至(100,200)坐标处,该移动过程是一个持续性过程,耗时 2 秒 pyautogui.moveTo(100, 200, 2)
而 move 函数则是简单的相对移动。 import pyautogui # 将鼠标移动至(100,200)坐标处 pyautogui.moveTo(100, 200) # 将鼠标向下移动 50 像素 pyautogui.move(0, 50) # 将鼠标向左移动 30 像素 pyautogui.move(-30, 0) # 将鼠标向左移动 30 像素 pyautogui.move(-30, None) 鼠标拖拽
和鼠标移动相比,鼠标拖拽同样分为绝对坐标拖拽和相对坐标拖拽。同样 dragTo 函数使用绝对坐标,drag 使用相对坐标。 import pyautogui # 按住鼠标左键将目标拖拽至(100,200)坐标处 pyautogui.dragTo(100, 200, button="left") # 按住鼠标左键将目标拖拽至(100,200)坐标处,该移动过程是一个持续性过程,耗时 2 秒 pyautogui.dragTo(100, 200, 2, button="left") # 按住鼠标右键将目标向右移动 30 个像素,该移动过程是一个持续性过程,耗时 2 秒 pyautogui.drag(30, 0, 2, button="right") 鼠标点击
我们可以通过 click() 函数模拟鼠标单击。 import pyautogui # 在当前位置单击左键 pyautogui.click() # 将鼠标移动至(100,200)坐标处,然后单击左键 # 但是这个方法有点奇怪,有时候会失灵,可以使用 moveTo + click pyautogui.click(x=100, y=200) # 在当前位置单双击左键 pyautogui.doubleClick() 控制键盘
键盘控制一般常用的就是输入字符串,按下某个按键以及组合键。 import pyautogui # 输入 "Hello World" pyautogui.write("Hello world!") # 按下 enter / F1 键 pyautogui.press("enter") pyautogui.press("f1") # 组合按键 command + a pyautogui.hotkey("command", "a") 制作视频
有了以上的基础,就可以开始我们的视频制作了,这次使用的是剪映软件。
这里你需要熟悉一下剪映的操作步骤,基本分为三块:将指定图片拖入视频轨道、调整视频时长、导出。
最终效果如下:
# coding=utf-8 import time import pyautogui # 将图片拖入轨道 def drag_img_to_track(): # 选中图片 pyautogui.moveTo(170, 270) pyautogui.doubleClick() # 拖拽图片至轨道 pyautogui.dragTo(120, 600, 1, button="left") # 调整视频时长 def drag_img_to_3_min(): # 选中轨道中的第一张图 pyautogui.moveTo(125, 600) pyautogui.click() # 拖拽至第三分钟 pyautogui.moveTo(135, 600) pyautogui.dragTo(700, 600, 1, button="left") # 删除旧的素材 def delete_top_img(): # 删除轨道中的第二张图片 pyautogui.moveTo(300, 160) pyautogui.doubleClick() pyautogui.press("backspace") # enter yes pyautogui.moveTo(650, 470) time.sleep(0.5) pyautogui.click() # 导出 def export(name): pyautogui.moveTo(126, 600) pyautogui.click() pyautogui.hotkey("command", "e") pyautogui.write(name) time.sleep(1) pyautogui.moveTo(800, 393) pyautogui.click() time.sleep(20) pyautogui.click() index = 0 count = 2 while index < count: drag_img_to_track() drag_img_to_3_min() delete_top_img() export(str(index)) time.sleep(2) index += 1 print("end..." + str(index)) 总结
今天我们通过 pyautogui 实现了全自动制作视频,我们只需要将素材导入到剪映中即可。
由于 gif 大小限制,只录制了一小部分,你可以通过调整主函数中的 count 值来控制制作视频的个数。
华为将发布新款折叠屏手机MateXs2,折叠方案引关注新京报贝壳财经讯(记者许诺)4月22日上午,华为终端官方微博宣布将于4月28日举办华为折叠旗舰及全场景新品发布会,发布新款折叠旗舰华为MateXs2。华为常务董事终端BGCEO余承
如何看待realme真我Q5系列1199元的起售价,这个定价策略怎样?4月20日1400,realme真我Q5系列正式发布,本次共带来3个版本真我Q5Pro,搭载80W超速闪充5000mAh超大电池骁龙8705G处理器120Hz三星E4旗舰屏,同时拥
RedmiNote12系列入网首次搭载旗舰级芯片消息称此次公布的两款机型均为RedmiNote12Pro系列的高配版,具体规格如下RedmiNote12Pro型号为22041216C,正面采用一块6。6英寸屏幕,内置电池额定容量
机器人在线特约系列之一国产机器人快换盘到底安不安全?机器人快换盘,行业内又叫换枪盘,快换装置,快速更换器快换器等,它是应用在工业机器人末端的一种柔性连接工具,是工业机器人应用系统中非常重要的组成部分,其作用是让单台工业机器人在应用过
地平线来了,领航辅助驾驶壁垒破了万博发自副驾寺智能车参考公众号AI4Auto高速领航辅助,高速环路上车辆自主驾驶变道避让进出匝道的智能驾驶方案。刚刚迎来一个新玩家,还是软硬结合的那种。而且,这次的玩家有点特别,不
爱奇艺换LOGO了一提到科技或互联网公司,你首先联想到的颜色是什么?相信大多数人都会联想到蓝色。虽然蓝色占据了大多数互联网大厂的品牌主色调,但对于用户来说,这些颜色相似的产品或服务有时候真的是很难让
起底乐视贾跃亭为什么造不出法拉第未来FF91,分析始末目前身居美国的贾跃亭先后创办了乐视电视,乐视手机,乐视影业,直到后来的乐视汽车。乐视超级电视售价很低,买电视还送三年会员既获得了关注度,又提升了销量,后来2016年乐视手机发布销量
Alphabet(字母控股)旗下子公司谷歌是一家美国跨国科技公司,专注于人工智能搜索引擎在线广告云计算计算机软件量子计算电子商务和消费电子产品。由于在人工智能领域的市场主导地位数据收集和技术优势,它被称为世界上最强大的
贾跃亭FF91不畏人言,一切都会如约而至最近关于贾跃亭以及法拉第未来的各种言论接踵而至,真真假假,虚虚实实。可谓是好不热闹,总有一种墙倒众人推的感觉。2022年对于贾跃亭来说可谓是喜忧参半。还记得2022年2月24日FF
首个云南籍数字人云诗洋诞生掌上春城讯日前,由云南升维科技研发出品的云南首个虚拟数字人云诗洋正式发布。云诗洋的研发核心技术创意环节都由云南本土科技团队完成,全链条自主可控。未来云诗洋将应用于云南公益宣传直播带
一个数学博士的深度学习方法(第7部分)到目前为止,我们已经讨论了MLPCNN和RNN架构。这些是判别模型,即可以做出预测的模型。前面,我们连载了六次数学博士的深度学习方法(点击直达)一个数学博士的深度学习方法(第6部分