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]:
5.93

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')


[MoviePy] >>>> Building video random_image.avi
[MoviePy] Writing audio in random_imageTEMP_MPY_wvf_snd.mp3
[MoviePy] Done.
[MoviePy] Writing video random_image.avi
[MoviePy] Done.
[MoviePy] >>>> Video ready: random_image.avi 


In [ ]:


In [ ]: