Edited at

moviepyによる動画変換処理 with ndarray

More than 1 year has passed since last update.

動画を処理するためのtipsです。

moviepyのインストールは

pip install moviepy

と簡単です。

VideoFileClipクラスのメソッドfl_imageにコールバック関数をセットします。

このコールバック関数は、各フレームの画像を'(Height, Width, Channel)'のndarrayとして受け取り、同様の形式のndarrayを返すことで動画を変換できます。便利ですね。

下記は、各ピクセル0〜255で表現されているndarrayを反転させることで色の反転を行った例です。

from moviepy.editor import VideoFileClip

def func(frame):
"""
:param frame: (H, W, Channel) [ndarray]
:return: (H, W, Channel) [ndarray]
"""

return -frame + 255 # 色を反転

inpout_video = "test_input.mp4"
output_video = 'test_output.mp4'

clip1 = VideoFileClip(inpout_video)
project_clip = clip1.fl_image(func)

project_clip.write_videofile(output_video, audio=True)