☞ ░ 前往老猿Python博文目錄 ░
由於moviepy對多語言環境支持存在一些問題,因此在執行TextClip.list(‘font’)和TextClip.search(‘GB’,‘font’)會報錯,報錯信息爲:
File "C:\Program Files\Python37\lib\site-packages\moviepy\video\VideoClip.py", line 1177, in list
return [l.decode('UTF-8')[8:] for l in lines if l.startswith(b" Font:")]
File "C:\Program Files\Python37\lib\site-packages\moviepy\video\VideoClip.py", line 1177, in <listcomp>
return [l.decode('UTF-8')[8:] for l in lines if l.startswith(b" Font:")]
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb7 in position 8: invalid start byte
在這種情況下,要支持中文環境,需要修改VideoClip的1177行,具體修改內容如下:
if arg == 'font':
#return [l.decode('UTF-8')[8:] for l in lines if l.startswith(b" Font:")]
return [l.decode('ANSI')[8:] for l in lines if l.startswith(b" Font:")]
更多TextClip的介紹請參考《moviepy音視頻剪輯:視頻基類VideoClip子類DataVideoClip、UpdatedVideoClip、ImageClip、ColorClip、TextClip類詳解》。
更多moviepy的介紹請參考《PyQt+moviepy音視頻剪輯實戰文章目錄》或《專欄:使用PyQt開發圖形界面Python應用》。