1.尋找合適的Python庫(安裝是否麻煩、使用是否簡便、執(zhí)行會不會太久)
2.定義輸入輸出
3.設(shè)計執(zhí)行流程并一步步實現(xiàn)(定義函數(shù),與使用具體API相關(guān))
4.結(jié)論:時間太久,片段多長就花了多久的時間;CPU全跑滿了。
stackoverflowConcat videos too slow using Python MoviePY 里面有個答案說,調(diào)用包里封裝的ffmpeg函數(shù)會快一些:
You have some functions that perform direct calls to ffmpeg: github.com/Zulko/movie… And are therefore extremely efficient, for simple tasks such as yours.
5.重新設(shè)計和實現(xiàn),直接使用moviepy.video.io.ffmpeg_tools里的函數(shù):ffmpeg_extract_subclip(源音視頻文件,起,止,輸出名)。
6.結(jié)論:時間快了很多,幾乎是幾秒內(nèi)就完成。
7.優(yōu)化:一次處理多個時間段
8.優(yōu)化:每段時間配上名字
9.優(yōu)化:輸入輸出的合法性校驗
需要pip install moviepy
簡單的使用
from moviepy.editor import VideoFileClip, concatenate_videoclips clipOri = VideoFileClip("E:/2020-03-29 19-31-39.mkv") #截取兩個subclip再拼接 #time_length = int(clipOri.duration) 這句可以獲取片子的時 #超過時長會報錯,時長默認(rèn)用秒,也可以寫得更細(xì),(00:03:50.54)->3分50秒 cut1 = clipOri.subclip(0, 7053) cut2 = clipOri.subclip(7059, 8941) finalClip = concatenate_videoclips([cut1,cut2]) finalClip.write_videofile("E:/acut.mp4")
import os import moviepy.video.io.ffmpeg_tools as fftool from moviepy.tools import cvsecs def add_suffix(file_name, suffix): # 文件名拼接后綴 index = file_name.rfind('.') # 最后一個點號 res = file_name[:index] + '_' + suffix + file_name[index:] return res # 輸入 file_name = r"./XXX.mkv" output_arr = [ ('04:20','05:07', '自我介紹'), ('05:07','17:47', '項目經(jīng)歷'), ('17:37','24:40', 'HTTPS'), ('24:40','28:10', '實現(xiàn)讀寫鎖'), ] if not os.path.isfile(file_name): # 校驗 print("不合法的輸入", file_name) for startStr, endStr, suffix in output_arr: start = cvsecs(startStr) end = cvsecs(endStr) if start 0 or start >= end: # 校驗 print("不合法的時間",startStr, endStr) continue full_output_name = add_suffix(file_name, suffix) print('處理文件:', file_name, '時間:', startStr, '-', endStr) fftool.ffmpeg_extract_subclip(file_name,start,end,full_output_name) # 剪輯并輸出 print('處理功成功,輸出:',full_output_name)
以上就是python基于moviepy實現(xiàn)音視頻剪輯的詳細(xì)內(nèi)容,更多關(guān)于python moviepy實現(xiàn)音視頻剪輯的資料請關(guān)注腳本之家其它相關(guān)文章!
標(biāo)簽:迪慶 聊城 南寧 揚州 楊凌 牡丹江 撫州 六盤水
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python基于moviepy實現(xiàn)音視頻剪輯》,本文關(guān)鍵詞 python,基于,moviepy,實現(xiàn),音視頻,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。