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博文目录 ░

你可能感兴趣的:(老猿Python,python,moviepy音视频剪辑处理,编程语言,程序人生,TextClip报错)