筆記
MoviePy 最近升級到 v2.0,引入了重大突破性變化。您可以在此處查閱最新的 v1 文檔,但請注意 v1 不再維護。有關如何將代碼從 v1 更新到 v2 的更多信息,請參閱本指南。
MoviePy(此處的線上文件)是一個用於影片編輯的 Python 庫:剪切、串聯、標題插入、視訊合成(又稱非線性編輯)、視訊處理和創建自訂效果。
MoviePy 可以讀取和寫入所有最常見的音訊和視訊格式,包括 GIF,並在 Windows/Mac/Linux 上運行,使用 Python 3.9+。
在此範例中,我們打開一個視訊文件,選擇 10 到 20 秒之間的子剪輯,在螢幕中央新增標題,然後將結果寫入新文件:
from moviepy import VideoFileClip , TextClip , CompositeVideoClip
# Load file example.mp4 and keep only the subclip from 00:00:10 to 00:00:20
# Reduce the audio volume to 80% of its original volume
clip = (
VideoFileClip ( "long_examples/example2.mp4" )
. subclipped ( 10 , 20 )
. with_volume_scaled ( 0.8 )
)
# Generate a text clip. You can customize the font, color, etc.
txt_clip = TextClip (
font = "Arial.ttf" ,
text = "Hello there!" ,
font_size = 70 ,
color = 'white'
). with_duration ( 10 ). with_position ( 'center' )
# Overlay the text clip on the first video clip
final_video = CompositeVideoClip ([ clip , txt_clip ])
final_video . write_videofile ( "result.mp4" )
在底層,MoviePy 會匯入媒體(視訊幀、圖像、聲音)並將它們轉換為 Python 物件(numpy 數組),以便每個像素都可以訪問,並且只需幾行程式碼即可定義視訊或音訊效果(請參閱內建效果範例)。
該庫還提供了將剪輯混合在一起的方法(串聯、並排播放剪輯或以透明度相互疊加播放剪輯等)。然後,最終剪輯被編碼回 mp4/webm/gif/等。
這使得 MoviePy 非常靈活且易於使用,儘管由於資料匯入/匯出操作較繁重而比直接使用 ffmpeg 慢。
使用pip install moviepy
安裝 moviepy 。有關其他安裝選項,例如自訂 FFMPEG 或預覽,請參閱本節。對於開發,請在本機複製該儲存庫並使用pip install -e .
每次推送到主分支時都會自動建立線上文件(此處)。要在本機上建置文檔,請透過pip install moviepy[doc]
安裝額外的依賴項,然後前往docs
資料夾並執行make html
。
MoviePy 是最初由 Zulko 編寫並在 MIT 許可下發布的開源軟體。該專案託管在 GitHub 上,歡迎每個人貢獻並提出問題或提供回饋,請閱讀我們的貢獻指南。若要尋求協助或只是討論用法和範例,請使用我們的 Reddit 頻道。
想要維護者!這個函式庫只有透過維護者的參與才能維持下去,有時我們都沒有足夠的頻寬。我們很樂意聽到開發人員有興趣伸出援手並解決一些問題(尤其是影響您的問題)或審查拉取請求。如果您有興趣,請提出問題或直接與我們聯繫。謝謝!