菜鸟科技网

Linux拍照命令有哪些?

  1. 使用普通电脑的内置或外接摄像头:通过命令行工具直接拍照。
  2. 使用专业单反或微单相机:通过 gphoto2 软件进行远程控制。

下面我将详细介绍这两种情况的命令和操作方法。

Linux拍照命令有哪些?-图1
(图片来源网络,侵删)

使用普通摄像头(适用于笔记本内置摄像头或USB摄像头)

这是最常见的情况,主要依赖于 ffmpegfswebcam 这两个工具。

准备工作:检查摄像头

在拍照前,先确认你的系统能否识别到摄像头。

  1. 使用 lsusb 命令(适用于USB摄像头)

    lsusb

    在输出结果中,寻找类似 Integrated CameraUSB CameraLogitech 等字样。

    Linux拍照命令有哪些?-图2
    (图片来源网络,侵删)
  2. 使用 v4l2-ctl 命令(更通用): 安装 v4l-utils 包(如果还没安装):

    # 对于 Debian/Ubuntu 系统
    sudo apt update
    sudo apt install v4l-utils
    # 对于 Fedora/CentOS/RHEL 系统
    sudo dnf install v4l-utils

    然后运行以下命令列出所有视频设备:

    v4l2-ctl --list-devices

    你会看到类似下面的输出,/dev/video0 就是你的摄像头设备文件。

    Integrated_Webcam_HD: Integrated C RGB (usb-0000:00:14.0-2):
        /dev/video0
        /dev/media0
    USB_Camera: USB Camera (usb-0000:00:14.0-3):
        /dev/video2
        /dev/media1

工具1:使用 ffmpeg (功能强大,推荐)

ffmpeg 是一个多媒体处理工具,功能极其丰富,不仅能拍照,还能录像、推流等。

Linux拍照命令有哪些?-图3
(图片来源网络,侵删)

安装 ffmpeg

# Debian/Ubuntu
sudo apt install ffmpeg
# Fedora/CentOS/RHEL
sudo dnf install ffmpeg

基本拍照命令

# 从 /dev/video0 设备拍照,保存为 output.jpg
ffmpeg -f video4linux2 -i /dev/video0 -frames:v 1 output.jpg

命令解释:

  • -f video4linux2: 指定输入格式为 V4L2,这是 Linux 下视频设备的标准接口。
  • -i /dev/video0: 指定输入设备为 /dev/video0(根据你上一步的检查结果修改)。
  • -frames:v 1: 只捕获 1 帧(也就是一张照片)。
  • output.jpg: 输出的图片文件名。

常用进阶选项

  • 指定分辨率

    # 拍摄 1920x1080 分辨率的照片
    ffmpeg -f video4linux2 -i /dev/video0 -frames:v 1 -video_size 1920x1080 photo_1080p.jpg
  • 指定质量(仅适用于 JPEG)

    # 拍摄高质量(质量因子 2,数值越小质量越高)的照片
    ffmpeg -f video4linux2 -i /dev/video0 -frames:v 1 -q:v 2 high_quality_photo.jpg
  • 直接从预览窗口拍照: 如果你的摄像头有一个预览窗口(比如通过 cheeseguvcview 打开),你可以使用 xwininfoimport 命令来截取窗口画面。

    # 1. 先运行 xwininfo,鼠标点击预览窗口,获取窗口ID
    xwininfo
    # 2. 获取到窗口ID后(0x1a00001),使用 import 命令截图
    import -window 0x1a00001 screenshot_from_preview.png

工具2:使用 fswebcam (简单易用)

fswebcam 是一个专门为网络摄像头设计的简单命令行工具。

安装 fswebcam

# Debian/Ubuntu
sudo apt install fswebcam
# Fedora/CentOS/RHEL
sudo dnf install fswebcam

基本拍照命令

# 拍照并保存为 /home/user/my_photo.jpg
fswebcam /home/user/my_photo.jpg

常用进阶选项

  • fswebcam --title "My Linux Desk" --save desk.jpg
  • 指定分辨率

    fswebcam --resolution 1280x720 --save webcam_720p.jpg
  • 每隔几秒拍一张照(循环拍摄)

    # 每10秒拍一张,保存为 time-lapse_%Y-%m-%d_%H-%M-%S.jpg (文件名会包含时间)
    fswebcam --loop 10 --save /path/to/time-lapse_%Y-%m-%d_%H-%M-%S.jpg

    Ctrl+C 停止。


使用专业相机(通过 gphoto2

gphoto2 是一个强大的命令行工具,可以控制数百种支持 PTP (Picture Transfer Protocol) 的数码相机,实现拍照、下载、录像等功能。

安装 gphoto2

# Debian/Ubuntu
sudo apt install gphoto2
# Fedora/CentOS/RHEL
sudo dnf install gphoto2

连接相机并检查

  1. 用 USB 线将相机连接到电脑。
  2. 打开相机电源(通常需要设置为“PC连接”或“PTP”模式)。
  3. 运行以下命令检测相机:
    gphoto2 --auto-detect

    如果成功,你会看到类似下面的输出,确认相机已被识别:

    Detecting cameras ...
    Found 1 camera:
    Canon EOS 5D Mark IV           (usb:001,002)

基本拍照命令

# 拍摄一张照片,并下载到当前目录,文件名自动生成
gphoto2 --capture-image

常用进阶选项

  • 拍摄并指定文件名

    gphoto2 --capture-image --filename "my_canon_photo.jpg"
  • 查看相机中所有文件

    gphoto2 --list-files
  • 下载相机中的所有照片

    gphoto2 --get-all-files
  • 拍摄并立即下载

    gphoto2 --capture-and-download --filename "captured_%Y%m%d_%H%M%S.jpg"
  • 开启/关闭相机显示屏

    # 关闭显示屏以节省电量
    gphoto2 --set-config "viewfinder=0"
    # 开启显示屏
    gphoto2 --set-config "viewfinder=1"

总结与推荐

场景 推荐工具 优点 缺点
普通USB/笔记本摄像头 ffmpeg 功能最强大,支持录像、推流、调整分辨率和质量等 命令稍复杂
fswebcam 命令简单直观,专为摄像头设计 功能相对单一
专业单反/微单相机 gphoto2 行业标准,功能全面,可远程控制相机 需要特定相机支持,安装可能稍复杂

快速开始建议:

  • 如果你只是想用电脑摄像头快速拍张照,用 fswebcam 最简单。
  • 如果你需要更多控制(比如分辨率、质量),或者想实现更复杂的自动化,ffmpeg 是更好的选择。
  • 如果你用的是单反或微单,gphoto2 是不二之选。
分享:
扫描分享到社交APP
上一篇
下一篇