linux - 网络摄像头罗技和 Linux

标签 linux ffmpeg raspberry-pi webcam

我有 Logitech C310 相机,其声明的特性为 720p 30fps。

如果将相机连接到 windows,录制完全符合规定的 720p 30fps - 画面清晰。

挑战在于将同一个摄像头连接到 OrangePI(服务器 Armbian)并在其上保存视频文件。

摄像头显示为/dev/video0。

sudo ffmpeg -f v4l2 -s 1280x720 -i /dev/video0 output.wmv

结果,我得到一张频率为 5 fps 的易碎图片。

也许我没有正确使用 ffmpeg?请帮助我在 Linux 上使用网络摄像头的经验...... 提前致谢。

USB 摄像头配置:

v4l2-ctl --all --device=/dev/video0


Driver Info (not using libv4l2):
        Driver name   : uvcvideo
        Card type     : UVC Camera (046d:081b)
        Bus info      : usb-1c1c000.usb-1
        Driver version: 4.14.18
        Capabilities  : 0x84200001
                Video Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps   : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
        Width/Height      : 1280/720
        Pixel Format      : 'YUYV'
        Field             : None
        Bytes per Line    : 2560
        Size Image        : 1843200
        Colorspace        : sRGB
        Transfer Function : Default
        YCbCr/HSV Encoding: Default
        Quantization      : Default
        Flags             :
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 1280, Height 720
        Default     : Left 0, Top 0, Width 1280, Height 720
        Pixel Aspect: 1/1
Selection: crop_default, Left 0, Top 0, Width 1280, Height 720
Selection: crop_bounds, Left 0, Top 0, Width 1280, Height 720
Streaming Parameters Video Capture:
        Capabilities     : timeperframe
        Frames per second: 5.000 (5/1)
        Read buffers     : 0
                     brightness (int)    : min=0 max=255 step=1 default=128 value=128
                       contrast (int)    : min=0 max=255 step=1 default=32 value=32
                     saturation (int)    : min=0 max=255 step=1 default=32 value=32
 white_balance_temperature_auto (bool)   : default=1 value=1
                           gain (int)    : min=0 max=255 step=1 default=64 value=192
           power_line_frequency (menu)   : min=0 max=2 default=2 value=2
      white_balance_temperature (int)    : min=0 max=10000 step=10 default=4000 value=4610 flags=inactive
                      sharpness (int)    : min=0 max=255 step=1 default=24 value=24
         backlight_compensation (int)    : min=0 max=1 step=1 default=0 value=0
                  exposure_auto (menu)   : min=0 max=3 default=3 value=3
              exposure_absolute (int)    : min=1 max=10000 step=1 default=166 value=249 flags=inactive
         exposure_auto_priority (bool)   : default=0 value=1
                      led1_mode (menu)   : min=0 max=3 default=3 value=3
                 led1_frequency (int)    : min=0 max=131 step=1 default=0 value=0

最佳答案

我在 Raspberry Pi Raspbian 上运行网络摄像头,这是我用来捕获视频的代码(它以 25 fps 的速度运行):

            var args = [
            "-i",
            "/dev/video0",
            "-r",
            "25",
            "-qscale",
            "1",
            "out.avi"
        ];

        var process = spawn("avconv", args);

“avconv”与 ffmpeg 几乎相同,我不知道区别的具体细节,但这可能对您有用。非常基本的例子,这只是为了测试相机。 -r 指定 fps,-qscale 是质量(有替代命令)。

关于linux - 网络摄像头罗技和 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50461627/

相关文章:

html - Apache - 流式传输 HTML5 视频,无需为每个视频制作网页

python - 使用 mongodb 的 Flask/uWSGI/nginx 应用程序超时

linux - Certbot 无法找到 _acme-challenge.subdomain.domain.com 的 Route53 托管区域

linux - RPM 规范要求特定的 RHEL 版本

actionscript-3 - 如何将 RGBA 值流编码为视频?

FFmpeg 捕获远程屏幕

python - 从 python 返回代码 256

python - 使用 bash 获取第一行的第二个单词

Python 脚本无法访问 Docker 镜像中的 .jar 文件

c# - 将从 m3u8 流中提取的 MP3 音频发送到 IBM Watson Speech To Text