<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          解放雙手,提高生產(chǎn)力,看我如何用 Python 實(shí)現(xiàn)自動(dòng)化剪視頻

          共 5974字,需瀏覽 12分鐘

           ·

          2021-07-05 15:34

          文 | 豆豆

          來(lái)源:Python 技術(shù)「ID: pythonall」

          人類(lèi)和動(dòng)物最本質(zhì)的區(qū)別就是人類(lèi)懂的制造并使用工具,這是由上古時(shí)代一直延續(xù)至今的基因所決定的。

          前段時(shí)間朋友的一個(gè)業(yè)務(wù)需要大量的原創(chuàng)短視頻,問(wèn)我是否可以幫忙弄下,我了解了具體需求之后發(fā)現(xiàn)不需要很高質(zhì)量的內(nèi)容,操作也不是很復(fù)雜,完全可以通過(guò) Python 實(shí)現(xiàn)自動(dòng)化操作,也是就把這個(gè)事給應(yīng)承了下來(lái)。

          我們知道 PyAutoGUI 是一個(gè)通過(guò)編程方式來(lái)控制鼠標(biāo)和鍵盤(pán)的 Python 庫(kù),那么就從它身上下手了。

          安裝

          Win 和 macOS 的安裝命令有所不同。

          ## windows
          py -m pip install pyautogui

          ## macOS
          python3 -m pip install pyautogui

          屏幕位置

          屏幕上的位置由笛卡爾坐標(biāo)表示,X 坐標(biāo)從左上角的 0 開(kāi)始,向右增加,與數(shù)學(xué)不同,Y 坐標(biāo)從左上角 0 開(kāi)始,向下增加。

          因此左上角的像素位于坐標(biāo)(0,0),如果你的屏幕分辨率為 1920 x 1080,則右下角的像素將為(1919, 1079),因?yàn)橄袼厥菑淖鴺?biāo) 0 開(kāi)始的。屏幕分辨率大小可以通過(guò) size() 函數(shù)獲得,當(dāng)前鼠標(biāo)位置則可以通過(guò) position() 函數(shù)獲得。

          0,0       X increases -->
          +---------------------------+
          |                           | Y increases
          |                           |     |
          |   1920 x 1080 screen      |     |
          |                           |     V
          |                           |
          |                           |
          +---------------------------+ 19191079
          import pyautogui

          x, y = pyautogui.position()
          print(x, y)

          x, y = pyautogui.size()
          print(x, y)

          ## 輸出結(jié)果
          545 437
          1440 900

          鼠標(biāo)移動(dòng)

          鼠標(biāo)的移動(dòng)則分為絕對(duì)坐標(biāo)移動(dòng)和相對(duì)坐標(biāo)移動(dòng)。

          比如你想將鼠標(biāo)移動(dòng)到坐標(biāo)(100,100)處,直接調(diào)用 moveTo 函數(shù)即可。

          import pyautogui

          # 將鼠標(biāo)移動(dòng)至(100,200)坐標(biāo)處
          pyautogui.moveTo(100200)   

          # 將鼠標(biāo)移動(dòng)至(100,500 坐標(biāo)處
          pyautogui.moveTo(None500)  

          # 將鼠標(biāo)移動(dòng)至(600,500)坐標(biāo)處
          pyautogui.moveTo(600None)

          # 將鼠標(biāo)移動(dòng)至(100,200)坐標(biāo)處,該移動(dòng)過(guò)程是一個(gè)持續(xù)性過(guò)程,耗時(shí) 2 秒
          pyautogui.moveTo(1002002)

          而 move 函數(shù)則是簡(jiǎn)單的相對(duì)移動(dòng)。

          import pyautogui

          # 將鼠標(biāo)移動(dòng)至(100,200)坐標(biāo)處
          pyautogui.moveTo(100200)

          # 將鼠標(biāo)向下移動(dòng) 50 像素
          pyautogui.move(050)

          # 將鼠標(biāo)向左移動(dòng) 30 像素
          pyautogui.move(-300)

          # 將鼠標(biāo)向左移動(dòng) 30 像素
          pyautogui.move(-30None)

          鼠標(biāo)拖拽

          和鼠標(biāo)移動(dòng)相比,鼠標(biāo)拖拽同樣分為絕對(duì)坐標(biāo)拖拽和相對(duì)坐標(biāo)拖拽。同樣 dragTo 函數(shù)使用絕對(duì)坐標(biāo),drag 使用相對(duì)坐標(biāo)。

          import pyautogui

          # 按住鼠標(biāo)左鍵將目標(biāo)拖拽至(100,200)坐標(biāo)處
          pyautogui.dragTo(100200, button='left')     

          # 按住鼠標(biāo)左鍵將目標(biāo)拖拽至(100,200)坐標(biāo)處,該移動(dòng)過(guò)程是一個(gè)持續(xù)性過(guò)程,耗時(shí) 2 秒
          pyautogui.dragTo(1002002, button='left')  

          # 按住鼠標(biāo)右鍵將目標(biāo)向右移動(dòng) 30 個(gè)像素,該移動(dòng)過(guò)程是一個(gè)持續(xù)性過(guò)程,耗時(shí) 2 秒
          pyautogui.drag(3002, button='right')

          鼠標(biāo)點(diǎn)擊

          我們可以通過(guò) click() 函數(shù)模擬鼠標(biāo)單擊。

          import pyautogui

          # 在當(dāng)前位置單擊左鍵
          pyautogui.click()

          # 將鼠標(biāo)移動(dòng)至(100,200)坐標(biāo)處,然后單擊左鍵
          # 但是這個(gè)方法有點(diǎn)奇怪,有時(shí)候會(huì)失靈,可以使用 moveTo + click
          pyautogui.click(x=100, y=200)

          # 在當(dāng)前位置單雙擊左鍵
          pyautogui.doubleClick()

          控制鍵盤(pán)

          鍵盤(pán)控制一般常用的就是輸入字符串,按下某個(gè)按鍵以及組合鍵。

          import pyautogui

          # 輸入 “Hello World”
          pyautogui.write('Hello world!')

          # 按下 enter / F1 鍵 
          pyautogui.press('enter')
          pyautogui.press('f1')

          # 組合按鍵 command + a
          pyautogui.hotkey('command''a')

          制作視頻

          有了以上的基礎(chǔ),就可以開(kāi)始我們的視頻制作了,這次使用的是剪映軟件。

          這里你需要熟悉一下剪映的操作步驟,基本分為三塊:將指定圖片拖入視頻軌道、調(diào)整視頻時(shí)長(zhǎng)、導(dǎo)出。

          最終效果如下:

          # coding=utf-8
          import time
          import pyautogui

          # 將圖片拖入軌道
          def drag_img_to_track():
              # 選中圖片
              pyautogui.moveTo(170270)
              pyautogui.doubleClick()
              # 拖拽圖片至軌道
              pyautogui.dragTo(1206001, button='left')

          # 調(diào)整視頻時(shí)長(zhǎng)
          def drag_img_to_3_min():
              # 選中軌道中的第一張圖
              pyautogui.moveTo(125600)
              pyautogui.click()
              # 拖拽至第三分鐘
              pyautogui.moveTo(135600)
              pyautogui.dragTo(7006001, button='left')

          # 刪除舊的素材
          def delete_top_img():
              # 刪除軌道中的第二張圖片
              pyautogui.moveTo(300160)
              pyautogui.doubleClick()
              pyautogui.press("backspace")

              # enter yes
              pyautogui.moveTo(650470)
              time.sleep(0.5)
              pyautogui.click()

          # 導(dǎo)出
          def export(name):
              pyautogui.moveTo(126600)
              pyautogui.click()

              pyautogui.hotkey('command''e')
              pyautogui.write(name)
              time.sleep(1)
              pyautogui.moveTo(800393)
              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))

          總結(jié)

          今天我們通過(guò) pyautogui 實(shí)現(xiàn)了全自動(dòng)制作視頻,我們只需要將素材導(dǎo)入到剪映中即可。

          由于 gif 大小限制,只錄制了一小部分,你可以通過(guò)調(diào)整主函數(shù)中的 count 值來(lái)控制制作視頻的個(gè)數(shù)。

          PS公號(hào)內(nèi)回復(fù)「Python」即可進(jìn)入Python 新手學(xué)習(xí)交流群,一起 100 天計(jì)劃!


          老規(guī)矩,兄弟們還記得么,右下角的 “在看” 點(diǎn)一下,如果感覺(jué)文章內(nèi)容不錯(cuò)的話(huà),記得分享朋友圈讓更多的人知道!

          代碼獲取方式

          識(shí)別文末二維碼,回復(fù):210701

          瀏覽 77
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  人人看,人人摸 | 日韩无码高清视频 | 天天操天天摸天天撸 | 日韩成人一级片 | 日韩视频高清无码 |