圖片怎麼做成mp4格式視訊(怎麼把圖片變成mp4格式的視訊)
實現的思路:將準備好的圖片通過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使用即可。
最後,分享一下我從視訊中提取出來的輕音樂聽起來還挺好聽。
background音訊:00:0001:23
點選下面的連線,檢視歷史文章
如何實現根據照片獲取地理位置及如何防禦照片洩漏地理位置!
python如何實現網路測試,瞭解一下speedtest-cli...
模型已經寫好了,怎麼表白就看你的了!
又是櫻花盛開的季節,使用小烏龜來畫一顆櫻花樹吧!
Python 讀取PDF檔案為文字字元並轉換為音訊...
python 獲取最新房價資訊-以北京房價為例
辦公自動化:Image圖片轉換成PDF文件儲存...
python做一個微型美顏圖片處理器,十行程式碼即可完成...
用python做一個文字翻譯器,自動將中文翻譯成英文,超方便的!
python 表情包下載器,輕鬆下載上萬個表情包、鬥圖不用愁...
小王,給這2000個客戶發一下節日祝福的郵件...
python 一行命令開啟網路間的檔案共享...