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


大家好,我是辰哥。

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

MoivePy能干嘛呢,下面辰哥來給大家簡單介紹一下。

  1. 提取音頻

  2. 視頻截取

  3. 視頻合並

  4. 視頻疊加

  5. 添加字幕

  6. 追蹤人臉,打馬賽克

  7. 炫酷的特效

  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讓照片高清化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM