moviepy音视频剪辑VideoClip类fl_image方法image_func报错ValueError: assignment destination is read-only解决办法

☞ ░ 前往老猿Python博文目录 ░

moviepy音视频剪辑模块的视频剪辑基类VideoClip的fl_image方法用于进行对剪辑帧数据进行变换。 调用语法:fl_image(self, image_func, apply_to=None)

其中参数image_func用于对帧数据进行变换,可以调用moviepy提供的相关方法,也可以自己实现,但自己实现时可能在运行时报错:ValueError: assignment destination is read-only

这是因为image_func参数对应的帧数组是只读的,不能修改,实际上get_frame(t)返回的所有帧数组都是只读的。帧的类型为numpy.ndarray,而numpy.ndarray直接定义的数据是可修改的,为什么帧数据不能修改笔者暂时还没弄明白(报错ValueError: assignment destination is read-only),为了规避该问题,将参数img数据采用如下形式的赋值语句:frame= np.array(img)就可以对新的变量frame进行修改,所有变换可以针对新变量frame进行,返回也必须是新变量frame。

更多关于VideoClip的属性和方法请参考《moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解》(免费文章)或《moviepy音视频剪辑:视频剪辑基类VideoClip详解》(付费专栏文章,但内容更全、案例更多)。

更多moviepy的介绍请参考《PyQt+moviepy音视频剪辑实战文章目录》或《专栏:使用PyQt开发图形界面Python应用》。

跟老猿学Python、学5G!

☞ ░ 前往老猿Python博文目录 ░

你可能感兴趣的:(老猿Python)