简体   繁体   English

如何在 Linux 上使用 ffmpeg 录制音频?

[英]How to record audio with ffmpeg on linux?

I'd like to record audio from my microphone.我想从我的麦克风录制音频。 My OS is ubuntu.我的操作系统是 ubuntu。 I've tried the following and got errors我尝试了以下操作并出现错误

$ ffmpeg -f alsa -ac 2 -i hw:1,0 -itsoffset 00:00:00.5 -f video4linux2 -s 320x240 -r 25 /dev/video0 out.mpg

ffmpeg version 0.8.8-4:0.8.8-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav
developers
  built on Oct 22 2013 12:31:55 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release.
Please use avconv instead.
ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library
libasound_module_conf_pulse.so
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM hw:1,0
[alsa @ 0xbda7a0] cannot open audio device hw:1,0 (No such file or directory)
hw:1,0: Input/output error

Then I tried然后我试过了

$ ffmpeg -f oss -i /dev/dsp audio.mp3

ffmpeg version 0.8.8-4:0.8.8-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav
developers
built on Oct 22 2013 12:31:55 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release.
Please use avconv instead.
[oss @ 0x1ba57a0] /dev/dsp: No such file or directory
/dev/dsp: Input/output error

I haven't been able to get ffmpeg to find my microphone.我一直无法让 ffmpeg 找到我的麦克风。 How can I tell ffmpeg to record from my microphone?如何告诉 ffmpeg 从我的麦克风录音?
It seems the 'Deprecated' message can be ignored because of this topic由于此主题,似乎可以忽略“已弃用”消息

I realise this is a bit old.我意识到这有点老了。 Just in case anyone else is looking:以防万一其他人正在寻找:

ffmpeg -f alsa -ac 2 -i default -itsoffset 00:00:00.5 -f video4linux2 -s 320x240 -r 25 -i /dev/video0 out.mpg

This way it will use the default device to record from.这样,它将使用默认设备进行记录。 You were also missing a -i before the video capture device - /dev/device0您还缺少视频捕获设备之前的-i - /dev/device0

If you want to get more specific you should take a look in /proc/asound .如果您想获得更具体的信息,您应该查看/proc/asound Check the cards , devices , pcm files and the card subdirectories.检查设备pcm文件和子目录。 You should be able to glean enough information there to be able to make an educated guess;您应该能够在那里收集足够的信息,以便能够做出有根据的猜测; eg hw:1,0 or hw:2,0例如hw:1,0hw:2,0

The documentation may provide further clues:该文档可能会提供进一步的线索:

The same goes for the webcam - it may not be /dev/video0 , perhaps you have an external webcam plugged in and its at /dev/video1 - Have a look in the /dev directory and see whats available网络摄像头也是如此 - 它可能不是/dev/video0 ,也许你插入了一个外部网络摄像头,它位于/dev/video1 - 查看/dev目录,看看有什么可用的

解决了 !

ffmpeg -f pulse -ac 2 -i default -f x11grab -r 30 -s 1920x1080 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -threads 0 -y /media/t/TBVolume/desktop/output.mkv 

First, list your AV devices using:首先,使用以下命令列出您的 AV 设备:

ffmpeg -list_devices true -f dshow -i dummy

Assuming your audio device is "Microphone Array", you can use:假设您的音频设备是“麦克风阵列”,您可以使用:

ffmpeg -f dshow -i audio="Microphone Array" -c:a libmp3lame -b:a 128k OUTPUT.mp3

Here, 128k is the sampling rate.这里,128k 是采样率。 You can check all options for sampling rates (CBR) here .您可以在此处检查采样率 (CBR) 的所有选项。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM