In the preceding text, we delved into the installation of MoviePy and utilized the VideoFileClip class to access video files, performing simple edits like resizing, rotation, and segment clipping.
This article's focus lies on understanding MoviePy's audio capabilities.
Creating AudioClip
MoviePy offers two methods to create audio clips: extracting audio from video files and generating audio clips based on existing audio files.
Extracting Audio from Video Files
Assuming we possess a video file named input_video.mp4
, we can directly extract its audio with the following code:
from moviepy.editor import *
video = VideoFileClip("input_video.mp4")
audio = video.audio
audio.write_audiofile("output_audio.mp3")
Generating Audio Clips from Audio Files
By using AudioFileClip, we can read the audio file extracted from the video. The code appears as follows:
audio = AudioFileClip("output_audio.mp3")
We can embed this audio clip into another video segment.
Directly create a video using TextClip and set the video duration using audio.duration.
video = TextClip("Hello MoviePy", color="orange", size=(100, 100))
video = video.set_duration(audio.duration).set_fps(1)
Let's load the audio onto this video.
Here's the code:
video.audio = audio
video.write_audio("text_video.mp4")
When opening the video file using QuickTime Player on a Mac, remember to add the parameter audio_codec="aac" when writing:
video.write_audio("text_video.mp4", audio_codec="aac")
Upon completion, you can open the video and review the effects.
Audio Operations
This section discusses fundamental operations on AudioClips, including volume control, audio segment clipping, and removing audio from videos.
Volume Control
Adjusting the volume of audio clips is accomplished directly through the volumex
method of AudioClip
.
To decrease the volume by 50%, use the code below:
audio = audio.volumex(0.5)
Segment Clipping
Similar to trimming videos, subclip enables us to extract specific portions of audio clips.
For instance, to extract the audio segment from 5 to 15 seconds, use the code:
audio = audio.subclip(5, 15)
Removing Audio from Videos
Here's a handy trick: to remove audio from a video, set the audio
parameter to False
when reading the video file with VideoFileClip.
video = VideoFileClip("input_video", audio=False)
Alternatively, you can utilize the without_audio
method of VideoFileClip to remove audio from video segments.
video = video.without_audio()
Isn't it simple?
Conclusion
This article primarily covers fundamental MoviePy operations. For more MoviePy tutorials, subscribe to our blog. Thank you!
Top comments (3)
This is cool! I hadn't heard of MoviePy prior to this. Seems like a cool way to edit videos.
Cool accompanying video too? Did you use MoviePy to edit this one?
Great to hear you liked it! MoviePy is really handy for certain tasks like adding subtitles, creating batch intros and outros, or explaining text in fixed parts of videos, like in audiobook readings or novels. It's also good for some special effects and acts as a toolbox for video effects.
However, for regular video editing tasks, it might not be the best fit.
Right on! Good to know. It's cool to hear where it really shines. Thanks for the info!