開源項目——使用監控攝像頭製作延遲拍攝視頻

一直想把開花的過程拍攝下來,使用相機延遲拍攝功能的困難在於,不知道花兒什麼時候開,而相機存儲卡容量有限。 2020年的2019-nCov疫情讓我有時間來琢磨這件事情 我手上有一個米家1080P智能

攝像機(一般用於監控用途,130度廣角,支持網絡存儲監控錄像),一個小米路由器(帶1T硬盤存儲,支持NAS注1),一個放大鏡可選),一臺Windows電腦。還有兩盆即將開花的橡皮花

於是我拍攝並製作了下面的視頻

有朋友看到了這段視頻,非常喜歡,於是詢問製作過程和製作難度 下面便是我的製作教程,希望對有興趣延遲拍攝的朋友們提供幫助。

準備

開始拍攝前需要將攝像頭、NAS和電腦進行設置,確保攝像頭記錄下來的視頻可以自動且連續的保存到NAS上,並確保電腦可以訪問到視頻在NAS上的存放位置。

1、前提

網絡攝像機已經連上網絡,電腦也連上網絡並可以通過Windows資源管理器訪問NAS網絡硬盤。設置方法參考相關硬件的使用說明書。

2、路由器/NAS網絡存儲準備

我這次使用了小米路由器自帶的NAS網絡存儲,所以,在小米路由器的網頁管理界面上進行如下設置就可以了

開源項目——使用監控攝像頭製作延遲拍攝視頻

如上圖所示,我們找到已經連接上網絡的米家智能攝像機,然後,把它的全盤訪問權限加上,設置就完成了

3、攝像機準備

我這次使用的是米家智能攝像機(1080P),手機上打開攝像機設置的米家App,在主截面中點擊右上角的**...** ,彈出如第二張截圖所示的菜單,選擇存儲管理 ,如第三張截圖所示,進入存儲管理頁面,選擇NAS網絡存儲

為了防止網絡異常無法完成存儲,導致視頻丟失,我同時使用了存儲卡(16G/32G的都可以),一般攝像機都不帶,需要自己準備,可以使用淘汰下來的手機擴展存儲卡(如果有的話)

開源項目——使用監控攝像頭製作延遲拍攝視頻

開源項目——使用監控攝像頭製作延遲拍攝視頻

開源項目——使用監控攝像頭製作延遲拍攝視頻

接下來設置NAS網絡存儲,首先如下第一張圖所示,打開視頻存儲

視頻存儲時長設置根據自己NAS的可用存儲空間大小選擇;上傳時間間隔我選擇了實時,這樣會對其它設備使用WIFI產生一定影響

點擊存儲器設置,進入如下第二張圖所示,需要先選擇存儲器,設置好存儲器之後,選擇存儲視頻的目錄

開源項目——使用監控攝像頭製作延遲拍攝視頻

開源項目——使用監控攝像頭製作延遲拍攝視頻

進入修改存儲器界面,第一次會通過網絡自動掃描可以使用的NAS網絡存儲器,讓你選擇,有的存儲器設置了訪問用戶和密碼,可以在如下第一張圖所示的用戶名和密碼框中輸入,點完成後驗證是否可以讀寫訪問(我的網絡存儲器設置了匿名訪問,並通過路由器直接把全盤訪問權限付給了這個攝像機,所以不需要設置用戶名密碼)

NAS網絡存儲器設置好了之後,需要選擇一個存儲位置,從上面的存儲器設置畫面選擇修改存儲目錄,進入如下第二張圖所示,App將自動掃描可用目錄,點擊目錄名稱進行選擇

開源項目——使用監控攝像頭製作延遲拍攝視頻

開源項目——使用監控攝像頭製作延遲拍攝視頻

以上所有設置完成之後,攝像機的設置就完成了

4、電腦準備

電腦我使用的是一臺老的一體機,4G內存,集成顯卡,CPU是i7-4510U 2.60GHz,安裝了Windows 7操作系統(蘋果MacOS也可以,只是我手邊沒有蘋果電腦沒法制作教程),因為需要比較大的存儲空間用於緩存,通過USB接了一塊250G的移動硬盤。

電腦連接上網絡之後,打開Windows的資源管理器(快捷鍵 Win + E),如下圖所示,在地址欄中輸入NAS網絡硬盤的訪問地址(一般是這樣的格式 \\192.168.0.1)

