溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么利用Python拍攝延時(shí)攝影

發(fā)布時(shí)間:2022-03-31 10:23:00 來源:億速云 閱讀:229 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“怎么利用Python拍攝延時(shí)攝影”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“怎么利用Python拍攝延時(shí)攝影”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

準(zhǔn)備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上。

(可選1) 如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda,它內(nèi)置了Python和pip.

(可選2) 此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn)。

請選擇以下任一種方式輸入命令安裝依賴:

1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。

2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。

3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install moviepy
pip install pypiwin32
pip install pillow

本文所有代碼均開源在倉庫

定時(shí)"拍攝"

為了實(shí)現(xiàn)定時(shí)拍攝的邏輯,我們需要用到pypiwin32模塊和pillow模塊,在之前的這篇文章中有介紹過:

超方便的 Python 自動(dòng)喚醒窗口截圖腳本

分為三個(gè)步驟:

1. 獲得游戲窗口界面

2. 獲得游戲界面大小

3. 截圖

每隔N秒定時(shí)循環(huán)執(zhí)行以上三個(gè)步驟,代碼如下:

# main.py
# Python實(shí)用寶典
# 2022-03-25
import time
import win32gui
from PIL import ImageGrab


def get_window_pos(name):
    name = name
    handle = win32gui.FindWindow(0, name)
    if handle == 0:
        return None
    else:
        return win32gui.GetWindowRect(handle), handle

while True:
    try:
        (x1, y1, x2, y2), handle = get_window_pos('極限競速:地平線 4')
        win32gui.SetForegroundWindow(handle)
        img_ready = ImageGrab.grab((x1, y1, x2, y2))
        img_ready.save(f"./result/{time.time()}.jpg")
        time.sleep(5)
    except Exception as e:
        print(e)

請注意,"極限競速:地平線 4" 要改成你對應(yīng)拍攝的游戲名稱,這樣,運(yùn)行程序后就會(huì)自動(dòng)在result文件夾下定時(shí)生成截圖:

怎么利用Python拍攝延時(shí)攝影

成功截取你想要的時(shí)間段的場景圖片后,就可以進(jìn)行下面的拼接和補(bǔ)充背景音樂部分。

拼接延時(shí)攝影視頻

為了達(dá)到延時(shí)攝影的效果,我們在這一部分中將使用moviepy模塊,拼接所有圖片到一個(gè)視頻中。

當(dāng)然還要補(bǔ)充背景音樂,代碼其實(shí)非常簡單,調(diào)用了部分moviepy模塊的功能:

# jointer.py
# Python實(shí)用寶典
# 2022-03-25
import os
import moviepy
import moviepy.video.io.ImageSequenceClip
from moviepy.editor import *

def pics2video(frames_dir, video_dst, music, fps=10):
    """
    圖片合成MP4

    Args:
        frames_dir (str): 圖片目錄
        video_dst (str): 目標(biāo)目錄
        fps (int, optional): 幀數(shù). Defaults to 25.
    """
    frames_name = sorted(os.listdir(frames_dir))
    frames_path = [frames_dir+frame_name for frame_name in frames_name]
    clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(frames_path, fps=fps)
    
    audio_clip = AudioFileClip(music).volumex(0.5)
    audio = afx.audio_loop( audio_clip, duration=clip.duration)
    final_video = clip.set_audio(audio)

    final_video.write_videofile(video_dst, codec='libx264')

music = '打上花火.mp3'
frames_dir = './result/'
video_dst = 'screenshots.mp4'
pics2video(frames_dir, video_dst, music)

1.將你的音樂放在當(dāng)前目錄下,修改music變量為對應(yīng)的文件名。

2.調(diào)整你想要的fps參數(shù)——幀數(shù),這個(gè)值越低,畫面越順暢。

運(yùn)行此文件后就會(huì)在當(dāng)前文件夾下生成 'screenshots.mp4'. 這個(gè)就是我們的處理結(jié)果了,雙擊打開試試吧

讀到這里,這篇“怎么利用Python拍攝延時(shí)攝影”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI