Original
This commit is contained in:
commit
7e9e55d131
11 changed files with 324 additions and 0 deletions
68
video.py
Normal file
68
video.py
Normal file
|
@ -0,0 +1,68 @@
|
|||
import os
|
||||
from moviepy import *
|
||||
|
||||
def create_video_from_images_and_audio(image_folder, audio_folder, output_video):
|
||||
# Get sorted lists of images and audio files
|
||||
images = []
|
||||
audio_files = []
|
||||
for i in range(len([name for name in os.listdir('./images')])):
|
||||
images.append(f"./images/{i}.png")
|
||||
audio_files.append(f"./audios/{i}.wav")
|
||||
|
||||
clips = []
|
||||
|
||||
for img, audio in zip(images, audio_files):
|
||||
# Create an ImageClip
|
||||
img_path = os.path.join(image_folder, img)
|
||||
image_clip = ImageClip(img_path)
|
||||
|
||||
# Create an AudioFileClip
|
||||
audio_path = os.path.join(audio_folder, audio)
|
||||
audio_clip = AudioFileClip(audio_path)
|
||||
audio_clip = CompositeAudioClip([audio_clip])
|
||||
|
||||
# Set the duration of the image clip to the duration of the audio clip
|
||||
image_clip = image_clip.with_duration(audio_clip.duration)
|
||||
|
||||
# Set the audio of the image clip
|
||||
image_clip.audio = audio_clip
|
||||
|
||||
# Append the image clip to the list of clips
|
||||
clips.append(image_clip)
|
||||
|
||||
# Concatenate all the clips into a single video
|
||||
final_video = concatenate_videoclips(clips, method="compose")
|
||||
|
||||
# Write the result to a file
|
||||
final_video.write_videofile(output_video, codec='libx264', audio_codec='aac', fps=24)
|
||||
|
||||
"""
|
||||
import os
|
||||
from moviepy import *
|
||||
|
||||
def create_video_from_images_and_audio(image_folder, audio_folder, output_video):
|
||||
video_files = []
|
||||
audio_files = []
|
||||
for i in range(len([name for name in os.listdir('./images')])):
|
||||
video_files.append(f"./videos/{i}.mp4")
|
||||
audio_files.append(f"./audios/{i}.wav")
|
||||
|
||||
|
||||
audio_clip = AudioFileClip(audio_file)
|
||||
audio_duration = audio_clip.duration
|
||||
|
||||
clips = []
|
||||
|
||||
for video, audio in zip(video_files, audio_files):
|
||||
video_clip = VideoFileClip(video_path)
|
||||
audio_clip = AudioFileClip(audio_path)
|
||||
if video_clip.duration < audio_clip.duration:
|
||||
loops_needed = int(audio_clip.duration // video_clip.duration) + 1
|
||||
video_clip = video_clip.loop(loops=loops_needed)
|
||||
video_clip = video_clip.subclip(0, audio_clip.duration)
|
||||
video_clip = video_clip.set_audio(audio_clip)
|
||||
clips.append(video_clip)
|
||||
|
||||
final_video = concatenate_videoclips(clips, method="compose")
|
||||
final_video.write_videofile(output_video, codec='libx264', audio_codec='aac', fps=24)
|
||||
"""
|
Loading…
Add table
Add a link
Reference in a new issue