用python代碼製作視頻

前言

之前製作視頻一般都是pr或者是在線製作視頻,然後昨天偶然看到了一個python的庫—moviepy,現在我們可以寫代碼來製作視頻了。

安裝

這個庫安裝起來很簡單,還是老樣子pip install moviepy
不過使用windows的話還需要安裝ImageMagick,不然視頻製作會報錯。
安裝ImageMagick的博客
安裝好之後就可以慢慢探索這個庫的使用了,基本上所有的視頻剪輯操作都有相關的函數,我也發現了不少比較好的博客可以用來學習
moviepy的基本使用
國內的相關博客可能不多,有條件的可以去看看國外的相關博客

一個小例子

因爲前兩天六一剛好出門玩拍了一點視頻照片,所以正好拿來作爲素材。
準備好素材,然後寫點字幕,用網頁的文字轉語音導出mp3文件,一切素材準備就緒就可以開始寫代碼了。
結構
在這裏插入圖片描述
代碼

from moviepy import editor
import re


# 添加視頻,做淡入淡出處理
video_clips=[]
for name in ["./MP4/10803738726833380508703892223.mp4","./MP4/video_20200601_150530.mp4"]:
    video_clip=editor.VideoFileClip(name).crossfadein(0.5).crossfadeout(0.5)
    video_clips.append(video_clip)
# 拼接
bg_video=editor.concatenate(video_clips)

# 語音
voice=editor.AudioFileClip("./MP3/1.mp3")
duration=voice.duration

# 字幕
with open("./txt/字幕.txt",encoding='utf-8') as f:
    text=f.readlines()[0]
    lines=[line for line in re.split(',|。',text) if line !='']
line_dur=duration/len(lines)

subtitle_clips=[]
for i,line in enumerate(lines):
    subtitle_clip=editor.TextClip(line,color='white',font="simhei.ttf",fontsize=60,bg_color='black',align='center')
    subtitle_clip=editor.CompositeVideoClip([subtitle_clip]).set_duration(line_dur).set_start(i*line_dur).set_end((i+1)*line_dur)
    subtitle_clips.append(subtitle_clip)

subtitles=editor.concatenate(subtitle_clips)

# 合成
final_audio=editor.CompositeAudioClip([voice.volumex(2)]).set_duration(duration)
final_video=editor.CompositeVideoClip([
    bg_video,
    subtitles.set_position(('center',0.8),relative=True)
]).set_duration(duration)

final_video=final_video.set_audio(final_audio)

# 導出
final_video.write_videofile('./test.mp4',fps=24)

然後同一目錄下就會生成導出的視頻。

最後

近期調整過來了,時不時會發點簡單有趣的分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章