gpt4 book ai didi

ubuntu - 使用 ffmpeg 初始化网络摄像头时出错

转载 作者:行者123 更新时间:2023-12-04 19:12:57 25 4
gpt4 key购买 nike

我正在尝试使用 ffmpeg 设置网络摄像头并流式传输到本地主机.

这是我在终端中输入的命令:

ffmpeg -f alsa -ac 2 -i hw:1,0 -f v4l2 -s 1280x720 -r 10 -i /dev/video1 -vcodec libx264 -pix_fmt yuv420p -preset ultrafast -r 25 -g 20 -b:v 2500k -codec:a libmp3lame -ar 44100 -threads 6 -b:a 11025 -bufsize 512k -f flv rtmp://localhost:80/

这就是发生的事情:

ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609 configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100

ALSA lib pcm_hw.c:1700:(_snd_pcm_hw_open) Invalid value for card

[alsa @ 0x21c45c0] cannot open audio device hw:1,0 (No such file or directory)

hw:1,0: Input/output error

最佳答案

https://trac.ffmpeg.org/wiki/Capture/ALSA 中所述

你应该试试这些:

Selecting the input card:
input_device tells ffmpeg which audio capturing card or device you would like to use. To get the list of all installed cards on your machine, you can type arecord -l or arecord -L (longer output).

To list recording cards or devices:


$ arecord -l

**** List of CAPTURE Hardware Devices ****
card 0: ICH5 [Intel ICH5], device 0: Intel ICH [Intel ICH5]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ICH5 [Intel ICH5], device 1: Intel ICH - MIC ADC [Intel ICH5 - MIC ADC]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ICH5 [Intel ICH5], device 2: Intel ICH - MIC2 ADC [Intel ICH5 - MIC2 ADC]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ICH5 [Intel ICH5], device 3: Intel ICH - ADC2 [Intel ICH5 - ADC2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: U0x46d0x809 [USB Device 0x46d:0x809], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

We can see there are 2 audio cards installed that provide capturing capabilities, namely "card 0" (Intel ICH5) and "card 1" (Microphone on the USB web cam). The easiest thing to do is to reference each of them directly using -f alsa -i hw:0 or -f alsa -i hw:1:


ffmpeg -f alsa -i hw:1 -t 30 out.wav

That will give us a 30 seconds WAV audio output, recorded from our USB camera's default recording device (microphone). The default recording device can be selected using the alsamixer tool (see below) or specifying the device using an additional parameter Y in hw:<X>,<Y>, where =card, =device. For example, to select "MIC2 ADC" from Intel card (look above at the list), we would use:


ffmpeg -f alsa -i hw:0,2 -t 30 out.wav

The best way is to select your card and default recording device with the alsamixer tool, because some audio cards have a complicated way of selecting the default input through the ffmpeg command line.

关于ubuntu - 使用 ffmpeg 初始化网络摄像头时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48455875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com