Pythonで動画編集 -gifの作成-

pythonのライブラリであるMoviepyを使って動画の一部分をパラパラ漫画形式にするgifの作成を行なっていきます。

Moviepyのインストール方法を下記の記事を参照してください。

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 の作成の基本的なコードとなります。

コメント

タイトルとURLをコピーしました