Python 一個(gè)快速視頻剪輯編輯神器 — Moviepy
這是「進(jìn)擊的Coder」的第 445?篇技術(shù)分享作者:Ckend來(lái)源:Python 實(shí)用寶典
“
閱讀本文大概需要 3 分鐘。
你知道嗎,用 moviepy 一行代碼就能夠快速剪輯視頻中某個(gè)區(qū)間的片段:
clip = VideoFileClip("videoplayback.mp4").subclip(50,60)這一段代碼,能夠在 3 秒內(nèi)將 videoplayback.mp4 的 50 秒 -60 秒的視頻片段提取出來(lái),非常方便。
不僅如此,moviepy 還支持添加字幕、調(diào)整音量、片段鏈接等功能。下面看看詳細(xì)的操作方法。
1.準(zhǔn)備
開(kāi)始之前,你要確保 Python 和 pip 已經(jīng)成功安裝在電腦上,如果沒(méi)有,可以訪問(wèn)這篇文章:超詳細(xì) Python 安裝指南?進(jìn)行安裝。
(可選 1)?如果你用 Python 的目的是數(shù)據(jù)分析,可以直接安裝 Anaconda:Python 數(shù)據(jù)分析與挖掘好幫手 —Anaconda,它內(nèi)置了 Python 和 pip.
(可選2)?此外,推薦大家用 VSCode 編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。
請(qǐng)選擇以下任一種方式輸入命令安裝依賴:
1. Windows 環(huán)境 打開(kāi) Cmd (開(kāi)始-運(yùn)行-CMD)。
2. MacOS 環(huán)境 打開(kāi) Terminal (command+ 空格輸入 Terminal)。
3. 如果你用的是 VSCode 編輯器或 Pycharm,可以直接使用界面下方的 Terminal.
pip install moviepy2.視頻剪輯
剪輯個(gè)視頻,多大點(diǎn)事,比起下載 PR,用 Python 寫 3 行代碼,3 秒剪輯不香嗎?
from?moviepy.editor import*
# 剪輯50-60秒的音樂(lè) 00:00:50 - 00:00:60
video =CompositeVideoClip([VideoFileClip("videoplayback.mp4").subclip(50,60)])
# 寫入剪輯完成的音樂(lè)
video.write_videofile("done.mp4")3.視頻拼接
“哦?Python?哼,那你肯定很難進(jìn)行拼接工作吧,PR 多方便,拖拽即可完成拼接。”
那你可真是太小看 Python 了,moviepy 幾行代碼隨隨便便就能拼接許多片段:
from?moviepy.editor importVideoFileClip, concatenate_videoclips
clip1 =VideoFileClip("myvideo.mp4")
# 結(jié)合剪輯,你甚至能夠完全自動(dòng)化剪輯拼接視頻的操作
clip2 =VideoFileClip("myvideo2.mp4").subclip(50,60)
clip3 =VideoFileClip("myvideo3.mp4")
final_clip = concatenate_videoclips([clip1,clip2,clip3])
final_clip.write_videofile("my_concatenation.mp4")結(jié)合剪輯,你甚至能夠完全自動(dòng)化剪輯拼接視頻的操作。
4.逐幀變化
“那你能完成針對(duì)每一幀圖像的快速圖像處理嗎?PR 可是做得到的哦”
那當(dāng)然可以,教你如何反轉(zhuǎn)視頻每一幀的綠色和藍(lán)色通道:
from?moviepy.editor importVideoFileClip
my_clip =VideoFileClip("videoplayback.mp4")
def?scroll(get_frame, t):
????"""
????處理每一幀圖像
????"""
????frame = get_frame(t)
????frame_region = frame[:,:,[0,2,1]]
????return?frame_region
modifiedClip = my_clip.fl(scroll)
modifiedClip.write_videofile("test.mp4")5.導(dǎo)出GIF
哇,聽(tīng)起來(lái)好像挺牛逼的,那用來(lái)導(dǎo)出到 GIF 嗎?
當(dāng)然可以:
from?moviepy.editor import*
# 剪輯50-60秒的音樂(lè) 00:00:50 - 00:00:60
video = CompositeVideoClip([VideoFileClip("videoplayback.mp4").subclip(50,60)])
my_clip.write_gif('test.gif', fps=12)怎么樣,moviepy 的這些技巧你學(xué)會(huì)了嗎?它還有更多的功能和技巧,詳情請(qǐng)見(jiàn)官方文檔哦:
https://zulko.github.io/moviepy/

End
「進(jìn)擊的Coder」專屬學(xué)習(xí)群已正式成立,搜索「CQCcqc4」添加崔慶才的個(gè)人微信或者掃描下方二維碼拉您入群交流學(xué)習(xí)。
及時(shí)收看更多好文
↓↓↓
