實戰|驚呆了,Python居然能剪輯視頻!

你們好,我是辰哥。
python


辰哥以前就想着Python可不能夠剪輯視頻(提取視頻的音頻,視頻截取等等),而後辰哥在網上一搜,還真找到了Python的一個處理音頻的庫-MoivePynginx


MoivePy能幹嗎呢,下面辰哥來給你們簡單介紹一下。sql


  1. 提取音頻微信

  2. 視頻截取app

  3. 視頻合併編輯器

  4. 視頻疊加
    ide

  5. 添加字幕svg

  6. 追蹤人臉,打馬賽克學習

  7. 炫酷的特效flex

  8. 陰影效果

  9. .......


01
提取音頻



平時咱們在刷短視頻或者看到一些視頻的時候(視頻裏纔有,網上搜不到這種剪輯的音頻時),但願可以把視頻裏面的音頻提取出來當背景音樂或者想平時聽聽可是不想打開視頻時。


那麼辰哥就用python教你們如何去提取一個視頻裏面的音頻。


在開始以前,先把Moivepy庫安裝一下,經過下面的命令便可安裝

pip install moviepy


安裝好以後,接着我們就開始對視頻進行處理了。


from moviepy.editor import *
video = VideoFileClip('七次人口普查.mp4')
audio = video.audio
audio.write_audiofile('七次人口普查.mp3')


這裏以視頻:七次人口普查.mp4爲例,這個視頻是辰哥以前錄製的一個視頻



提取好的音頻保存爲:七次人口普查.mp3



打開音頻,音質和視頻中的音質如出一轍(完美提取成功


02
截取視頻



此外還能夠將視頻進行截取。截圖的視頻不只能夠是保存成視頻還能夠將截取的視頻保存爲gif格式


1.截取後保存爲視頻


一樣仍是以視頻:七次人口普查.mp4爲例(視頻一共是38秒),我們從截取其中的一段(第5s~第25s)20秒。


video = VideoFileClip('七次人口普查.mp4')
# 剪輯這個clip 5s-25s,保存mp4
video2 = video.subclip(5, 25)
video2.write_videofile("七次人口普查5_25.mp4")


截取後的視頻保存爲:七次人口普查5_25.mp4



運行結束以後,視頻就已經保存到本地(同時視頻中的音頻也對應的保存過來


最終效果:



打開以後,沒問題,成功截取。



2.截取後保存爲gif


接着將截取的視頻保存成gif格式


video = VideoFileClip('七次人口普查.mp4')
# 剪輯這個clip 5s-25s,保存mp4
video2 = video.subclip(5, 25)
video2.write_gif("七次人口普查5_25.gif",fps=16)


代碼中的fps是幀率,這裏設置爲16,fps越大,gif越清晰,同時gif也會越大。(這裏設置了16,已經較爲清晰了)


截取後的視頻保存gif:七次人口普查5_25.gif



打開後以下:



03
視頻合併





除了對視頻截取外,還能夠將多個視頻進行合併。


video1 = VideoFileClip('七次人口普查.mp4')
video2 = VideoFileClip("七次人口普查5_25.mp4")
video3 = concatenate_videoclips([video1, video2])
video3.write_videofile("七次人口普查_合併.mp4")


視頻:七次人口普查.mp4原視頻(38秒),視頻:七次人口普查5_25.mp4上面案例截取的視頻(20秒),最後合併成:七次人口普查_合併.mp4


ps:上面代碼只是演示合併兩個視頻,實際是能夠合併多個的



原視頻:




最終合併視頻:



04
視頻疊加



一般在電影中均可以看到視頻中分塊的部分不一樣的畫面。這用了視頻疊加的效果。接下來辰哥教你們如何用Python去實現。


video1 = VideoFileClip("七次人口普查.mp4").margin(10)
video2 = video1.fx(vfx.mirror_x) # x軸鏡像
video3 = video1.fx(vfx.mirror_y) # y軸鏡像
video4 = video1.resize(0.8) # 尺寸等比縮放0.8
newvideo = clips_array([
[video1, video2],
[video3, video4]
])
newvideo.resize(width=480).write_videofile("七次人口普查_疊加.mp4")


這裏主要是以視頻:七次人口普查.mp4爲例,弄成四方塊的樣式進行疊加。最候保存成:七次人口普查_疊加.mp4。



最終效果:



05
小結




ok,辰哥就介紹以上這四種剪輯視頻的方法,此外還有不少方法。好比:

  1. 添加字幕

  2. 追蹤人臉,打馬賽克

  3. 炫酷的特效

  4. 陰影效果

  5. ............


這裏辰哥就不一一演示了,感興趣的小夥伴能夠去搜索moviepy的文檔教程進行學習。


最後爲了你們方便學習,辰哥已經把本文的演示視頻和源碼上傳,須要的在公衆號後臺回覆:視頻剪輯


最後說一聲:原創不易,求給個贊、在看、評論


推薦閱讀

實戰|教你用Python玩轉Redis

520情人節|用Python跟‘喜歡的人’表白

實戰|教你用Python玩轉Mysql

照片模糊?辰哥手把手教你用Python讓照片高清化


本文分享自微信公衆號 - Python研究者(zyzx3344)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索