日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[Python MoviePy 音视频开发零基础到实战] 一、用6条代码为你的视频裁剪以及添加水印

發布時間:2023/12/4 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Python MoviePy 音视频开发零基础到实战] 一、用6条代码为你的视频裁剪以及添加水印 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、MoviePy 安裝及配置

在 Python 有一個音視頻開發模塊 MoviePy,MoviePy 依賴于 FFmepg,使用 MoviePy 可以對音視頻進行編輯;例如視頻合成、視頻處理、視頻特效等。

在 Python 下直接使用 pip 工具進行安裝即可:

pip install moviepy

如果是在 windows 系統下使用 MoviePy 還需要額外安裝 ImageMagick,否則將會出現如下錯誤:

以上提示告訴我們的關鍵信息是我們可能沒有安裝 ImageMagick ,需要將其安裝并且配置安裝后的文件地址則可以正常使用。ImageMagick 可以搜索引擎搜索或者微信關注 [李蘭清的代碼小屋] 回復 ImageMagick 獲取下載鏈接。

安裝完 ImageMagick 后,我們打開 Python 文件目錄搜索 MoviePy,找到 MoviePy 目錄在其下文件中找到 config_defaults.py 文件。

打開該文件對其進行配置 ImageMagick 根目錄下 magick.exe 所在的位置信息:

這樣,之后在使用 MoviePy 將會省心很多。

二、MoviePy 基礎播放

在 MoviePy 中有一個視頻剪輯類 VideoFileClip,它繼承于基類 VideoClip。我們可以使用 VideoFileClip 直接對某一視頻或 GIF 進行加載:

clip = VideoFileClip(r"C:\Users\mx\Desktop\demo.mp4") clip = VideoFileClip(r"C:\Users\mx\Desktop\demo.gif")

加載了視頻對象后我們可以使用該對象的 subclip 方法對視頻進行剪輯,subclip 方法接收兩個參數 t_start 與 t_end,t_start 默認為 0 。t_start 表示對該視頻截取片段從第幾秒開始,t_end 表示結束的時間位置,例如如下代碼:

clip = VideoFileClip(r"C:\Users\mx\Desktop\hmbb.mp4").subclip(10,20)

VideoFileClip 首先獲取到了 hmbb.mp4 這個視頻對象,隨后調用 subclip 截取第 10 秒到第 20 秒的視頻內容。如果想從視頻末尾截取直接在 t_end 參數傳入負數即可:

clip = VideoFileClip(r"C:\Users\mx\Desktop\hmbb.mp4").subclip(0,-2)

以上代碼 0,-2 表示該視頻從結尾裁剪 2 秒。最后將視頻導出即可:

from moviepy.editor import *clip = VideoFileClip(r"C:\Users\mx\Desktop\hmbb.mp4").subclip(10,22) clip.write_videofile(r"C:\Users\mx\Desktop\myHolidays_edited.webm")

以上代碼是這部分完整的代碼,最終使用 write_videofile 導出媒體文件,可以在導出路徑中填寫視頻的后綴名進行默認轉碼。

最終導出文件后將會出現一個 12 秒視頻,為導出的結果:

我們還可以通過 volumex 方法更改視頻對象的音量大小:

clip = clip.volumex(1.2)

三、MoviePy 文字添加

對視頻添加文字可以使用 TextClip 類,該類創建時可以傳入多個參數對需要創建的文字進行修飾,在此先簡單的介紹幾個基本傳入參數。首先看看基本代碼示例(在此注意,使用 TextClip 必須安裝 ImageMagick,在 windows 操作系統上需要對其進行配置,配置方法查看第一點內容):

txt_clip = TextClip("I am 1_bit ",fontsize=70,color='white')

以上代碼示例創建了 TextClip 對象,該對象的的第一個參數需要接收一個寫入的字符串,該字符串則為添加到視頻中的字符串,在 TextClip 類的原型中參數名為 txt;接下來在以上示例中傳入了 fontsize 設置了其字體大小為 70,并且設置了顏色 color 為白色 white。那此時如何將該 TextClip 對象的文本添加至視頻中呢?先不急,我們此時還要將該 TextClip 對象的位置進行設置,如何進行顯示是非常必要的。查看示例:

txt_clip = txt_clip.set_pos('center').set_duration(3)

以上代碼使用 txt_clip 調用 set_pos 方法設置該文本顯示在視頻的區域為 center 中部,而 set_duration 表示顯示的次序時間,傳入 3表示顯示 3 秒。

接下來我們應該使用 CompositeVideoClip 類對兩者進行裝載。代碼示例如下:

video = CompositeVideoClip([clip, txt_clip])

此時生成了一個 CompositeVideoClip 的對象 video,我們可以調用 video 中的 write_videofile 方法將裝載后的視頻進行輸出,從而得到最終的結果。代碼示例如下:

video.write_videofile(r"C:\Users\mx\Desktop\hi.webm")

在 write_videofile 后傳入地址輸出路徑即可,最終將會出現一個輸出視頻。該部分完整代碼如下:

from moviepy.editor import *clip = VideoFileClip(r"C:\Users\mx\Desktop\hmbb.mp4").subclip(10,20) clip = clip.volumex(10.2)txt_clip = TextClip("I am 1_bit",fontsize=70,color='white') txt_clip = txt_clip.set_pos('center').set_duration(10)video = CompositeVideoClip([clip, txt_clip]) video.write_videofile(r"C:\Users\mx\Desktop\hi.webm")

三、TextClip 的其他參數設置

我們完成了基本的視頻導入及輸出后,我們可以在創建 TextClip 時傳入更多的參數對需要顯示的文字進行更深入的修飾。首先我們可以查看 TextClip 中 init 方法原型:

def __init__(self, txt=None, filename=None, size=None, color='black',bg_color='transparent', fontsize=None, font='Courier',stroke_color=None, stroke_width=1, method='label',kerning=None, align='center', interline=None,tempfilename=None, temptxt=None,transparent=True, remove_temp=True,print_cmd=False):

我們在此簡單的對 bg_color、stroke_color、stroke_color 、stroke_width、kerning 進行講解。

bg_color

bg_color 可以設置該文本內容的背景色,直接傳參為指定顏色即可。代碼示例如下:

txt_clip = TextClip("I am 1_bit",fontsize=70,color='white',bg_color="red")

導出后播放內容如下:

stroke_color 與 stroke_width

stroke_color 表示對文本描邊的顏色,可以通過顏色標識進行設置。示例代碼如下:

txt_clip = TextClip("I am 1_bit",fontsize=70,color='white',bg_color="red",stroke_color="green")

也可以通過 stroke_width 設置描邊寬度,單位為像素。代碼示例如下:

txt_clip = TextClip("I am 1_bit",fontsize=70,color='white',bg_color="red",stroke_color="green",stroke_width=2.1)

kerning

可以使用 kerning 設置字母間距,代碼示例如下:

txt_clip = TextClip("I am 1_bit",fontsize=70,color='white',bg_color="red",stroke_color="green",kerning=2)

總結

以上是生活随笔為你收集整理的[Python MoviePy 音视频开发零基础到实战] 一、用6条代码为你的视频裁剪以及添加水印的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。