日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python用moviepy對(duì)視頻進(jìn)行簡(jiǎn)單的處理

瀏覽:185日期:2022-06-25 13:39:43
楔子

隨著自媒體時(shí)代,現(xiàn)在對(duì)視頻的處理變得越來(lái)越常見(jiàn)。我們可以使用Adobe的一些專(zhuān)業(yè)工具,但是效率不高;如果只是對(duì)視頻進(jìn)行一些簡(jiǎn)單的處理的話,或者視頻的數(shù)量非常多的話,那么使用專(zhuān)業(yè)軟件顯然就不太適合了。

而python中有專(zhuān)門(mén)用于處理視頻的庫(kù):moviepy,可以非常方便地對(duì)視頻進(jìn)行一些簡(jiǎn)單處理,下面我們就來(lái)看一看。

首先是安裝:pip install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple,個(gè)人推薦安裝的時(shí)候使用清華源,因?yàn)閙oviepy需要依賴(lài)另一個(gè)庫(kù):imageio_ffmpeg,這個(gè)庫(kù)里面包含了一個(gè)50多MB的ffmpeg二進(jìn)制文件,直接從pypi上拉取的話會(huì)很長(zhǎng)時(shí)間,如果網(wǎng)絡(luò)不行的話。當(dāng)然安裝moviepy的時(shí)候,imageio_ffmpeg就順帶安裝了。

從這里我們也看到,moviepy底層還是依賴(lài)ffmpeg這個(gè)專(zhuān)業(yè)軟件的,而ffmpeg是跨平臺(tái)的,所以moviepy也可以在任意平臺(tái)上使用。

moviepy的簡(jiǎn)單使用

我們來(lái)簡(jiǎn)單看一下如何使用moviepy這個(gè)模塊,不過(guò)在使用之前我們需要一個(gè)視頻,就使用you-get工具從bilibili上下載一個(gè)吧。

python用moviepy對(duì)視頻進(jìn)行簡(jiǎn)單的處理

下面我們就使用這個(gè)下載的視頻進(jìn)行演示。

一個(gè)小栗子

我們以一個(gè)小栗子,來(lái)演示一下使用moviepy是怎么操作視頻的。

