当前位置: 首页 > 后端技术 > Python

解放双手,提高生产力,看我如何用 Python 实现自动化剪视频

时间:2023-03-25 23:06:02 Python

解放双手,提高生产力,看我如何用Python自动切视频前段时间朋友的生意需要很多原创短视频,问我能不能帮忙。了解具体需求后,发现不需要优质内容,操作也不是很复杂。可以通过Python实现自动化,也同意了这件事情。我们知道PyAutoGUI是一个用于以编程方式控制鼠标和键盘的Python库,那么让我们从它开始吧。安装Win和macOS的安装命令不同。##windowspy-mpipinstallpyautogui##macOSpython3-mpipinstallpyautogui屏幕位置屏幕上的位置用笛卡尔坐标表示,X坐标从左上角0开始向右递增,不像数学,Y坐标从左上角开始,从0开始,向下递增。因此,左上角的像素位于坐标(0,0),如果您的屏幕分辨率为1920x1080,则右下角的像素将为(1919,1079),因为像素从坐标0开始。屏幕分辨率的大小可以通过size()函数获取,当前鼠标位置可以通过position()函数获取。0,0X增加-->+----------------------------+||Y增加||||1920x1080屏幕||||V||||+------------------------+1919,1079importpyautoguix,y=pyautogui.position()print(x,y)x,y=pyautogui.size()print(x,y)##输出结果5454371440900鼠标移动鼠标的移动分为绝对坐标移动和相对坐标移动。比如要将鼠标移动到坐标(100,100),直接调用moveTo函数即可。importpyautogui#将鼠标移动到(100,200)坐标pyautogui.moveTo(100,200)#将鼠标移动到(100,500坐标)pyautogui.moveTo(None,500)#将鼠标移动到(600,500))coordinatespyautogui.moveTo(600,None)#移动鼠标到(100,200)坐标,移动过程是一个连续的过程,需要2秒pyautogui.moveTo(100,200,2)而move函数是一个简单的相对运动。importpyautogui#将鼠标移动到坐标(100,200)pyautogui.moveTo(100,200)#将鼠标向下移动50像素pyautogui.move(0,50)#将鼠标向左移动30像素pyautogui.move(-30,0)#将鼠标向左移动30个像素pyautogui.move(-30,None)与鼠标移动相比,鼠标拖动也分为绝对坐标拖动和相对坐标拖动。同样,dragTo函数使用的是绝对坐标,drag使用的是相对坐标。importpyautogui#按住鼠标左键拖动目标到(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')mouseclick我们可以通过click()函数来模拟鼠标点击。importpyautogui#在当前位置点击左键pyautogui.click()#将鼠标移动到(100,200)坐标,然后点击左键#但是这个方法有点奇怪,有时候会失败,你可以使用moveTo+clickpyautogui.click(x=100,y=200)#在当前位置单次双击左键pyautogui.doubleClick()控制键盘键盘控件一般用于输入字符串,按下某个按钮和键的组合。importpyautogui#Input"HelloWorld"pyautogui.write('Helloworld!')#Pressenter/F1keypyautogui.press('enter')pyautogui.press('f1')#组合键命令+apyautogui.hotkey('command','a')制作视频有了上面的基础,我们就可以开始我们的视频制作了,这次要用到剪辑软件。这里需要大家熟悉剪辑的操作步骤,基本分为三个部分:将指定图片拖入视频轨道,调整视频时长,导出。#coding=utf-8importtimeimportpyautogui#将图片拖入轨道defdrag_img_to_track():#选择图片pyautogui.moveTo(170,270)pyautogui.doubleClick()#将图片拖入轨道pyautogui.dragTo(120,600,1,button='left')#调整视频时长defdrag_img_to_3_min():#选择轨道中的第一张图片pyautogui.moveTo(125,600)pyautogui.click()#拖到第三分钟pyautogui.moveTo(135,600)pyautogui.dragTo(700,600,1,button='left')#删除旧素材defdelete_top_img():#删除轨道中的第二张图片pyautogui.moveTo(300,160)pyautogui.doubleClick()pyautogui.press("backspace")#输入是pyautogui.moveTo(650,470)time.sleep(0.5)pyautogui.click()#exportdefexport(name):pyautogui.moveTo(126,600)pyautogui.点击()pyautogui.hotkey('command','e')pyautogui.write(name)time.sleep(1)pyautogui.moveTo(800,393)pyautogui.click()time.sleep(20)pyautogui.click()index=0count=2whileindex