最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解如何利用Python拍攝延時攝影

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

前言

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

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

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

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

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

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

準備

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

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

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

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

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

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

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

pip?install?moviepy
pip?install?pypiwin32
pip?install?pillow

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

定時"拍攝"

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

超方便的 Python 自動喚醒窗口截圖腳本

分為三個步驟:

1. 獲得游戲窗口界面

2. 獲得游戲界面大小

3. 截圖

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

# main.py
# Python實用寶典
# 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)拍攝的游戲名稱,這樣,運行程序后就會自動在result文件夾下定時生成截圖:

成功截取你想要的時間段的場景圖片后,就可以進行下面的拼接和補充背景音樂部分。

拼接延時攝影視頻

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

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

# jointer.py
# Python實用寶典
# 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): 目標目錄
????????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.將你的音樂放在當前目錄下,修改music變量為對應(yīng)的文件名。

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

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

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

相關(guān)文章

  • python連接sql server亂碼的解決方法

    python連接sql server亂碼的解決方法

    為解決python連接sql server是出現(xiàn)的亂碼,需要在連接sql server 時指定字符集utf8(client charset = UTF-8),python環(huán)境制定了字符集變量(#coding=utf-8 )
    2013-01-01
  • 利用matplotlib實現(xiàn)根據(jù)實時數(shù)據(jù)動態(tài)更新圖形

    利用matplotlib實現(xiàn)根據(jù)實時數(shù)據(jù)動態(tài)更新圖形

    今天小編就為大家分享一篇利用matplotlib實現(xiàn)根據(jù)實時數(shù)據(jù)動態(tài)更新圖形,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python修改字典鍵(key)的方法

    python修改字典鍵(key)的方法

    在本篇文章里小編給大家整理的是關(guān)于python修改字典鍵(key)的方法以及相關(guān)知識點,需要的朋友們參考下。
    2019-08-08
  • Python實現(xiàn)B站UP主小助手詳解開發(fā)流程

    Python實現(xiàn)B站UP主小助手詳解開發(fā)流程

    功能是不是還挺豐富的,從寫第一行代碼到完成也就花了兩天不到的時間,這也證明了使用python開發(fā)的高效率,下面來說說這些功能開發(fā)中我遇到了哪些問題,我又是如何解決的
    2022-02-02
  • Python代碼使用 Pyftpdlib實現(xiàn)FTP服務(wù)器功能

    Python代碼使用 Pyftpdlib實現(xiàn)FTP服務(wù)器功能

    FTP 服務(wù)器,在此之前我都是使用Linux的vsftpd軟件包來搭建FTP服務(wù)器的,現(xiàn)在發(fā)現(xiàn)了利用pyftpdlib可以更加簡單的方法即可實現(xiàn)FTP服務(wù)器的功能 ,需要的朋友可以參考下
    2019-07-07
  • 非常詳細的Django連接mysql數(shù)據(jù)庫步驟記錄

    非常詳細的Django連接mysql數(shù)據(jù)庫步驟記錄

    我的Mysql中已經(jīng)有了項目需要使用的相關(guān)數(shù)據(jù)庫,現(xiàn)在需要通過django來獲取Mysql里的數(shù)據(jù)并使用,下面這篇文章主要給大家介紹了關(guān)于非常詳細的Django連接mysql數(shù)據(jù)庫步驟,需要的朋友可以參考下
    2022-10-10
  • Python與C++中梯度方向直方圖的實現(xiàn)

    Python與C++中梯度方向直方圖的實現(xiàn)

    在學習HOG特征的時候,發(fā)現(xiàn)一片英文文章講得淺顯易懂。因此翻譯在這里學習,感興趣的朋友快來看看吧
    2022-03-03
  • requests.post()方法中data和json參數(shù)的使用

    requests.post()方法中data和json參數(shù)的使用

    這篇文章主要介紹了requests.post()方法中data和json參數(shù)的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • jupyter notebook中美觀顯示矩陣實例

    jupyter notebook中美觀顯示矩陣實例

    這篇文章主要介紹了jupyter notebook中美觀顯示矩陣實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 深入理解Python中的函數(shù)參數(shù)傳遞機制

    深入理解Python中的函數(shù)參數(shù)傳遞機制

    在Python中,對于函數(shù)的參數(shù)傳遞,有兩種主要的方式:傳值和傳引用。事實上,Python的參數(shù)傳遞是一種“傳對象引用”的方式,本文呢我們將詳細介紹Python的函數(shù)參數(shù)傳遞機制,這對理解Python編程語言的底層實現(xiàn)以及優(yōu)化你的代碼都非常有幫助
    2023-07-07

最新評論

疏勒县| 分宜县| 绩溪县| 随州市| 新平| 开化县| 万载县| 泸定县| 兴仁县| 灵川县| 嘉定区| 延寿县| 柯坪县| 洛宁县| 文安县| 日喀则市| 富锦市| 禹州市| 永康市| 忻城县| 盘锦市| 靖西县| 玛纳斯县| 奉节县| 泰来县| 咸宁市| 定西市| 库伦旗| 梁平县| 绵阳市| 颍上县| 墨脱县| 汉中市| 保亭| 凌源市| 十堰市| 增城市| 文水县| 甘南县| 抚远县| 积石山|