from moviepy import editor# 調(diào)用 `VideoFileClip(文件名)` 即可將視頻加載進(jìn)來(lái)# 可以讀取各種格式的視頻文件video_clip = editor.VideoFileClip(r'C:UserssatoriDesktop警察蜀黍!!!就是這個(gè)人!!!! 翻唱.flv')# 調(diào)用subclip方法,傳入起始時(shí)間和結(jié)束時(shí)間,即可截取視頻中的指定部分'''video_clip.subclip(): 截取視頻全部,相當(dāng)于沒(méi)做處理video_clip.subclip(10): 從視頻的 `第10秒` 截取到 `結(jié)尾`video_clip.subclip(10, -2): 從視頻的 `第10秒` 截取到結(jié)尾的 `前兩秒`video_clip.subclip((1, 35), (3, 10)): 從視頻的 `第1分35秒` 截取到 `3分10秒` video_clip.subclip((1, 2, 18), (2, 1, 34)): 從視頻的 `第1小時(shí)2分18秒` 截取到 `第2小時(shí)1分34秒`'''video_clip = video_clip.subclip(5, 20)# 調(diào)整音量,變?yōu)樵瓉?lái)的0.5video_clip = video_clip.volumex(0.5)# 做一個(gè)文本剪貼板,自定義樣式、顏色。text_clip = editor.TextClip('hanser, little angel', fontsize=40, color='blue')# 讓文本在屏幕的正中間顯示,持續(xù)10秒,設(shè)置透明度為0.8'''屏幕左上角為(0, 0),右下角為(屏幕寬度, 屏幕高度)set_position((800, 500)): 顯示在800, 500的位置上set_position(('center', 'center')): 顯示在屏幕的正中央set_position((0.4, 0.6), True): 顯示在距離左邊百分之40、距離上邊百分之60的位置上set_duration(10): 持續(xù)10秒set_opacity(0.6): 設(shè)置透明度為0.6'''text_clip = text_clip.set_position(('center', 'center')).set_duration(10).set_opacity(0.8)# 然后把文本剪貼板貼在視頻上video_clip = editor.CompositeVideoClip([video_clip, text_clip])# 然后導(dǎo)出視頻,可以是其它的視頻格式video_clip.write_videofile('1.mp4')# 下面很重要:r'''如果你是在Windows上執(zhí)行,不出意外的話,當(dāng)你在執(zhí)行 editor.TextClip() 的時(shí)候,會(huì)報(bào)出如下錯(cuò)誤:OSError: MoviePy Error: creation of None failed because of the following error:[WinError 2] 系統(tǒng)找不到指定的文件。..This error can be due to the fact that ImageMagick is not installed on your computer, or (for Windows users) that you didn’t specify the path to the ImageMagick binary in file conf.py, or that the path you specified is incorrect這個(gè)錯(cuò)誤是由于你的電腦上缺少I(mǎi)mageMagick造成的,我們需要去http://www.imagemagick.org/script/download.php這個(gè)網(wǎng)站上下載對(duì)應(yīng)操作系統(tǒng)的ImageMagick,我這里是Windows。可能下載的比較慢,畢竟是外網(wǎng)。如果覺(jué)得速度無(wú)法忍受的話,我提供了相應(yīng)了網(wǎng)盤(pán)鏈接: 鏈接:https://pan.baidu.com/s/1n1xNohD7V-abQbX81UENJQ 提取碼:usl3,可以進(jìn)行保存下載下載完畢之后,直接安裝在指定的目錄。然后修改site-packagesmoviepyconfig_defaults.py, 在文件的尾部有如下內(nèi)容:import osFFMPEG_BINARY = os.getenv(’FFMPEG_BINARY’, ’ffmpeg-imageio’)IMAGEMAGICK_BINARY = os.getenv(’IMAGEMAGICK_BINARY’, ’auto-detect’)我們把 `IMAGEMAGICK_BINARY = ` 后面的內(nèi)容,換成你剛才ImageMagick的安裝路徑下magick.exe的絕對(duì)路徑:import osFFMPEG_BINARY = os.getenv(’FFMPEG_BINARY’, ’ffmpeg-imageio’)IMAGEMAGICK_BINARY = r’E:ImageMagick-7.0.10-Q16magick.exe’'''# 然后執(zhí)行就沒(méi)有問(wèn)題了

python用moviepy對(duì)視頻進(jìn)行簡(jiǎn)單的處理

我們看到此時(shí)文字就添加進(jìn)去了,并且該視頻只有15秒,也就是我們截取的部分。

那么moviepy是如何工作的呢?

moviepy使用ffmpeg對(duì)視頻、音頻文件進(jìn)行讀取和導(dǎo)出,使用ImageMagick生成文字等等。

首先我們使用VideoFileClip對(duì)視頻進(jìn)行讀取,得到VideoFileClip對(duì)象,我們記作clip。我們可以對(duì)這個(gè)clip進(jìn)行任意的操作(剪切、合并、調(diào)整亮度、速度、和其它的clip拼接在一起等等)。并且我們需要注意的是,這些操作是可以鏈?zhǔn)秸{(diào)用的,因?yàn)槊恳淮尾僮鞫紩?huì)得到一個(gè)新的clip,不會(huì)影響原來(lái)的。我們上面演示了視頻的讀取、以及指定部分的截取、音量的調(diào)整、以及添加文字等等,我們后面還會(huì)介紹更多操作。

并且我們最后調(diào)用clip的write_videofile方法,可以將處理之后的視頻寫(xiě)入本地。當(dāng)然我們還可以使用pygame,或者jupyter notebook進(jìn)行展示。為了方便,我們后面就使用jupyter notebook。

視頻屬性

