影片转 gif 动画
这篇文章会介绍使用 Python 的 moviepy 第三方函数库,读取影片并将影片转换成 gif 动画。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
安装 moviepy
输入下列指令安装 moviepy,根据个人环境使用 pip 或 pip3。
!pip install moviepy
由于影片转档会使用 ffmpeg,因此也要安装 ffmpeg ( 影片存档常见错误“TypeError: must be real number, not NoneType”往往都是 ffmpeg 没有安装导致 ),根据个人环境使用 pip 或 pip3,Anaconda Jupyter 可以使用 conda install。
!pip install ffmpeg
影片转换为 gif 动画 ( 基本用法 )
加载 moviepy 读取影片后,使用 write_gif 方法,就能将影片转换成 gif 图档。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from moviepy.editor import *
video = VideoFileClip("oxxostudio.mp4") # 讀取影片
output = video.resize((360, 180)) # 壓縮影片
output = output.subclip(13, 15) # 取出 13~15 秒的片段
output.write_gif("output.gif") # 將這個片段轉換成 gif
print('ok')
影片转换为 gif 动画 ( 进阶设定 )
透过设定 write_gif 的参数,就能做出更进阶的 gif 动画文件设定,常用的参数如下:
| 参数 | 说明 |
|---|---|
| filename | 动画文件名称。 |
| fps | 一秒多少格,默认跟影片相同。 |
| loop | 是否重复播放,可设定 True ( 默认 ) 或 False 或数字 ( 重复几次 )。 |
| colors | 色彩数量,默认 256,范围 2~256。 |
| program | 使用哪种编码器转换,可设定 ffmpeg ( 默认 ) 或 imageio。 |
下方的程序码执行后,会产生四张长度为两秒的 gif 动画。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from moviepy.editor import *
video = VideoFileClip("oxxostudio.mp4")
output = video.resize((360,180))
output = output.subclip(13,15)
output.write_gif("output_fps24.gif", fps=24) # 256 色一秒 24 格
output.write_gif("output_fps8.gif", fps=8) # 256 色一秒 8 格
output.write_gif("output_fps8_c2.gif", fps=8, colors=2) # 2 色一秒 8 格
output.write_gif("output_fps8_c16.gif", fps=8, colors=16) # 16 色一秒 8 格
print('ok')
256 色一秒 24 格
256 色一秒 8 格
2 色一秒 8 格
16 色一秒 8 格
微信扫码关注
抖音扫码关注