Guest User

Untitled

a guest
Feb 17th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. import moviepy.editor as mpe
  2.  
  3.  
  4. def rgb2gray(get_frame, t):
  5. rgb = get_frame(t)
  6. r, g, b = rgb[:, :, 0], rgb[:, :, 1], rgb[:, :, 2]
  7. gray = 0.2989 * r + 0.5870 * g + 0.1140 * b
  8. return gray
  9.  
  10.  
  11. def invert(get_frame, t):
  12. frame = get_frame(t)
  13. return 255 - frame
  14.  
  15.  
  16. def threshold(get_frame, t):
  17. frame = get_frame(t)
  18. thresh = 128
  19. return ((frame > thresh) * 255).astype("uint8")
  20.  
  21.  
  22. src = mpe.VideoFileClip('nuke.m4v', audio=False).fl(invert)
  23. nuke1 = src.subclip((0, 0.5), (0, 7.5))
  24. nuke2 = src.subclip((0, 7.5), (0, 14.5))
  25.  
  26. face = mpe.VideoFileClip('face.m4v', audio=False).crop(y1=32, y2=512).fl(rgb2gray).fl(threshold)
  27. face_inv = face.fl(invert)
  28.  
  29. face.ismask = True
  30. face_inv.ismask = True
  31.  
  32. cc = nuke1.set_mask(face_inv)
  33. cc2 = nuke2.set_mask(face)
  34.  
  35. final = mpe.CompositeVideoClip([cc, cc2])
  36. final.write_videofile('nuke_masked.m4v', fps=30, codec='libx264', bitrate='5000k', audio=False)
Add Comment
Please, Sign In to add comment