我們說(shuō)一個(gè)視頻,肯定有大小、寬高、fps、時(shí)長(zhǎng)等等屬性,下面我們就來(lái)看看如何獲取這些屬性。

from moviepy import editor# 調(diào)用 `VideoFileClip(文件名)` 即可將視頻加載進(jìn)來(lái)# 可以讀取各種格式的視頻文件video_clip = editor.VideoFileClip(r'C:UserssatoriDesktop警察蜀黍!!!就是這個(gè)人!!!! 翻唱.flv')# 獲取寬度和高度print(video_clip.size) # [800, 600]print(video_clip.w, video_clip.h) # 800 600# 獲取fpsprint(video_clip.fps) # 23.976023976023978# 獲取時(shí)長(zhǎng),單位是秒print(video_clip.duration) # 155.12# 獲取大小,可以直接使用os模塊import os# 大概16兆print(os.stat(r'C:UserssatoriDesktop警察蜀黍!!!就是這個(gè)人!!!! 翻唱.flv').st_size) # 16852110print(os.stat(r'C:UserssatoriDesktop警察蜀黍!!!就是這個(gè)人!!!! 翻唱.flv').st_size / 1024 ** 2) # 16.07142448425293視頻合成

視頻合成有兩種方式:

1.多個(gè)視頻按照先后順序拼接起來(lái)。比如一個(gè)一分鐘和一個(gè)兩分鐘的視頻組合起來(lái),變成三分鐘。

from moviepy import editorvideo_clip = editor.VideoFileClip(r'C:UserssatoriDesktop警察蜀黍!!!就是這個(gè)人!!!! 翻唱.flv')# 截取10到20秒video_clip1 = video_clip.subclip(10, 20)# 截取1分45秒到結(jié)尾的前兩秒video_clip2 = video_clip.subclip((1, 45), -2)# 然后前后拼接起來(lái)clip = editor.concatenate_videoclips([video_clip1, video_clip2])# 使用jupyter進(jìn)行展示,設(shè)置一個(gè)寬度clip.ipython_display(width=360)

python用moviepy對(duì)視頻進(jìn)行簡(jiǎn)單的處理

此時(shí)視頻就展示在jupyter上了,而且是兩個(gè)視頻拼接在一起的。并且在concatenate_videoclips中還可以指定一個(gè)transition參數(shù)(也是一個(gè)VideoFileClip對(duì)象),作為銜接之間的過(guò)渡。

還是比較簡(jiǎn)單的,假設(shè)我們有5個(gè)視頻,如果只是簡(jiǎn)單的前后拼接就可以這么做。

from moviepy import editorvideos = ['1.mp4', '2.mp4', '3.flv', '4.mp4', '5.flv']clips = []for video in videos: clips.append(editor.VideoFileClip(video))editor.concatenate_videoclips(clips).write_videofile('xxx.mp4')

這里值得一提的是,多個(gè)clip進(jìn)行拼接,并不需要這些clip之間有相同的尺寸、時(shí)長(zhǎng)什么的,僅僅是將它們按照順序拼接起來(lái)而已。

另外,當(dāng)你用jupyter進(jìn)行展示時(shí),視頻不要過(guò)長(zhǎng),否則報(bào)錯(cuò)。當(dāng)然你也可以給ipython_display函數(shù)傳遞一個(gè)maxduration參數(shù),讓它支持顯示更大時(shí)長(zhǎng)的視頻文件。但是注意:如果文件過(guò)大,在jupyter上可能會(huì)耗光你的內(nèi)存。

2.多個(gè)視頻在同一個(gè)畫(huà)面上顯示

