« 2009/10, Vol. 165 PChome Magazine | 首頁 | 2009/11, Vol. 166 PChome Magazine »
2009年10月27日
gphoto2 + crond + ffmpeg 記錄流逝時間
環境:
- Fedora 11
- Nikon Coolpix 4300
- X-window、gphoto2、crond、gthumb、ffmpeg
準備
1. 安裝 gphoto2
sudo yum install gphoto2
2. 查看 gphoto2 支援的數位相機、WebCam
gphoto2 --list-cameras | less
3. 準備好數位相機, 視需要調整相機 USB 模式
4. 接上 USB 傳輸線, 若系統自動掛載相機記憶卡, 須先 umount
5. 查看 gphoto2 對該相機的支援內容
gphoto2 -a
6. 進行拍攝前的必要設置
查看可設置的內容
sudo gphoto2 --list-config查看 flash (閃光燈) 參數
sudo gphoto2 --get-config flash關閉閃光燈 (Nikon E4300 的 2 是 Off)
sudo gphoto2 --set-config flash=2查看照片解析度參數
sudo gphoto2 --get-config resolution設定照片解析度 (Nikon E4300 的 4 是 Normal-XGA -- 1024x768)
sudo gphoto2 --set-config resolution=4
試拍
因 USB 裝置的權限關係, 以下均以 root 身份進行
sudo su -拍照
gphoto2 --capture-image取得相機記憶卡內的所有照片
gphoto2 --get-all-files刪除相機記憶卡內的所有照片
gphoto2 --delete-all-files回到登入 X window 的帳號瀏覽照片
chown myaccount:mygroup *.JPG
mv *.JPG ~myaccount/Pictures
exit
gthumb ~/Pictures
定時拍照
製作拍照 Shell Script
sudo su -
vi /root/take-picture.sh
#!/bin/sh
gphoto2 --capture-image > /dev/null 2>&1
gphoto2 --get-all-files > /dev/null 2>&1
gphoto2 --delete-all-files > /dev/null 2>&1
chown myaccount:mygroup *.JPG
mv *.JPG ~myaccount/Pictures/chmod +x /root/take-picture.sh
每分鐘拍一張
crontab -e
* * * * * /root/take-picture.sh
每三十秒拍一張
while true; do /root/take-picture.sh; sleep 30; done
使用 ffmpeg 將所有照片串成 mp4 影片
安裝 ffmpeg
sudo rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
sudo rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
sudo yum install ffmpeg
將照片檔名轉成數字流水號
gthumb ~/Pictures
Ctrl + A 選取全部照片
Edit → Rename (或直接按 F2)
- Template: ###.jpg (視檔案數量給予幾位數編號 #)
- Start at: 1
按 Rename 鈕, 將所有照片更名為數字編號的 001.jpg、002.jpg...
製作影片
ffmpeg -i %03d.jpg -s 640x480 -b 10240k myvideo.mp4
ps.若檔案編號為四位數, 應改成 %04d.jpg, 餘類推
觀看影片
- ffplay ./myvideo.mp4
- mplayer -speed 0.1 ./myvideo.mp4 (以 1/10 的速度觀看影片)
參考資料
Posted by Jamyy at 2009年10月27日 14:00