!pip install moviepy
from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
from moviepy.editor import *
from IPython.display import HTML
from base64 import b64encode
from os import path
class video_master:
def __init__(self, file_path, save_path="test.mp4"):
self.file_path = file_path
self.save_path = save_path
def vide_to_html(self,path):
mp4 = open(path,'rb').read()
data_url = "data:video/mp4;base64," + b64encode(mp4).decode()
return HTML("""
<video width=1100 height=500 controls>
<source src="%s" type="video/mp4">
</video>
""" % data_url)
def view(self):
return self.vide_to_html(self.file_path)
def trim(self,start_time,end_time,show=False):
ffmpeg_extract_subclip(self.file_path,
start_time,
end_time,
targetname= self.save_path)
if show and path.exists(self.save_path):
return self.vide_to_html(self.save_path)
def n_times(self,n):
raw = VideoFileClip(self.file_path)
# clip = clip.subclip(0, 4)
clip_arr = [ raw for x in range(n)]
final_clip = concatenate_videoclips(clip_arr)
final_clip.write_videofile("test2.mp4")
return self.vide_to_html("test2.mp4")