看到NAS上的目錄之後,查找一下攝像頭存儲在NAS上的位置,後面通過程序對視頻進行處理的時候需要使用到(我的位置在\\192.168.0.1\\XiaoMi\\\\xiaomi_camera_videos\\04cf8c6b0439下面)

開源項目——使用監控攝像頭製作延遲拍攝視頻

找到視頻存儲位置,並確認視頻可以正常存儲之後,電腦的設置就完成了

拍攝視頻

將攝像頭放置到最佳拍攝位置,需要考慮長時間拍攝的情況下,電源不會被意外踢斷等情況發生;

另外需要考慮上午、中午和下午的陽光不會造成光線直射,導致部分時間無法清洗的看清被拍攝的物體,一般選擇角度和窗戶平行的位置。

如果需要獲得比較好的晚上拍攝效果,需要考慮使用輔助光源,一般室內光源的光線無法滿足拍攝的需要,我這次沒有考慮晚上拍攝,所以沒有使用輔助光源。

視頻處理

為了做到延時攝影注2效果,我們需要把攝像機記錄下來的連續的視頻,按照一定的時間間隔(我設置了時間間隔為24秒),取出相應時間點的圖像,以圖片的形式存儲到本地磁盤上;

然後,將上面取出的圖像,按照時間順序,合併到一個視頻文件中,合併後的視頻文件沒有音軌;

最後,使用視頻剪輯軟件,加上音軌或者字幕等內容之後,導出最終的視頻文件。

1、視頻處理前準備

為了快速完成這個視頻處理程序,我使用了Python語言,原因很簡單,因為它是腳本語言,寫完代碼不需要編譯,直接可以運行;另外也是最主要的原因,它的圖像和視頻處理模塊很成熟,目前流行的人工智能所使用的視覺功能學習和實現都是使用它來完成的;所以,Python是處理我們需要的功能的最佳選擇。

安裝Python

如果你的電腦上已經安裝了Python,就可以跳過這一步。

