打包VideoFileClip().resize() 报错‘module‘ object is not callable

 TypeError: 'module' object is not callable错误信息是比较常遇到的,就是没有找到这个模块。

    但是对于已经导入VideoFileClip,在VideoFileClip(').resize(size)这种写法下,pycharm是正常可以运行的,但是打包exe就会报错了。

我用python写了一个视频合成,并且实现画中画播放,但要规定画中画视频的尺寸和位置,从网上复制了一段代码,用的挺好。

clip2 = VideoFileClip(lujing).resize(size).set_position((0, 635))

VideoFileClip(lujing).resize(size)的作用是可以改变视频尺寸,python环境里执行没有问题,但是打包的时候就提示TypeError: 'module' object is not callable。 

 具体原因定位到resize()函数,pycharm提示将resize这个放到VideoFileClip类里,但是我不会写啊,没办法去网上查信息,但是查不到解决办法。无奈之下就继续翻看VideoFileClip()参数,结果发现本身它的参数里面有一个就可以改变视频尺寸的大小。具体试了试程序,果然可行。

    其实没有必要用resize()来改变尺寸了,VideoFileClip()里有个target_resolution参数,就是定义尺寸的,而且视频处理效率还高。所以我换成下边的写法,再打包一切正常了。

clip2 = VideoFileClip(lujing, target_resolution=size).set_position((x, y))

resize()的参数是宽和高,target_resolution确相反,是高和宽,大家使用的时候注意下。

另外单个视频处理我导入的是import  cv2,做这个画中画视频是复制的网络代码,导入的是

from moviepy.editor import VideoFileClip, AudioFileClip,CompositeVideoClip

用来合成音视频。

具体cv2和movipy都能实现哪些功能,我也没细看,我只要实现我的功能就行了。

感觉python虽然灵活,但也太灵活了,很多没个标准,相似库太多,爱用哪个用哪个,如果仅参考网络,很多地方都是坑啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亓八九十

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值