文章目錄
- 亮點:作品展示
- 推薦系列教程,推薦的一定是好的!
- 一.前言一定要看!!!
- 二.下載安裝
- 三.視頻轉gif
- 四.視頻截取
- 五.視頻Gif縮放
- 六.視頻修剪
- 七.視頻堆疊
- 八.視頻剪輯部分語法
- 九.圖片合成視頻
- 十.把制作好的作品部署為動態桌面背景
- 十一. 所有檔案和原始碼下載地址
亮點:作品展示

看夠了嗎?看夠了就開始自己來學著做吧!!!
推薦系列教程,推薦的一定是好的!
十萬字python基礎教程,學不會主頁聯系找我!
qq機器人制作系列講解專欄
qq機器人b站視頻教程
三萬字SQL資料庫講解系列
一.前言一定要看!!!
每一句話都是干貨,每一步你都要親自操作,你才能感受到它的樂趣并同時學習python,有任何問題,可以主頁左側聯系我,在我能力范圍內,愿意幫助你,本視頻教程雖然演示有些娛樂,實際上可以用于更多實際用途,制作不易,你的三連是我莫大的支持,
二.下載安裝
無腦安裝:
pip install moviepy
pip install ez_setup
如果你不會下載,可百度網盤下載,再按照我下面的教程安裝:
ImageMagick軟體鏈接:https://pan.baidu.com/s/1SsDZF0ThQhaQwHi-mWfxmQ
提取碼:931q
當然你也可以按照我如下方式從頭開始下載安裝:
官網鏈接如下:
https://www.imagemagick.org/script/index.php
進去之后:

然后往下滑,找到window版本下載:


然后雙擊安裝,勾選accept:
無腦next后選擇安裝在D盤:

next后勾選配置:

又是無腦next,最后finish
最后測驗一下,在cmd執行:
magick --version
可以看到成功了:

現在還需要找到自己moviepy安裝包路徑,比如我的為
c:\users\hp\appdata\local\programs\python\python39\lib\site-packages
怎么找路徑?再下載一次moviepy模塊,就會顯示出路徑了:

然后再檔案夾跳到該目錄下找到模塊:

進去后修改為如下內容:(記得保存)

保存過后久好了!
三.視頻轉gif
比如我要把冒泡排序視頻轉為gif,代碼如下:
from moviepy.editor import *
clip = (VideoFileClip("bili.mp4"))
clip.write_gif("轉gif.gif")
效果為:

四.視頻截取
在這里你需要知道一點的是:subclip()函式對應的引數為需要截取的視頻起點和終點,其它的代碼部分并不用更改,比如這里我將視頻的0到3秒截取下來保存為gif,
from moviepy.editor import *
clip = (VideoFileClip("bili.mp4")
.subclip(0, 3))
clip.write_gif("截取.gif")
效果展示:

五.視頻Gif縮放
這里是截取視頻4到6秒,縮小為原來的0.5倍,保存為縮小.gif
from moviepy.editor import *
##截取4到6秒,縮小為原來的0.5倍
clip = (VideoFileClip("美女.mp4")
.subclip(4, 6)
.resize(0.5))
clip.write_gif("縮小.gif")
效果展示:

六.視頻修剪
在典型的MoviePy腳本是這樣的:加載視頻或音頻、修改、將他們連接在一起并最后生成一個新視頻檔案,比如我要加載我錄制的的視頻,降低音量,在前3秒添加標題在視頻的中央,然后寫入mp4檔案.
代碼注釋如下:
from moviepy.editor import *
# 加載美女視頻截取7搭配12秒部分
clip = VideoFileClip(r"美女.mp4").subclip(7,12)
# 降低音量為原來的0.8倍
clip = clip.volumex(0.8)
# 主題文字,文字等效和顏色 這里的字體只能為英文
txt_clip = TextClip("chuan",fontsize=70,color='white')
# 在前3秒的視頻中央填出現:chuan
txt_clip = txt_clip.set_pos('center').set_duration(3)
# 覆寫文本第一視頻剪輯
video = CompositeVideoClip([clip, txt_clip])
# 寫入為新的檔案,我保存為mp4
video.write_videofile("bili美女.mp4")
效果如下:

