您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python怎么實現將多張圖片合成視頻并加入背景音樂”,在日常操作中,相信很多人在Python怎么實現將多張圖片合成視頻并加入背景音樂問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python怎么實現將多張圖片合成視頻并加入背景音樂”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
實現的思路:將準備好的圖片通過opencv讀取出來,并將其設置好幀數等參數后合成為無聲視頻。
最后通過moviepy編輯視頻將背景音樂加入到視頻中。
開始之前還是需要說明一下非標準庫的來源,因為有些庫的名稱和需要導入模塊的名稱不一定就是一樣的。
import os # python標準庫,不需要安裝,用于系統文件操作相關 import cv2 # python非標準庫,pip install opencv-python 多媒體處理 from PIL import Image # python非標準庫,pip install pillow,圖像處理 import moviepy.editor as mov # python非標準庫,pip install moviepy,多媒體編輯
要使用到什么模塊已經敘述了,若是沒有的話安裝一下就可以了。接下來第一步就是將圖片素材準備好來編寫如何將圖片轉換成視頻。
def image_to_video(image_path, media_path): ''' 圖片合成視頻函數 :param image_path: 圖片路徑 :param media_path: 合成視頻保存路徑 :return: ''' # 獲取圖片路徑下面的所有圖片名稱 image_names = os.listdir(image_path) # 對提取到的圖片名稱進行排序 image_names.sort(key=lambda n: int(n[:-4])) # 設置寫入格式 fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', 'V') # 設置每秒幀數 fps = 2 # 由于圖片數目較少,這里設置的幀數比較低 # 讀取第一個圖片獲取大小尺寸,因為需要轉換成視頻的圖片大小尺寸是一樣的 image = Image.open(image_path + image_names[0]) # 初始化媒體寫入對象 media_writer = cv2.VideoWriter(media_path, fourcc, fps, image.size) # 遍歷圖片,將每張圖片加入視頻當中 for image_name in image_names: im = cv2.imread(os.path.join(image_path, image_name)) media_writer.write(im) print(image_name, '合并完成!') # 釋放媒體寫入對象 media_writer.release() print('無聲視頻寫入完成!')
向合成后的無聲視頻中添加背景音樂,背景音樂可以選擇從另外一段視頻中提取音頻。最后將提取到的音頻文件添加到該無聲視頻中。
def set_music(): ''' 合成視頻設置背景音樂函數 :return: ''' print('開始添加背景音樂!') # 初始化視頻文件對象 clip = mov.VideoFileClip('./media.mp4') # 從某個視頻中提取一段背景音樂 audio = mov.AudioFileClip('./source.mp4').subclip(0, 83) # 將背景音樂寫入.mp3文件 audio.write_audiofile('./background.mp3') # 向合成好的無聲視頻中添加背景音樂 clip = clip.set_audio(audio) # 保存視頻 clip.write_videofile('./media.mp4') print('背景音樂添加完成!') # image_to_video('./images/', './media.mp4') set_music()
上述代碼塊已經過素材完成測試,運行沒有任何報錯直接copy使用即可。
到此,關于“Python怎么實現將多張圖片合成視頻并加入背景音樂”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。