欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解如何利用Python拍攝延時(shí)攝影

 更新時(shí)間:2022年03月31日 08:44:03   作者:Python實(shí)用寶典  
隨著游戲引擎技術(shù)的快速發(fā)展,游戲畫面越來(lái)越精美,很多玩家希望拍攝這些精美游戲中的畫面。本文將講解如何利用Python實(shí)現(xiàn)延時(shí)攝影的拍攝,需要的可以參考一下

前言

這個(gè)時(shí)代,隨著游戲引擎技術(shù)的快速發(fā)展,游戲畫面越來(lái)越精美,許多人迷上了游戲內(nèi)的角色、場(chǎng)景。

尤其是端游,顯卡技術(shù)能夠支撐精美的游戲畫面,最有名的莫過(guò)于《地平線》系列游戲。

使用Python拍攝的《地平線4》延時(shí)攝影作品

很多玩家希望拍攝這些精美游戲中的畫面,尤其是希望能拍攝到游戲內(nèi)不同時(shí)刻的畫面,為了滿足這個(gè)需求,我們就需要用上延時(shí)攝影。游戲內(nèi)的時(shí)間過(guò)得比現(xiàn)實(shí)世界更快,一個(gè)小時(shí)內(nèi)可能你就能經(jīng)歷白天的夜晚的變化,這也為延時(shí)攝影提供了很好的環(huán)境。

那么究竟怎么在拍攝中實(shí)現(xiàn)延時(shí)的效果呢?方法大致有兩種,最簡(jiǎn)單的可以先錄制視頻,然后用后期剪輯軟件或者特效軟件通過(guò)丟幀的方法實(shí)現(xiàn),但這樣一來(lái)便造成了巨大的浪費(fèi)。拍幾個(gè)小時(shí)的視頻,如果通過(guò)丟幀實(shí)現(xiàn)延時(shí)效果,最后轉(zhuǎn)換為幾十分鐘的片段,那么被丟掉的幀就要比最后留下的多得多。如果要實(shí)現(xiàn)更高速的畫面運(yùn)動(dòng),這種浪費(fèi)無(wú)疑將會(huì)被更加擴(kuò)大。

本篇教程介紹第二種方法,定時(shí)截圖的形式,我們將結(jié)合前面Python實(shí)用寶典使用過(guò)的三個(gè)模塊——moviepy、win32gui 及 PIL 為大家講解如何使用Python在游戲中實(shí)現(xiàn)延時(shí)攝影,我還將教你如何將圖片拼接成視頻、添加背景音樂一條龍操作。

準(zhǔn)備

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

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

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

請(qǐng)選擇以下任一種方式輸入命令安裝依賴:

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

本文所有代碼均開源在倉(cāng)庫(kù)

定時(shí)"拍攝"

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

超方便的 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('極限競(jìng)速:地平線 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)

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

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

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

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

當(dāng)然還要補(bǔ)充背景音樂,代碼其實(shí)非常簡(jiǎn)單,調(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變量為對(duì)應(yīng)的文件名。

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

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

以上就是詳解如何利用Python拍攝延時(shí)攝影的詳細(xì)內(nèi)容,更多關(guān)于Python延時(shí)攝影的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何用Python制作微信好友個(gè)性簽名詞云圖

    如何用Python制作微信好友個(gè)性簽名詞云圖

    這篇文章主要介紹了如何用Python制作微信好友個(gè)性簽名詞云圖,上次查看了微信好友的位置信息,想了想,還是不過(guò)癮,于是就琢磨起了把微信好友的個(gè)性簽名拿到,然后分詞,接著分析詞頻,最后弄出詞云圖來(lái),需要的朋友可以參考下
    2019-06-06
  • Python實(shí)現(xiàn)簡(jiǎn)單的猜單詞小游戲

    Python實(shí)現(xiàn)簡(jiǎn)單的猜單詞小游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單的猜單詞小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 深入源碼解析Python中的對(duì)象與類型

    深入源碼解析Python中的對(duì)象與類型

    這篇文章主要介紹了深入源碼解析Python中的對(duì)象與類型,涉及到對(duì)象的引用計(jì)數(shù)方法和類型的定義等深層次內(nèi)容,需要的朋友可以參考下
    2015-12-12
  • python中將字典形式的數(shù)據(jù)循環(huán)插入Excel

    python中將字典形式的數(shù)據(jù)循環(huán)插入Excel

    這篇文章主要介紹了python中將字典形式的數(shù)據(jù)循環(huán)插入Excel的方法,需要的朋友可以參考下
    2018-01-01
  • Keras中的多分類損失函數(shù)用法categorical_crossentropy

    Keras中的多分類損失函數(shù)用法categorical_crossentropy

    這篇文章主要介紹了Keras中的多分類損失函數(shù)用法categorical_crossentropy,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • pyenv命令管理多個(gè)Python版本

    pyenv命令管理多個(gè)Python版本

    這篇文章主要介紹了pyenv命令管理多個(gè)Python版本依賴環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 詳細(xì)介紹Python的鴨子類型

    詳細(xì)介紹Python的鴨子類型

    相信python的開發(fā)者對(duì)于python的鴨子類型比較熟悉,鴨子類型在維基百科中的準(zhǔn)確定義是‘是動(dòng)態(tài)類型的一種風(fēng)格。在這種風(fēng)格中,一個(gè)對(duì)象有效的語(yǔ)義,不是由繼承自特定的類或?qū)崿F(xiàn)特定的接口,而是由"當(dāng)前方法和屬性的集合"決定’。所以這篇文章給大家python的鴨子類型。
    2016-09-09
  • Python中import導(dǎo)入不同目錄的模塊方法詳解

    Python中import導(dǎo)入不同目錄的模塊方法詳解

    這篇文章主要介紹了Python中import導(dǎo)入不同目錄的模塊方法詳解,需要的朋友可以參考下
    2020-02-02
  • python3+PyQt5泛型委托詳解

    python3+PyQt5泛型委托詳解

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5泛型委托的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python實(shí)現(xiàn)感知器算法(批處理)

    python實(shí)現(xiàn)感知器算法(批處理)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)感知器算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01

最新評(píng)論