使用 Python 腳本輕松剪輯/分割大視頻
有時(shí)您可能有一個(gè)大的視頻文件,并且您希望將該視頻拆分為許多較小的視頻,這些視頻的開始和結(jié)束時(shí)間由您自己指定。當(dāng)然,您不想使用視頻編輯器手動(dòng)完成,因?yàn)檫@將花費(fèi)很長時(shí)間。
例如,當(dāng)您有一個(gè) 10 分鐘的視頻時(shí),您想從中創(chuàng)建 3 個(gè)較小的剪輯,例如第一個(gè)在 1:20 到 2:20 之間,第二個(gè) 在 3:00 到 4:00 之間,最后一個(gè)在 7:10 到 8:15 之間。這樣的事情在理論上很難,但對于 Python 及其驚人的工具來說卻不是!
幸運(yùn)的是,我們可以幫助您在一分鐘內(nèi)完成任務(wù)。
要求
首先,確保在 Windows 或 Linux 發(fā)行版上安裝了 Python 3,并確保pip已安裝。然后,運(yùn)行以下pip命令來安裝所需的 Python 模塊來完成這項(xiàng)工作,即moviepy:
linuxmi@linuxmi:~/www.linuxmi.com$ pip3 install moviepy --user
然后,在當(dāng)前工作目錄中創(chuàng)建 2 個(gè)文件:
- linuxmi_split.py: 稍后將包含 Python 代碼。
- linuxmi_times.txt:其中應(yīng)該包含您想要的剪輯的開始和結(jié)束時(shí)間,我們稍后會(huì)填寫。
假設(shè)您要剪輯的原始視頻長 20 分鐘,并且您想創(chuàng)建3 個(gè)較小的視頻,第一個(gè)是從開始到 1 分鐘(從 0 到 50 秒),第二個(gè)介于1:00 和 1:30,第三個(gè)在1:40 和 3:00之間)。然后,您的linuxmi_times.txt文件內(nèi)容應(yīng)如下所示:
0-50
60-90
100-180
請注意我們需要如何將格式從1:00轉(zhuǎn)換為60(始終以秒為單位)。
您可以在該文件中添加任意數(shù)量的行。例如,如果你想創(chuàng)建 100 個(gè)更小的剪輯,那么你可以做到。只需確保您遵循完全相同的格式:(start_time-end_time中間沒有空格,并且每個(gè)空格都在自己的單獨(dú)行中)。
Python 腳本
現(xiàn)在,進(jìn)入重要部分,將以下代碼放入Python 文件linuxmi_split.py:
#!/usr/bin/env python
from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
# 替換下面的文件名。
required_video_file = "www.linuxmi.com.mp4"
with open("linuxmi_times.txt") as f:
times = f.readlines()
times = [x.strip() for x in times]
for time in times:
starttime = int(time.split("-")[0])
endtime = int(time.split("-")[1])
ffmpeg_extract_subclip(required_video_file, starttime, endtime, targetname=str(times.index(time)+1)+".mp4")
將www.linuxmi.com.mp4您替換為你擁有的視頻文件(必須在同一當(dāng)前工作目錄中)。如果您嘗試剪輯其他格式,例如.webm或者 .avi,則只需將Python 腳本中.mp4所有出現(xiàn)的替換為您想要的格式。(其中只有兩個(gè);在您輸入的文件名和代碼的最后一行)。
現(xiàn)在,運(yùn)行 Python 代碼:
linuxmi@linuxmi:~/www.linuxmi.com$ python3 linuxmi_split.pys
輸出:
Moviepy - Running:
>>> "+ " ".join(cmd)
Moviepy - Command successful
Moviepy - Running:
>>> "+ " ".join(cmd)
Moviepy - Command successful
Moviepy - Running:
>>> "+ " ".join(cmd)
Moviepy - Command successful
并看到 3 個(gè)視頻文件已創(chuàng)建并正常工作!
結(jié)論
Python 是一種令人驚嘆且有效的語言,可以執(zhí)行任何類型的腳本。節(jié)省了工作的大量時(shí)間。例如,此任務(wù)有助于管理您的社交媒體活動(dòng),或者如果您想保留較小的較大視頻片段,你也可能會(huì)出于其他目而喜歡。