1. 探索 MoviePy 的文字世界
好啦,我們即將深入編輯影片與添加文字的奇妙世界。想像一下,你是導演,你的任務不僅僅是讓角色對話,還能靈活掌控螢幕上的文字。沒錯,字幕與片尾的魔術正等著你!
在開始之前,先理解一件事:MoviePy 不僅僅是另一個處理影片的庫。它是你個人的影片設計師,能為你的專案增添一點點的光彩與資訊性。你已經學會了影片編輯的基礎:剪輯、拼接、一點小特效——現在是進階的時候了。
為什麼要添加文字?
影片中的文字扮演著關鍵角色——資訊提示、風格化的片尾、當然還有深夜觀看時拯救鄰居睡眠的字幕。MoviePy 讓這些變得簡單又時尚。
2. 處理文字
我們來從簡單的文字元素開始吧。MoviePy 提供了一個很棒的函數 TextClip,它可以將文字添加到你的影片剪輯中。
建立文字剪輯
基本的文字剪輯設置大致如下:
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
# 打開影片檔案
video = VideoFileClip("sample_video.mp4")
# 建立文字剪輯
txt_clip = TextClip("你好,世界!", fontsize=70, color='white')
# 設置文字剪輯的持續時間
txt_clip = txt_clip.set_duration(video.duration)
# 指定文字位置
txt_clip = txt_clip.set_position('bottom')
# 將影片與文字合成
video_with_text = CompositeVideoClip([video, txt_clip])
# 儲存結果
video_with_text.write_videofile("output_video_with_text.mp4", fps=24)
字型和顏色的設置
你可以輕鬆設定文字的顏色、字型和大小。在上面的例子中,文字顏色為白色,但你可以選擇其他顏色,例如:
txt_clip = TextClip("你好,世界!", fontsize=70, font='Amiri-bold', color='yellow')
同樣地,你可以更改字型,前提是你的系統中已安裝了所需的字型。
3. 調整文字在螢幕上的位置
可以通過參數 set_position() 設定文字的位置,該參數既可以接受文本值(例如,'center'、'bottom'),也可以接受座標值。
將文字放置在不同位置
# 將文字放置於螢幕頂部
text_top = TextClip("頂部文字", fontsize=30, color='blue').set_position(('center', 'top')).set_duration(5)
# 將文字放置於螢幕底部
text_bottom = TextClip("底部文字", fontsize=30, color='green').set_position(('center', 'bottom')).set_duration(5)
# 將文字按座標位置放置 (x=100, y=100)
text_coords = TextClip("座標文字", fontsize=30, color='red').set_position((100, 100)).set_duration(5)
# 合成文字與影片
final_video = CompositeVideoClip([video, text_top, text_bottom, text_coords])
final_video.write_videofile("video_with_positioned_text.mp4")
這些情況下:
('center', 'top'): 將文字置於螢幕頂部中央。('center', 'bottom'): 將文字置於螢幕底部中央。(100, 100): 將文字放置於特定座標位置。
動態更新文字
不僅是添加文字,還能使其動起來——這能讓影片內容更引人入勝。我們試試讓文字變成動畫。
def move_text(t):
return 10, 100 * t # 隨著時間文字向下移動
txt_clip = txt_clip.set_pos(move_text).set_duration(3)
GO TO FULL VERSION