SDIO - 縮時攝影:使用UVC拍照並存至SD Card裡
材料準備
- Ameba x 1
- SD card or MicroSD card x 1
- SD sniffer x 1 (optional)
- Logitech C170 web cam x 1
- Micro USB OTG adapter x 1
範例說明
這個範例裡結合UVC拍照的功能,定時將照片存至SD Card裡,成為縮時攝影的功能。
我們打開範例 “File” -> “Examples” -> “AmebaSdFatFs” -> “time_lapse_photography”
範例裡一開始會先嘗試啟動UVC,接著初始化SD Fat FS,在loop()裡每隔3秒抓一張圖片存至SD Card裡,並編號成0001.jpeg, 0002.jpeg, 0003.jpeg, ……
要將這些檔案轉成電影,有一些工具可以用,這邊介紹ffmpeg,它的官網: https://ffmpeg.org/
在下載區裡有不同OS的版本,下載完之後,如果你是用windows的版本,在縮時攝影的資料夾底下,輸入:
ffmpeg -framerate 30 -i %04d.jpeg -vf fps=30 -pix_fmt yuv420p output.mp4
底下對後面帶的參數簡略說明:
-framrate: 如果使用這個參數,表示忽略input的時間戳記,並且以framrate處理的結果當做時間軸,這裡代表每輸入30張為1秒
-i: 後面帶的是input的檔名,我們使用%04d.jpeg,代表它會從0000.jpeg, 0001.jpeg, 0002.jpeg, …開始找
fps: 代表輸出的影像的framerate,這裡我們使用1秒30張
最後面的檔名是輸出的檔名
範例裡一開始會先嘗試啟動UVC,接著初始化SD Fat FS,在loop()裡每隔3秒抓一張圖片存至SD Card裡,並編號成0001.jpeg, 0002.jpeg, 0003.jpeg, ……
要將這些檔案轉成電影,有一些工具可以用,這邊介紹ffmpeg,它的官網: https://ffmpeg.org/
在下載區裡有不同OS的版本,下載完之後,如果你是用windows的版本,在縮時攝影的資料夾底下,輸入:
ffmpeg -framerate 30 -i %04d.jpeg -vf fps=30 -pix_fmt yuv420p output.mp4
底下對後面帶的參數簡略說明:
-framrate: 如果使用這個參數,表示忽略input的時間戳記,並且以framrate處理的結果當做時間軸,這裡代表每輸入30張為1秒
-i: 後面帶的是input的檔名,我們使用%04d.jpeg,代表它會從0000.jpeg, 0001.jpeg, 0002.jpeg, …開始找
fps: 代表輸出的影像的framerate,這裡我們使用1秒30張
最後面的檔名是輸出的檔名
底下是我們在傍晚記錄約2小時的縮時攝影:
程式碼說明
程式碼分成兩個功能,第一個是UVC的部份,第二個是SD的部份
UVC的部份可以參考使用UVC抓JPEG的範例
當抓完圖片之後,將檔案寫入至SD卡,這部份可以參考在SD Card編輯檔案的範例
UVC的部份可以參考使用UVC抓JPEG的範例
當抓完圖片之後,將檔案寫入至SD卡,這部份可以參考在SD Card編輯檔案的範例
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用條款