from moviepy import editor# margin: 設(shè)置外邊距video_clip = editor.VideoFileClip(r'C:UserssatoriDesktop警察蜀黍!!!就是這個(gè)人!!!! 翻唱.flv').margin(10)video_clip1 = video_clip.subclip(10, 20)# editor.vfx.mirror_x: x軸鏡像video_clip2 = video_clip1.fx(editor.vfx.mirror_x)# editor.vfx.mirror_y: y軸鏡像video_clip3 = video_clip1.fx(editor.vfx.mirror_y)# resize: 等比縮放video_clip4 = video_clip1.resize(0.8)# 列表里面有兩個(gè)列表,所以會(huì)將屏幕上下等分# 上半部分顯示video_clip1, video_clip2,下半部分顯示video_clip3, video_clip4clip = editor.clips_array([[video_clip1, video_clip2], [video_clip3, video_clip4]])clip.ipython_display(width=600)

python用moviepy對(duì)視頻進(jìn)行簡(jiǎn)單的處理

所以我們看到concatenate_videoclips是將多個(gè)視頻前后拼接,而clips_array是將多個(gè)視頻同時(shí)顯示在一個(gè)畫(huà)面里面。

修改視頻屬性

from moviepy import editorclip = editor.VideoFileClip(r'C:UserssatoriDesktop警察蜀黍!!!就是這個(gè)人!!!! 翻唱.flv').subclip(10, 20)clip = (clip.fx(editor.vfx.resize, width=460) # 調(diào)整尺寸,保持比例 .fx(editor.vfx.speedx, 2) # 調(diào)整倍數(shù) .fx(editor.vfx.colorx, 0.5) # 畫(huà)面調(diào)暗 )視頻音頻合成

假設(shè)我們有一個(gè)視頻A和一個(gè)視頻B,我要將視頻B的音頻和視頻A組合起來(lái),怎么做呢?

from moviepy import editorclipA = editor.VideoFileClip(r'A.mp4')clipB = editor.VideoFileClip(r'B.mp4')# 獲取B的音頻audioB = clipB.audio# 將B的音頻和A組合起來(lái)clipA = clipA.set_audio(audioB)# 然后保存即可# 或者我們也可以直接加載一個(gè)音頻audio = editor.AudioFileClip('b.mp3')

以上就是python用moviepy對(duì)視頻進(jìn)行簡(jiǎn)單的處理的詳細(xì)內(nèi)容,更多關(guān)于python moviepy對(duì)視頻處理的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
五月国产精品| 精品视频自拍| 国产一区清纯| 国产免费成人| 国产成人精品一区二区免费看京| 久久高清免费| 亚洲精品护士| 欧美freesex黑人又粗又大| 精品久久福利| 四虎在线精品| 欧美/亚洲一区| 美女视频黄免费的久久| 日韩精品影视| 精品国产乱码久久久久久1区2匹| 久久精品免费一区二区三区| bbw在线视频| 黄色免费成人| 国产伦精品一区二区三区在线播放| 香蕉成人av| 国产aa精品| 午夜一区在线| 日韩在线视频精品| 国产欧美日韩一区二区三区四区 | 日韩中文av| 野花国产精品入口| 99热精品在线| 91亚洲无吗| 精品五月天堂| 99久久久久久中文字幕一区| 国产精品呻吟| 国产精品中文字幕制服诱惑| 国产成人调教视频在线观看| 久久影视一区| 中文字幕视频精品一区二区三区| 国产精品大片免费观看| 国产成人调教视频在线观看| 欧美.日韩.国产.一区.二区| 日韩国产在线不卡视频| 久久男人av资源站| 在线精品亚洲| 91日韩在线| 蜜桃久久久久久| 美女高潮久久久| 欧美日韩免费观看一区=区三区 | 亚洲精品免费观看| 麻豆精品久久| 影视先锋久久| 国产精品一区二区美女视频免费看| 色偷偷色偷偷色偷偷在线视频| 国产亚洲一级| 久久爱www.| 欧美日韩精品免费观看视频完整| 国产日韩一区二区三免费高清| 中文在线中文资源| 亚洲人www| 日韩福利一区| 婷婷视频一区二区三区| 黄毛片在线观看| 日韩免费精品| 香蕉国产精品| 国产一区二区三区不卡视频网站| 久久国产高清| 综合日韩av| 欧美日韩 国产精品| 欧美天堂视频| 欧美日韩亚洲一区在线观看| 不卡一区综合视频| 久久99青青| 蜜臀av亚洲一区中文字幕| 国产不卡人人| 国产乱人伦精品一区| 99国产精品自拍| 在线天堂中文资源最新版| 91精品麻豆| 天使萌一区二区三区免费观看| 中文字幕在线免费观看视频| 亚洲精品伦理| 99久久亚洲精品| 精品一区二区三区的国产在线观看| 视频一区二区国产| 欧美日韩免费观看视频| 国产精品免费99久久久| 在线观看亚洲精品福利片| 久久精品高清| 国产成人精品亚洲线观看 | 国产精品乱战久久久| 美女尤物久久精品| 成人va天堂| 久久精品国产免费| 中文字幕av亚洲精品一部二部| 99免费精品| 国内在线观看一区二区三区| 日韩激情一区| 日韩中出av| 麻豆精品91| 欧美1区免费| av综合电影网站| 久久精品免视看国产成人| 日本特黄久久久高潮| 国产女优一区| 久久国产影院| 国产传媒在线| 国产va免费精品观看精品视频| 青青国产91久久久久久| 亚洲综合日本| 欧美aa国产视频| 日韩不卡在线| 日韩欧美中文| 国产精选在线| 免费看av不卡| 日韩在线综合| 日韩激情一区| 999国产精品| 999久久久亚洲| 日本美女一区| 成人精品亚洲| 91久久久精品国产| 国产亚洲精品v| 在线国产日韩| 综合亚洲视频| 少妇精品久久久一区二区三区| 亚洲香蕉视频| 四虎成人精品一区二区免费网站| 久久高清国产| 亚洲资源在线| 日韩欧乱色一区二区三区在线| 亚洲精品日韩久久| 欧美亚洲福利| 麻豆久久一区| 国产网站在线| 久久精品国产99久久| 国产在线欧美| 在线亚洲观看| 免费不卡在线视频| 天堂久久一区| 国产精品巨作av| 国产精品二区不卡| 日韩精品久久久久久久电影99爱| 亚洲一级特黄| 蜜臀av一区二区在线免费观看 | 亚洲人成在线影院| 日韩激情一区二区| 国产精品va视频| 日本黄色精品| 狠狠操综合网| 爽爽淫人综合网网站| 亚洲精品观看| 美女性感视频久久| 久久国产主播| 久久国产精品毛片| 欧美一区影院| 国际精品欧美精品| 久久久久久久久99精品大| 亚洲一级在线| 国产欧美日韩精品一区二区免费 | 久久久777| 男女精品网站| 国产欧美一区二区精品久久久| 国产中文欧美日韩在线| 91精品久久久久久久久久不卡| 视频一区二区中文字幕| 国产欧美日本| 亚洲无线一线二线三线区别av| 老色鬼久久亚洲一区二区| 国产欧美高清视频在线| 91tv亚洲精品香蕉国产一区| 久热精品在线| 精品国产美女a久久9999| 精品欧美久久| 热久久久久久| 亲子伦视频一区二区三区| 99在线|亚洲一区二区| 日欧美一区二区| www在线观看黄色| 久久一二三区| 91日韩欧美| 日韩在线麻豆| 在线亚洲免费| 精品久久网站| 中文字幕亚洲在线观看| 正在播放日韩精品| 亚洲精品综合| 在线天堂中文资源最新版| 免费人成在线不卡| jizzjizz中国精品麻豆| 亚洲精品影视| 国产精品99视频| 在线国产精品一区| 一区二区三区四区日本视频| 亚洲影院天堂中文av色| 精品91福利视频| 亚洲区国产区| 99久久夜色精品国产亚洲狼| 国产伦理一区| 久久午夜视频| 久久久久久婷| 国产精品资源| 99精品视频在线观看免费播放| 中文字幕乱码亚洲无线精品一区| 成人亚洲一区二区|