pythonのライブラリであるMoviepyを使って動画の一部分をパラパラ漫画形式にするgifの作成を行なっていきます。
Moviepyのインストール方法を下記の記事を参照してください。
gifの作成
gifの作成を行うコードは以下になります。
from moviepy.editor import *
file_pass = '/Users/***/***/読み込む動画.mp4' #・・・(1)
save_file = '/Users/***/***/切り取った後の動画の名前.gif' #・・・(2)
clip = (VideoFileClip(file_pass).subclip((1,1,3.2),(1,1,6.2))) #・・・(3)
clip.write_gif(save_file) #・・・(4)
上記のコードを説明いたします。
(1) 読み込ませたい動画のファイルパス決めます。
(2) gif作成後の保存先のフォルダとファイル名を決めます。
(3) 読み込まさせた、動画の切り取る時間を決めます。
上記の例では–> (1,1,3.2),(1,1,6.2)としているので、1時間1分3.2秒から1時間1分6.2秒の3秒間を
gifにしております。
また、subclip(10,13)とすることで10秒から13秒間と規定することも可能です。
(4) 最後にgifに編集し、save_fileで決めたファイルパスに保存されます。
しかし、上記の例では、元の動画の画面サイズをそのままに画像に変換しそして、パラパラ漫画にしている状態であるため、例えば高画質の1920 x 1080の動画を読み込ませ、3秒間をgifにした際に、300MB近くの大容量になってしまいます。
容量を小さくする方法
大容量になってしまい、読み込み時間がかかりなかなかgifがスタートしないということが考えられるために、容量を小さくする方法としては以下の2点を行うことで容量を小さくすることが可能です。
① 画面サイズを小さくする。
②コマ数を減らす。(フレームレートを小さくする。)
① 画面サイズを小さくする。
clip = (VideoFileClip(file_pass).subclip((1,1,3.2),(1,1,6.2)).resize(0.3)) #・・・(3)
resizeを加えることで、1920 x 1080の動画であれば、上記の例では0.3倍がされるので、
576 x 324にサイズを小さくすることが可能です。
②コマ数を減らす。(フレームレートを小さくする。)
clip.write_gif(save_file,fps = 24) #・・・(4)
fps = xx を入れることで、コマ数を減らすことができます。
コマ数を減らすことで、容量を小さくすることができますが、カクカクしたような映像になります。
まとめ
以上がgif の作成の基本的なコードとなります。
コメント