-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Labels
questionQuestions regarding functionality, usageQuestions regarding functionality, usage
Description
In an attempt to extend an audio clip by appending silence, I discovered that writing to the same audio file path causes the output file to become corrupted.
from moviepy import AudioFileClip, CompositeAudioClip, AudioClip
def silence_audio(duration):
"""Generate a silent audio clip of the given duration."""
clip = AudioClip(lambda t: 0, duration=duration)
return clip
def extend_audio(original_audio, extension_duration):
"""Extend the original audio by adding silence at the end."""
silence_clip = silence_audio(extension_duration)
extended_audio = CompositeAudioClip([
original_audio,
silence_clip.with_start(original_audio.duration)
])
return extended_audio
Testing script:
audio_path = "./audio.wav"
sample_audio = AudioFileClip(audio_path)
sample_audio = extend_audio(sample_audio, 1.0)
print(f"Extended audio duration: {sample_audio.duration} seconds")
sample_audio.write_audiofile(audio_path) # Causes corrupted output
The newly written audio file becomes corrupted if the original file still exists at audio_path.
However, if I delete the original file first (Ex: using os.remove(audio_path)), the new audio file is written correctly.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
questionQuestions regarding functionality, usageQuestions regarding functionality, usage