moviepy音視頻剪輯VideoClip類to_mask方法、to_RGB、afx方法

☞ ░ 前往老猿Python博文目錄

moviepy音視頻剪輯VideoClip類to_mask方法和to_RGB方法用於進行剪輯內容變換。

1、to_mask方法

to_mask方法返回一個由調用者剪輯實例構建的遮罩剪輯。

調用語法:

to_mask(self, canal=0)

說明:

to_mask方法用於將當前剪輯生成一個遮罩剪輯,處理時如果調用對象本身有遮罩,則直接返回調用剪輯的遮罩,否則根據調用剪輯的數據生成遮罩數據,生成時是將調用剪輯的每一幀數據的具體像素的YUV值中的某個除以255來實現遮罩的效果,具體對YUV哪個數據進行處理由參數canal指定,0代碼Y值、1代表U值、2代表V值。

2、to_RGB方法

返回一個由遮罩剪輯生成的非遮罩剪輯。

調用語法:

to_RGB(self)

說明:

該方法的處理過程是,如果調用剪輯不是遮罩,則直接返回自身,否則將剪輯的幀像素YUV各乘以255,再將每個像素的YUV三元組變成一個九元組,其元素是YUV值重複3遍。

這樣變換的原因老猿並不十分清楚,查閱了一些資料,估計是因爲YUV到RGB並不是簡單YUV到RGB的一個轉換,而是到24位真彩色的轉換,因爲一般來說直接採集到的視頻數據是RGB24的格式,其位數是YUV的三倍,當RGB24變爲YUV時其實是進行了降色處理,現在要恢復到RGB24因此需要進行乘以3。

但這裏有些原理沒說清楚,比如RGB24是用三個字節來表示顏色,YUV在這裏也用了三個字節,RGB爲什麼變成了9個字節?這個問題一時無解,先留着。

另外這個方法在moviepy中只是對遮罩進行處理,當帶遮罩的剪輯輸出到文件或將剪輯的幀保存到圖像或gif文件時會調用該方法對剪輯的遮罩進行處理。

3、afx方法

afx方法對原剪輯淺拷貝後的拷貝剪輯的聲音進行變換,返回新剪輯。

調用語法:

afx(self, fun, *a, **k)

說明:
  • 聲音變換由函數fun進行
  • a和k是fun變換函數需要帶的可變參數和關鍵字參數
  • afx實際上是調用父類Clip的fx方法去執行fun函數的

更多關於VideoClip的屬性和方法請參考《moviepy音視頻剪輯:視頻剪輯基類VideoClip的屬性及方法詳解》(免費文章)或《moviepy音視頻剪輯:視頻剪輯基類VideoClip詳解》(付費專欄文章,但內容更全、案例更多)。

更多moviepy的介紹請參考《PyQt+moviepy音視頻剪輯實戰文章目錄》或《專欄:使用PyQt開發圖形界面Python應用》。

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