訪問Python官網(https://www.python.org/),下載最新的安裝程序(https://www.python.org/downloads/release/python-382/)

Windows x86-64 executable installer macOS 64-bit installer

具體安裝過程略... (如果有疑問的地方,可以單獨聯繫我)

安裝完成之後,確認一下是否安裝成功,可以使用了

打開命令行窗口(快捷鍵 Win + R),點確定按鈕打開

開源項目——使用監控攝像頭製作延遲拍攝視頻

打開後,獲得如下窗口

開源項目——使用監控攝像頭製作延遲拍攝視頻

輸入py,然後回車,獲得如下內容表示安裝成功了

開源項目——使用監控攝像頭製作延遲拍攝視頻

輸入Ctrl + Z,然後回車,可以退出上述功能,返回命令行窗口

安裝pip

下載get-pip.py,通過腳本安裝pip

首先在移動硬盤上創建一個目錄(我的移動硬盤盤符是D盤,目錄命名為time-lapse),然後把下載下來的get-pip.py文件放到該目錄下面

打開命令行窗口,執行以下命令,進入到time-lapse目錄,然後,通過get-pip.py腳本進行安裝,如果安裝失敗,可以重新輸入最後以行命令,再次執行安裝程序,直到安裝成功為止

<code>> D:
> cd time-lapse
> py get-pip.py --user/<code>

安裝成功後,輸入pip命令,可以獲得以下內容,就可以確認安裝成功了

開源項目——使用監控攝像頭製作延遲拍攝視頻

使用pip安裝其它組件

通過pip我們需要安裝三個組件(opencv-python、pytest-shutil、pyyaml),用於實現我們的功能

在命令行窗口中,進入time-lapse目錄,然後分別執行以下三個命令

<code>pip install opencv-python
pip install pytest-shutil
pip install pyyaml/<code>

以上命令可以重複執行,直到沒有出現紅色的錯誤為止,就說明安裝成功了

下載程序

通過github將time-lapse源代碼下載到本地,或者直接下載time-lapse.zip文件到本地,然後文件解壓到移動硬盤(我的盤符是D盤),覆蓋剛才創建的time-papse目錄,解壓後如下圖所示

開源項目——使用監控攝像頭製作延遲拍攝視頻

2、運行延時圖像抓取程序

設置運行參數

使用文本編輯器(記事本、Notepad++或者Atom等)打開time-lapse.yml文件,編輯參數

開源項目——使用監控攝像頭製作延遲拍攝視頻

運行

運行參數設置好之後,在命令行窗口執行以下命令執行延時圖像抓取程序

<code>> py time-lapse.py/<code>

運行顯示如下圖所示

開源項目——使用監控攝像頭製作延遲拍攝視頻

當所有視頻都被處理完之後,該程序將結束並退出

有新的視頻存儲上來之後,可以重新執行上面的命令,程序將從上次結束的位置開始處理新增加的視頻

所有的延時圖像將被存儲到tmp目錄,如下圖所示

開源項目——使用監控攝像頭製作延遲拍攝視頻

處理速度大約是1小時可以處理2小時40分鐘的視頻

3、運行視頻合併程序

視頻抓取處理完成之後,或者是需要的時間段已經抓取完成之後,就可以運行視頻合併程序,將處理好的圖像合併成視頻。

設置運行參數

使用文本編輯器(記事本、Notepad++或者Atom等)打開merge-captures.yml文件,編輯參數

開源項目——使用監控攝像頭製作延遲拍攝視頻

運行

運行參數設置好之後,在命令行窗口執行以下命令執行視頻合併程序

<code>> py merge-captures.py/<code>

運行顯示如下圖所示

開源項目——使用監控攝像頭製作延遲拍攝視頻

當所有抓取的圖像都被處理完之後,該程序將結束並退出

調整運行參數或者有新的抓取圖像,需要重新處理,建議每次運行修改一下輸出文件名,否則,將會在上次輸出的視頻後面繼續合併圖片,因為抓取圖片目錄中的圖片存在上次已經合併過的圖片,可能會造成重複。

合併後的視頻文件被存放到output目錄下,如下圖所示

開源項目——使用監控攝像頭製作延遲拍攝視頻

處理速度大約是每分鐘可以合併312張圖片,或者是每分鐘視頻大約需要5分鐘以上的時間合併處理。

4、給視頻增加音樂

安裝組件

給視頻添加音樂,需要增加一個組件(moviepy) 在命令行窗口中,進入time-lapse目錄,然後執行以下命令

<code>> pip install moviepy/<code>

以上命令可以重複執行,直到沒有出現紅色的錯誤為止,就說明安裝成功了

設置運行參數

使用文本編輯器(記事本、Notepad++或者Atom等)打開merge-audio.yml文件,編輯參數

開源項目——使用監控攝像頭製作延遲拍攝視頻

運行

運行參數設置好之後,在命令行窗口執行以下命令執行視頻和音樂合併程序

<code>> py merge-audio.py/<code>

運行顯示如下圖所示

開源項目——使用監控攝像頭製作延遲拍攝視頻

5、剪輯視頻

合併完成的視頻只有視頻軌,沒有音頻軌,所以播放的時候沒有聲音,或者希望把片頭和片尾,以及字幕等效果加入進去,你就需要使用視頻剪輯工具來幫你完成後續的工作了。

我使用了開放源代碼,免費的Shotcut視頻剪輯軟件,也可以使用其它軟件,Windows 10自帶視頻剪輯工具。

具體怎麼剪輯視頻,這裡就不介紹了,可以查閱相關的視頻剪輯軟件的幫助說明。

寫在最後

1、後面會考慮把視頻圖像抓取和合並視頻的功能,放到樹莓派(Raspberry Pi)中,這樣就不需要將電腦一直開著來處理視頻了

2、使用MacOS的朋友如果希望使用這個程序來處理,可以聯繫我,並幫助我完成MacOS的教程

3、歡迎大家把製作出來的視頻分享出來,並告訴我地址,我會單獨開一頁來彙總大家的視頻

附錄

注1: NAS(Network Attached Storage:網絡附屬存儲)按字面簡單說就是連接在網絡上,具備資料存儲功能的裝置,因此也稱為“網絡存儲器”。

注2: 延時攝影又稱“定時攝影”或“延時攝影”,特殊攝影方法之一。延時攝影是以一種較低的幀率拍下圖像或者視頻,然後用正常或者較快的速率播放畫面的攝影技術。利用延時控制器,每隔一定的時間間隔之後快門拍攝一次,一段時間後拍攝得到的若干張照片進行連續放映。經常在電視上看到的例子就是花朵開放,天亮過程,風起雲湧。

獲取代碼

前往 Gitee 搜索:延遲拍攝。

開源項目——使用監控攝像頭製作延遲拍攝視頻

使用監控攝像頭製作延遲拍攝視頻


分享到:


相關文章: