首頁 > 軟體

Python實現合併多張圖片成視訊的範例詳解

2023-02-03 18:00:39

合併多張圖片到視訊的方法說明

除了使用 OpenCV 合併多張圖片成視訊外,還可以使用其他工具和庫,例如:

  • moviepy: 這是一個基於 Python 的視訊編輯庫,可以幫助您快速和簡便地合併多張圖片成視訊。
  • FFmpeg: 這是一個強大的視訊編輯工具,可以在命令列中合併多張圖片成視訊。

moviepy 將多張圖片合成視訊

安裝 moviepy 庫:在命令列或終端中執行 pip install moviepy 安裝 moviepy。

匯入所需模組

在 Python 程式碼中匯入所需模組,如下:

from moviepy.editor import ImageSequenceClip

建立 ImageSequenceClip 物件

使用 ImageSequenceClip 函數建立 ImageSequenceClip 物件,該函數的引數包括圖片的路徑、影格率等。例如:

from moviepy.editor import ImageSequenceClip

image_path = "./images/"
fps = 1
clip = ImageSequenceClip(image_path, fps=fps)

儲存視訊

使用 write_videofile() 函數將合併後的視訊儲存到本地,如下:

clip.write_videofile("output.mp4", fps=fps)

1秒1幀圖片。

moviepy 合成多張圖片更多設定

可以通過一些額外的設定來調整合成視訊的外觀。

設定視訊大小:使用 size 引數指定視訊的大小:

clip = ImageSequenceClip(image_path, fps=fps, size=(640, 480))

設定視訊長度:使用 duration 引數指定視訊的長度:

clip = ImageSequenceClip(image_path, fps=fps, duration=5)

設定視訊幀順序:使用 iter_images 引數指定圖片的順序,如下:

def image_gen():
    for i in range(10, 0, -1):
        yield "image_{}.png".format(i)
clip = ImageSequenceClip(image_gen(), fps=fps)

新增音訊:使用 AudioFileClip 函數建立音訊,然後使用 set_audio 函數將音訊新增到視訊中,如下:

from moviepy.audio.io.AudioFileClip import AudioFileClip

audio = AudioFileClip("xiangpica_music.mp3")
clip.set_audio(audio)

名詞解釋

影格率:影格率(fps)是指每秒顯示的幀數,一般的視訊影格率為 24 fps 或 30 fps。影格率越高,視訊就越流暢,檔案也會越大。

視訊格式:視訊格式是指視訊檔的儲存格式,常見的格式有 MP4、AVI、MOV 等。

視訊編碼:視訊編碼是指視訊檔的資料壓縮格式,常見的編碼有 H.264、VP9 等。

音訊編碼:音訊編碼是指音訊檔的資料壓縮格式,常見的編碼有 MP3、AAC 等。

影象格式:影象格式是指影象檔案的儲存格式,常見的格式有 PNG、JPG、BMP 等。

FFmpeg 將多張圖片合成視訊

可以使用 FFmpeg 庫來將多張圖片合成視訊,下面是一個簡單的範例:

import os

images_path = './images'
video_name = './video/output.mp4'
fps = 2

os.system(
    f'ffmpeg -y -framerate {fps} -i "{images_path}/%d.jpeg" -c:v libx264 -r {fps} -pix_fmt yuv420p "{video_name}"')

在上述程式碼中,需要提供儲存圖片的資料夾路徑 images_path 和最終生成的視訊檔名 video_name。

FFmpeg 命令中的引數 -framerate 指定了圖片的影格率,-i 指定了圖片的檔名,圖片檔名按照順序命名為 1.jpg、2.jpg 等,圖片名稱根據你本地電腦檔案設定即可。

引數 -c:v libx264 指定了視訊的編碼格式,-r 指定了視訊的影格率,-pix_fmt yuv420p 指定了影象的格式。

上述範例中使用的是 MP4 視訊格式,如果需要使用其他格式,可以在 video_name 中更改副檔名。

以上就是Python實現合併多張圖片成視訊的範例詳解的詳細內容,更多關於Python合併圖片成視訊的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com