快捷搜索:  汽车  科技

学python剪辑:解放双手提高生产力

学python剪辑:解放双手提高生产力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

作者:豆豆

来源: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') 制作视频

有了以上的基础,就可以开始我们的视频制作了,这次使用的是剪映软件。

这里你需要熟悉一下剪映的操作步骤,基本分为三块:将指定图片拖入视频轨道、调整视频时长、导出。

最终效果如下:

学python剪辑:解放双手提高生产力(1)

# 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 值来控制制作视频的个数。

猜您喜欢: