Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import moviepy.editor as mpe
- def rgb2gray(get_frame, t):
- rgb = get_frame(t)
- r, g, b = rgb[:, :, 0], rgb[:, :, 1], rgb[:, :, 2]
- gray = 0.2989 * r + 0.5870 * g + 0.1140 * b
- return gray
- def invert(get_frame, t):
- frame = get_frame(t)
- return 255 - frame
- def threshold(get_frame, t):
- frame = get_frame(t)
- thresh = 128
- return ((frame > thresh) * 255).astype("uint8")
- src = mpe.VideoFileClip('nuke.m4v', audio=False).fl(invert)
- nuke1 = src.subclip((0, 0.5), (0, 7.5))
- nuke2 = src.subclip((0, 7.5), (0, 14.5))
- face = mpe.VideoFileClip('face.m4v', audio=False).crop(y1=32, y2=512).fl(rgb2gray).fl(threshold)
- face_inv = face.fl(invert)
- face.ismask = True
- face_inv.ismask = True
- cc = nuke1.set_mask(face_inv)
- cc2 = nuke2.set_mask(face)
- final = mpe.CompositeVideoClip([cc, cc2])
- final.write_videofile('nuke_masked.m4v', fps=30, codec='libx264', bitrate='5000k', audio=False)
Add Comment
Please, Sign In to add comment