In [1]:
import moviepy.audio.io.AudioFileClip
import moviepy.video.VideoClip
audio_filename = 'resources/sounds/makingwaffle.wav'
audio = moviepy.audio.io.AudioFileClip.AudioFileClip(audio_filename)
# video = moviepy.video.VideoClip.VideoClip(duration)
In [2]:
audio.duration
Out[2]:
In [72]:
import imageio
import random
import scipy.misc
mouth_open = imageio.imread('resources/poses/internet_guy/mouth_open.jpg')
mouth_closed = imageio.imread('resources/poses/internet_guy/mouth_closed.jpg')
memo = {}
def make_frame(t):
'''
Expects a time in seconds as a float. Will be called multiple times per second.
'''
i = round(t / 0.1) # Update each quarter-second
if i not in memo:
memo[i] = random.choice([mouth_open, mouth_closed])
return memo[i]
In [73]:
video = moviepy.video.VideoClip.ImageClip(mouth_open,
duration=audio.duration)
video = video.set_make_frame(make_frame)
video = video.set_audio(audio)
video.size = mouth_open.shape[:2][::-1]
video.write_videofile('random_image.avi', fps=8, codec='mpeg4')
In [ ]:
In [ ]: