gphoto2 连接相机获取照片
gPhoto2 是一个免费软件,提供了在类 Unix 系统上通过终端来控制数码相机的功能
安装 gphoto2
- 在
Ubuntu/debian
系统中
sudo apt-get install gphoto2
- 通过
--help
查看帮助
gphoto2 --help
测试
将相机用USB与设备连接,打开相机电源
打开终端输入
lsusb
当输出类似 Bus 001 Device 013: ID 04a9:3218 Canon, Inc. EOS 600D / Rebel T3i (ptp)
这样的信息表示相机与设备成功连接了
- 通过
--list-cameras
来查看是否支持自己的相机型号
gphoto2 --list-cameras
通过 grep
可以对特殊的型号进行筛选,例如我所使用的相机为 Canon EOS 600D
gphoto2 --list-cameras | grep 600D
终端输出信息为 “Canon EOS 600D”
,表示支持这个型号的相机
- 通过
--auto-detect
连接相机
gphoto2 --auto-detect
- 通过
--list-files
查看相机的文件
gphoto2 --list-files
这时候如果返回错误
*** 错误 ***
An error occurred in the io-library ('Could not claim the USB device'): Could not claim interface 0 (设备或资源忙). Make sure no other program (gvfs-gphoto2-volume-monitor) or kernel module (such as sdc2xx, stv680, spca50x) is using the device and you have read/write access to the device.
*** 错误 (-53:“Could not claim the USB device”) ***
参考 这里 的办法进行解决
pkill -f gphoto2
gphoto2 --list-files
即可查看相机内的文件
- 通过
--get-config capturetarget
查看当前相机存储位置的设置,是RAM
还是SD卡
gphoto2 --get-config capturetarget
- 通过
--set-config capturetarget
改变相机存储位置的设置,0为RAM
,1为SD卡
gphoto2 --set-config capturetarget=1
- 通过
--capture-image
控制相机捕捉图片
gphoto2 --capture-image
按下回车,相机快门触发,成功控制相机进行拍照
- 还可以通过增加
--filename
参数设置图片的文件名
gphoto2 --capture-image --filename pic-001.jpg
不过这里测试的时候可能相机本身也有设置,所以设置文件名并没有成功,以后再慢慢测试