moviepy簡介及安裝

一、概述

MoviePy是一個用於視頻編輯的Python模塊,可用於進行視頻的基本操作(如剪切、連接、標題插入)、視頻合成(也稱非線性編輯)、視頻處理或創建高級效果。

它可以讀寫最常見的視頻格式,包括GIF。MoviePy能處理的視頻是ffmpeg格式的,老猿理解支持的文件類型至少包括:*.mp4 *.wmv *.rm *.avi *.flv *.webm *.wav *rmvb 。

MoviePy使用ffmpeg讀取、導出視頻和音頻文件,使用ImageMagick生成文本和輸出GIF文件。Python的快速數字庫Numpy保證了不同媒體的處理。高級效果和增強使用了Python的許多圖像處理庫(PIL、Scikit-image、scipy等)。

moviepy的核心對象是剪輯(clips),包括AudioClips 和VideoClips。它們可以修改(剪切、減速、變暗…)或與剪輯混合以形成新剪輯,可以使用PyGame或IPython Notebook預覽,並可以輸出到對應類型的文件(如MP4、GIF、 MP3等)。例如,VideoClips可以從視頻文件、圖像、文本或自定義動畫創建。VideoClips可以有一個音頻軌道(這是一個AudioClip)和一個mask(一個特殊的VideoClip,指示當剪輯與其他剪輯混合時要隱藏哪些部分)。

二、moviepy應用的考量

2.1、moviepy適用的場景

  • 許多視頻需要處理或以複雜的方式組合
  • 在web服務器(Django、Flask等)上自動創建視頻或gif
  • 自動化處理單調乏味的任務如:在跟蹤對象中插入標題、剪輯場景、製作片尾字幕(end credits)、字幕等…
  • 從另一個python庫(Matplotlib、Mayavi、Gizeh、scikit images…)生成的圖像創建動畫
  • 對自己的視頻特效進行編碼,以執行現有視頻編輯器無法執行的操作

2.2、使用moviepy的好處

  • 使用方便:基本操作可以在一行中完成。對於新手來說,代碼很容易學習和理解
  • 操作靈活:可以完全控制視頻和音頻的幀,很容易創建自己的效果,非常簡單
  • 可移植:代碼使用非常通用的軟件(Numpy和FFMPEG),幾乎可以在任何帶有任意版本的Python的機器上運行

2.3、不建議使用moviepy場景

以下兩種場景使用moviepy不是最好的選擇:

  • 需逐幀進行視頻分析(如人臉檢測或其他花哨的東西)。這可以通過MoviePy與其他庫結合來完成,但實際上,只要使用imageio、OpenCV或SimpleCV,這些庫就專門處理這些任務
  • 只需要轉換視頻文件,或將一系列圖像文件轉換爲電影。在這種情況下,直接調用ffmpeg(或avconv或mencoder…)會比通過MoviePy更快地提高內存效率

2.4、moviepy的侷限性

  • MoviePy還不能處理流式視頻(從網絡攝像頭讀取、或在遠程機器上實時渲染視頻),也並不是真正爲涉及到電影的許多連續幀視頻處理而設計(比如視頻穩定就需要用別的軟件來實現)
  • 如果同時使用多個視頻、音頻和圖像源(>100),也可能會出現內存問題,但這將在以後的版本中修復

三、安裝

MoviePy安裝非常簡單,使用pip安裝時,請將站點指向國內的鏡像站點,否則下載很慢或者下載不下來,老猿使用清華的鏡像,指令是:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple moviepy

注意:

1、moviepy全小寫,安裝時會自動安裝相關依賴包;
2、建議安裝最新的版本1.0.3,因爲1.0.2中有個比較大的bug,請見《在Python中使用moviepy進行視頻剪輯時輸出文件報錯 ‘NoneType’ object has no attribute 'stdout’問題》;
3、如果沒有安裝最新版本,可以執行版本升級,指令:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple moviepy --upgrade

四、後續安排

本部分後續章節內容每章節將逐一分解介紹一個或一類moviepy相關的功能,並通過PyQt開發對應的圖形界面,以此作爲一個個PyQt實戰的程序,但在每章內容中只會簡單介紹PyQt實現方面的內容,不會詳細介紹PyQt實現的具體步驟。後續章節將在專欄《PyQt+moviepy音視頻剪輯實戰》和收費專欄《使用PyQt開發圖形界面Python應用》同時發佈,但收費專欄中會提供完整代碼的下載,並可能根據情況會有一些內容的差異。

跟老猿學Python、學5G!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章