Spaces:
Runtime error
Runtime error
Commit
·
0ccc722
1
Parent(s):
66e09ed
Update components/utils.py
Browse files- components/utils.py +24 -7
components/utils.py
CHANGED
|
@@ -1,17 +1,18 @@
|
|
| 1 |
from moviepy.editor import VideoFileClip, concatenate_videoclips,vfx
|
| 2 |
-
from moviepy.editor import AudioFileClip, CompositeAudioClip
|
|
|
|
| 3 |
import os
|
| 4 |
|
| 5 |
-
def combine_videos(folder_name):
|
| 6 |
|
| 7 |
length = len(os.listdir(folder_name))
|
| 8 |
|
| 9 |
vids = [VideoFileClip(os.path.join(folder_name,x)) for x in sorted(os.listdir(folder_name))]
|
| 10 |
|
| 11 |
-
print(vids, length)
|
| 12 |
|
| 13 |
combined = concatenate_videoclips(
|
| 14 |
-
[vid.subclip(0,
|
| 15 |
# [VideoFileClip(os.path.join(folder_name,x)).subclip(0,7).fx(vfx.fadein,0.5).fx(vfx.fadeout,0.5) for x in sorted(os.listdir(folder_name))],
|
| 16 |
"compose",bg_color=None, padding=0
|
| 17 |
)
|
|
@@ -25,10 +26,26 @@ def combine_videos(folder_name):
|
|
| 25 |
# combined.write_videofile(os.path.join(folder_name, "Ad_Video.mp4"))
|
| 26 |
print("Done! Your ads video has been created")
|
| 27 |
|
| 28 |
-
|
|
|
|
| 29 |
videoclip = VideoFileClip(vid)
|
| 30 |
audioclip = AudioFileClip(speech)
|
| 31 |
|
| 32 |
-
|
| 33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
videoclip.write_videofile(os.path.join(folder_name,"new_filename.mp4"))
|
|
|
|
| 1 |
from moviepy.editor import VideoFileClip, concatenate_videoclips,vfx
|
| 2 |
+
from moviepy.editor import AudioFileClip, CompositeAudioClip, TextClip,
|
| 3 |
+
from moviepy.video.tools.subtitles import SubtitlesClip
|
| 4 |
import os
|
| 5 |
|
| 6 |
+
def combine_videos(folder_name, length_speech):
|
| 7 |
|
| 8 |
length = len(os.listdir(folder_name))
|
| 9 |
|
| 10 |
vids = [VideoFileClip(os.path.join(folder_name,x)) for x in sorted(os.listdir(folder_name))]
|
| 11 |
|
| 12 |
+
print(vids, length, len(length_speech))
|
| 13 |
|
| 14 |
combined = concatenate_videoclips(
|
| 15 |
+
[vid.subclip(0,ls).fx(vfx.fadein,0.5).fx(vfx.fadeout,0.5) if vid.duration > ls else vid.fx(vfx.fadein,0.5).fx(vfx.fadeout,0.5) for vid, ls in zip(vids, length_speech)],
|
| 16 |
# [VideoFileClip(os.path.join(folder_name,x)).subclip(0,7).fx(vfx.fadein,0.5).fx(vfx.fadeout,0.5) for x in sorted(os.listdir(folder_name))],
|
| 17 |
"compose",bg_color=None, padding=0
|
| 18 |
)
|
|
|
|
| 26 |
# combined.write_videofile(os.path.join(folder_name, "Ad_Video.mp4"))
|
| 27 |
print("Done! Your ads video has been created")
|
| 28 |
|
| 29 |
+
|
| 30 |
+
def combine_audio_video(folder_name, vid, speech, sentences, length_speech):
|
| 31 |
videoclip = VideoFileClip(vid)
|
| 32 |
audioclip = AudioFileClip(speech)
|
| 33 |
|
| 34 |
+
generator = lambda txt: TextClip(txt, font='Arial', fontsize=24, color='white')
|
| 35 |
+
# subs = [((0, 4), 'subs1'),
|
| 36 |
+
# ((4, 9), 'subs2'),
|
| 37 |
+
# ((9, 12), 'subs3'),
|
| 38 |
+
# ((12, 16), 'subs4')]
|
| 39 |
+
|
| 40 |
+
ls = [0] + length_speech
|
| 41 |
+
subs = [ ( (ls[i],ls[i+1]), sub) for i,sub in enumerate(sentences)]
|
| 42 |
+
|
| 43 |
+
subtitles = SubtitlesClip(subs, generator)
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
videoclip = CompositeVideoClip([videoclip, subtitles.set_pos(('center','bottom'))])
|
| 47 |
+
|
| 48 |
+
# new_audioclip = CompositeAudioClip([audioclip])
|
| 49 |
+
# videoclip.audio = new_audioclip
|
| 50 |
+
videoclip_audio = CompositeAudioClip([audioclip])
|
| 51 |
videoclip.write_videofile(os.path.join(folder_name,"new_filename.mp4"))
|