Python輕松搞定視頻剪輯重復性工作問題
01 安裝
對視頻進行批量剪輯,需要三個庫,分別是Moviepy
庫和Pathlib
庫,還有Tkinter
庫。
首先我們對這兩個庫進行安裝,命令如下:
pip install moviepy pip install pathlib
02 剪輯
上面我們已經安裝好所需要的庫瞭,現在開始來對視頻進行剪輯操作。
視頻剪輯:
Moviepy
庫有一個VideoFileClip
函數,將視頻傳入這個函數後,會返回一個VideoFileClip
實例對象,該對象可以被subclip()
進行剪輯,
代碼如下:
from moviepy.editor import * clip = VideoFileClip('1.mp4').subclip(2,4) # 將剪出的視頻進行存儲 clip.write_videofile('2.mp4')
視頻合並:
第一步跟視頻剪輯一樣,需要將合並的視頻傳入VideoFileClip
函數,使其成為一個VideoFileClip
實例對象。然後調用Concatenate_videoclips
函數,將所有VideoFileClip
實例對象的視頻進行合並,最後進行保存。
代碼如下:
from moviepy.editor import VideoFileClip,concatenate_videoclips clip_1 = VideoFileClip('1.mp4') clip_2 = VideoFileClip('2.mp4') file = concatenate_videoclips([clip_1,clip_2]) file.write_videofile('3.mp4')
視頻轉化為gif:
將視頻轉化成gif
非常簡單,當視頻經過VideoFileClip
函數處理成為VideoFileClip
實例對象後,即可直接保存為gif
格式。
代碼如下:
from moviepy.editor import * file = VideoFileClip(k) file.write_gif(f'{name}.gif')
批量:
上面隻是對單個視頻,或者個別文件夾的視頻進行操作,但是我們想要的是批量進行剪輯、合並和轉化。這裡,Pathlib
庫給我們提供瞭兩個Path
和PurePath
函數,可以很方便的找到電腦中mp4文件,
代碼如下:
files = [] p = Path(src_path) for x in p.iterdir(): if PurePath(x).match('*.mp4'): files.append(x)
之後和上面的代碼進行合並,即可實現批量獲取的功能 。
GUI界面:
程序的功能已經全部實現瞭,我們現在需要對該程序進行界面設計,這裡我們使用的Tkinter
庫來進行界面設計,
代碼如下:
# 創建窗口 root = tk.Tk() # 標題 root.title('視頻剪輯') # 窗口大小 root.geometry('450x200') # 窗口的初始位置 root.geometry('+400+200') # 標簽的控件 label_1 = tk.Label(root, text='輸入文件地址', font=(r'蘇新詩柳楷簡.ttf', 16), fg='black') label_1.grid() label_2 = tk.Label(root, text='輸入剪輯時間', font=(r'蘇新詩柳楷簡.ttf', 16), fg='black') label_2.grid() # 輸入框 enter_1 = tk.Entry(root, font=(r'蘇新詩柳楷簡.ttf', 16)) enter_2 = tk.Entry(root, font=(r'蘇新詩柳楷簡.ttf', 16)) # 設置輸入框的位置 enter_1.grid(row=0, column=1) enter_2.grid(row=1, column=1) # 按鈕 button = tk.Button(root, text='開始', font=(r'蘇新詩柳楷簡.ttf', 16), command=jianjivideo) # 設置按鈕的位置 button.grid(row=1, column=2) # 顯示窗口 root.mainloop()
小結:
本文詳細介紹瞭,如何使用Moviepy
庫和Pathlib
庫,還有Tkinter
庫,做一個批量處理視頻的軟件。
有興趣的同學可以自己復現一下代碼進行學習。
到此這篇關於Python輕松搞定視頻剪輯重復性工作問題的文章就介紹到這瞭,更多相關Python解決視頻剪輯重復性工作問題內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python用moviepy對視頻進行簡單的處理
- Python多個MP4合成視頻的實現方法
- python編程簡單幾行代碼實現視頻轉換Gif示例
- python基於moviepy實現音視頻剪輯
- Python竟然能剪輯視頻