CodeGym /Adesua ahorow /Python SELF TW /使用 MoviePy 的複合視頻製作:字幕、音樂和動畫效果

使用 MoviePy 的複合視頻製作:字幕、音樂和動畫效果

Python SELF TW
等級 48 , 課堂 3
開放

1. 視頻合成:結合所有學過的技術

今天我們要創作一些特別的東西——使用 MoviePy 庫製作帶有字幕、音樂和動畫效果的複合視頻。不過在開始創作之前,讓我猜猜:你是不是已經試過在視頻中添加文字並與音軌同步了?如果沒有,那現在是學習這些技能並體驗視頻製作自動化力量的好時候了!

開始之前,我們來回顧一下之前課堂上學到的內容。我們已經學會了提取和處理視頻和音頻剪輯,添加文本和圖形,以及處理動畫和效果。現在是時候將這些知識融合在一起,創造我們的傑作了。

創建複合視頻的主要步驟

  1. 添加字幕:開頭和結尾字幕用於標明視頻項目的開始和結束。
  2. 音樂配樂:背景音樂為視頻增添情感氛圍。
  3. 動畫效果:移動的文本和圖片使內容更加生動有趣。

2. 創建複雜視頻

讓我們從主要的任務開始——創建一個包含所有之前學習元素的視頻項目。下面是它的實現過程:


from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip, concatenate_videoclips
from moviepy.audio.AudioClip import CompositeAudioClip, AudioFileClip

# 加載主視頻剪輯
main_clip = VideoFileClip("clips/scene1.mp4")

# 加載音樂文件
background_music = AudioFileClip("audio/background.mp3")

# 創建字幕(例如視頻開始部分)
title_text = "歡迎來到我們的電影傑作!"
title_clip = TextClip(title_text, fontsize=70, color='white', bg_color='black', size=main_clip.size)
title_clip = title_clip.set_duration(5)

# 創建複合視頻,將字幕添加到主視頻上方
final_clip = CompositeVideoClip([main_clip, title_clip.set_start(0)])
    

我們從創建一個簡單的複合視頻開始,並添加字幕。在我們的例子中,字幕佔據了視頻的前 5 秒。祕訣在於使用 CompositeVideoClip,它允許將多個視頻剪輯結合在一起並相互疊加。

疊加圖層和動畫元素

為了使視頻更具活力和動態效果,我們將添加一些動畫和圖形。假設我們想添加一個從畫面中緩緩出現的移動文本。


from moviepy.editor import TextClip

# 創建動畫文本
animated_text = TextClip("觀賞並啟發自己吧!", fontsize=50, color='yellow', bg_color='black')
animated_text = animated_text.set_duration(3).set_position(lambda t: ('center', 200*(1 - t/3)))

# 從第 5 秒開始在視頻中添加文本
final_clip = CompositeVideoClip([main_clip, title_clip.set_start(0), animated_text.set_start(5)])
    

函數 set_position 允許我們動畫化文本,根據時間 t 改變其位置。在這裡,文本在 3 秒內緩緩從上方下降到畫面中。

添加帶縮放效果的徽標

如果你願意,你可以添加自己的徽標(這不是必須的)。


from moviepy.editor import ImageClip

logo = ImageClip("logo.png").set_duration(5)
logo = logo.resize(lambda t: 1 + 0.2 * t).set_position(('right', 'bottom'))
    

這裡:

  • resize(lambda t: 1 + 0.2 * t) 每秒將徽標大小增加 20%,創造出縮放效果。

3. 處理音樂配樂

現在我們添加音樂配樂,使視頻更加引人入勝。在視頻世界中,音樂就是情感。它為整個作品定下基調。

加載視頻並添加音軌


from moviepy.editor import VideoFileClip, AudioFileClip

# 加載主視頻和音頻文件
video = VideoFileClip("main_video.mp4")
audio = AudioFileClip("background_music.mp3").subclip(0, video.duration)

# 將音軌添加到視頻
video_with_audio = video.set_audio(audio)
    

這裡:

  • AudioFileClip("background_music.mp3").subclip(0, video.duration) 將音軌的長度調整到與視頻匹配。
  • set_audio(audio) 為視頻添加背景音樂。

或者可以疊加第二條音軌


# 為最終視頻剪輯設置音頻
final_audio = CompositeAudioClip([main_clip.audio, background_music.set_duration(main_clip.duration).volumex(0.5)])
final_clip = final_clip.set_audio(final_audio)
    

我們使用 CompositeAudioClip 將主視頻剪輯的音軌與背景音樂相結合。這裡 volumex 函數幫助調整音樂音量,以免壓過語音評論(如果有的話)。

同步音頻與視頻

處理音頻時的一個關鍵點是:確保音軌的長度與視頻一致。可以使用 set_duration 方法來實現,如上所示。

4. 導出和優化視頻

現在我們的視頻項目完成了,是時候捲起袖子,將其導出為我們需要的格式。

導出視頻


# 將視頻導出為最終文件
final_clip.write_videofile("final_video.mp4", codec='libx264', bitrate='800k')
    

這裡我們使用方法 write_videofile 將視頻項目保存為 MP4 格式。選擇合適的編解碼器,例如 libx264,它能提供良好的質量和與多數設備的兼容性。

更多有關導出視頻的資訊,請參閱後續講座。

針對網絡和社交媒體的優化

為了網絡或社交媒體創作視頻時,重要的是要減小視頻大小而不損失質量。這可以通過調整 bitrate 等參數來實現。選擇時應考慮要上傳的平臺需求。

好了,你的視頻已準備就緒!恭喜你使用 MoviePy 創建了你的第一個影片傑作。現在別忘了將結果分享在社交媒體上,看看你的朋友和同事對你的創作有什麼反應。祝你在未來的視頻世界冒險中取得成功!

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION