欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PyQt(Python+Qt)学习随笔:MoviePy视频转GIF动图相关方法介绍

程序员文章站 2024-01-16 22:51:16
...

MoviePy能处理的视频是ffmpeg格式的,老猿理解支持的文件类型至少包括:*.mp4 *.wmv *.rm *.avi *.flv *.webm *.wav *rmvb 。

MoviePy有很多与视频相关的功能,包括剪辑、合成、分离音视频等,在此老猿只用了其中的视频转gif的功能,老猿暂时没准备去深入研究,在此也不多介绍,大家可以参考《MoviePy - 中文文档(一个专业的python视频编辑库)教程》的介绍以及英文版官方文档https://zulko.github.io/moviepy/中文版文档:http://moviepy.cn/。在此就说明如下几点:

  1. 安装:pip安装时,请将站点指向国内的镜像站点,否则下载很慢或者下载不下来,老猿使用清华的镜像,指令是:
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple moviepy
    注意moviepy全小写,安装时会自动安装相关依赖包,这点与上面文章介绍的有出入。

  2. 模块导入:moviepy是一个包,由于只使用视频转gif,相关功能在editor模块内,因此导入使用指令:
    import moviepy.editor as mpe

  3. 视频文件装载方法:
    VideoFileClip(videoFile)
    这个方法就是构造一个VideoFileClip对象,这个对象就是视频的内容,可以通过该对象对视频进行剪辑等操作

  4. 截取视频方法:
    subclip(start,end)
    参数start和end是视频起止位置,如果是整数单位是秒,也可以是其他时间设置方法,如:2分12.5秒,表示方法可以是(2,12.5)、(0,2,12.5)或者 (00:02:12.5)。
    返回值还是一个VideoFileClip对象。

  5. 输出视频到gif文件的方法:
    write_gif(gifFileName,fps=fps)
    write_gif有很多参数,除了第一个参数是文件名外,其他参数都是关键字参数(不明白关键字参数的请参考《第5章函数进阶 第5.1节 Python函数的位置参数、关键字参数精讲》),在此老猿仅使用了fps参数,其他参数就不展开说了。fps参数是指生成GIF是每秒抽取的帧数,这个数字越大,同样视频生成的gif文件就越大,所以需要有所取舍。
    6、关闭视频缓存方法:close方法用于关闭视频缓存。

示例代码:
		import moviepy.editor as mpe
		cache = mpe.VideoFileClip(r"c:\temp\操作录屏.mp4").subclip(0,15)
        cache.write_gif(r"c:\temp\操作录屏.gif",fps=2)

具体实现请参考《第15.40节、PyQt(Python+Qt)实战:moviepy实现MP4视频转gif动图的工具
PyQt(Python+Qt)学习随笔:MoviePy视频转GIF动图相关方法介绍

老猿Python,跟老猿学Python!