為了演示動態,我先把生成的視頻轉為gif,因此需要執行一遍如下代碼:
from moviepy.editor import *
clip = (VideoFileClip("bili美女.mp4"))
clip.write_gif("舞蹈.gif")
效果如下:

七.視頻堆疊
使用clip_array函式對剪輯進行堆疊操作,代碼如下:
from moviepy.editor import VideoFileClip, clips_array, vfx
clip1 = VideoFileClip("bi.mp4").margin(5) # add 10px contour
clip2 = clip1.fx( vfx.mirror_x)
clip3 = clip1.fx( vfx.mirror_y)
clip4 = clip1.resize(0.99) # downsize 60%
final_clip = clips_array([[clip1, clip2],
[clip3, clip4]])
final_clip.resize(width=480).write_videofile("堆疊.mp4")
視頻如下:

但是為了演示動態視頻,于是我又把他轉為gif,執行以下代碼:
from moviepy.editor import *
clip = (VideoFileClip("堆疊.mp4"))
clip.write_gif("堆疊.gif")
效果如下:

八.視頻剪輯部分語法
起始和終止時間
clip1 = clip1.set_start(5) # 五秒后
例如你的剪輯看起來會是這樣:
video = CompositeVideoClip([clip1, # 從0秒開始
clip2.set_start(3), # 1秒開始 bi.mp4剪切4秒
clip3.set_start(2)]) # 2秒開始 bili美女.mp4剪切三秒
clip2可能先于clip1的結束時間開始,在這種情況下,你可以給clip2添加一個1秒鐘的淡入效果:
video = CompositeVideoClip([clip1, # starts at t=0
clip2.set_start(3).crossfadein(2),
clip3.set_start(2).crossfadein(2)])
剪輯的定位
如果clip2和clip3都比clip1小,你可以決定他們出現在視頻中的位置,在這里,我們指定了剪輯左上角像素的坐標:
video = CompositeVideoClip([clip1,
clip2.set_pos((45,150)),
clip3.set_pos((90,100))])
有很多方法可以指定位置:
clip2.set_pos((45,150)) # x=45, y=150 , in pixels
clip2.set_pos("center") #自動劇中
# clip2 水平居中,在圖片的頂部
clip2.set_pos(("center","top"))
# clip2 垂直居中,在圖片的左側
clip2.set_pos(("left","center"))
# clip2 位于螢屏寬度的 40%,高度的 70%:
clip2.set_pos((0.4,0.7), relative=True)
# clip2's position is horizontally centered, and moving down !
clip2.set_pos(lambda t: ('center', 50+t) )
指定坐標的時候請記住,y坐標的0位置在圖片的最上方:

這個太難調了,不演示了,感興趣自己去調一下,
九.圖片合成視頻
為了演示,我九合成gif,因為語法都一樣,
from moviepy.editor import *
# fps控制速度,串列圖片大小必須完全一致,否則報錯
clip = ImageSequenceClip(['1.jpg','3.jpg', '4.jpg','5.jpg','6.jpg'], fps=1)
clip.write_gif('合成.gif')
效果如下:

是不是在想給自己女朋友也做一個?
十.把制作好的作品部署為動態桌面背景
這里并不用描述太多,可以直接看我錄的教程視頻:
桌面動態美女背景設定教程
十一. 所有檔案和原始碼下載地址
如果你沒有網盤會員,下載可能會很大,需要我直接發你檔案也可以主頁左側聯系我,
鏈接:https://pan.baidu.com/s/1Rg9s08b2-F_ZoflxIhTkUQ
提取碼:f29a
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296680.html
標籤:其他
