TextClip的list和search方法報錯:UnicodeDecodeError: utf-8 codec canot decode byte 0xb7 in position 8

☞ ░ 前往老猿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應用》。

跟老猿學Python、學5G!

☞ ░ 前往老猿Python博文目錄

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