Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu 使用ffmpeg初始化网络摄像头时出错_Ubuntu_Ffmpeg_Webcam - Fatal编程技术网

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

Ubuntu 使用ffmpeg初始化网络摄像头时出错,ubuntu,ffmpeg,webcam,Ubuntu,Ffmpeg,Webcam,我正在尝试使用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 -buf

我正在尝试使用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版本2.8.11-0ubuntu0.16.04.1版权所有c 2000-2017 ffmpeg开发者 使用gcc 5.4.0 Ubuntu 5.4.0-6ubuntu1~16.04.4 20160609构建 配置:-prefix=/usr-extra version=0ubuntu0.16.04.1-build suffix=-ffmpeg-toolchain=harded-libdir=/usr/lib/x86_64-linux-gnu-incdir=/usr/include/x86_64-linux-gnu-cc=cc-cxx=g++-启用gpl-启用共享-禁用剥离-禁用解码器=libopenjpeg-禁用解码器=libschroedinger-启用AVRESSAMPLE-启用avisynth-启用gnutls-启用ladspa-启用libass-启用libbluray-启用libbs2b-启用libcaca-启用libcdio-启用libflite-启用libfontconfig-启用libfreetype-启用libfribidi-启用libgme-启用libgsm-启用libmodplug-启用libmp3lame-启用libopenjpeg-启用libopus-启用libpulse-启用librtmp-启用libschroedinger-enable libshine-enable libsnapy-enable libsoxr-enable libspeex-enable libssh-enable libthera-enable libtwolame-enable libvorbis-enable libvpx-enable libwavpack-enable libwebp-enable-libx265-enable libxvid-enable libzvbi-enable opengl-enable-x11grab-enable-libdc1394-enable-libiec61883-enable libzmq-enable-frei0r-enable-libx264-启用libopencv libavutil 54。31.100 / 54. 31.100 libavcodec56。60.100 / 56. 60.100 libav56格式。40.101 / 56. 40.101 libav56设备。4.100 / 56. 4.100 libavfilter 5。40.101 / 5. 40.101 libavresample2。1.0 / 2. 1.0 libswscale 3。1.101 / 3. 1.101 libswresample1。2.101 / 1. 2.101 Libroc 53。3.100 / 53. 3.100

ALSA lib pcm_hw.c:1700:_snd_pcm_hw_打开卡的无效值

[alsa@0x21c45c0]无法打开音频设备hw:1,0没有此类文件或目录

hw:1,0:输入/输出错误

如上所述

你应该试试这些:

选择输入卡: input_device告诉ffmpeg您要使用哪个音频捕获卡或设备。要获取机器上所有已安装卡的列表,可以键入arecord-l或arecord-l

要列出记录卡或设备,请执行以下操作:

我们可以看到,安装了两个提供捕获功能的声卡,即U盘网络摄像头上的卡0 Intel ICH5和卡1麦克风。最简单的方法是使用-f alsa-i hw:0或-f alsa-i hw:1直接引用它们中的每一个:

这将给我们30秒的WAV音频输出,从我们的USB摄像头的默认录音设备麦克风录制。可以使用下面的alsamixer工具选择默认记录设备,或者使用hw中的附加参数Y指定设备:,,其中=卡,=设备。例如,要从Intel卡中选择MIC2 ADC,请查看上面的列表,我们将使用:

最好的方法是使用alsamixer工具选择您的卡和默认录制设备,因为有些声卡通过ffmpeg命令行选择默认输入的方式很复杂

$ 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
ffmpeg -f alsa -i hw:1 -t 30 out.wav
ffmpeg -f alsa -i hw:0,2 -t 30 out.wav