使用 avconv 录制扬声器音频

使用 avconv 录制扬声器音频

我在使用 avconv 从扬声器录制音频时遇到了一些问题。

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

avconv -f alsa \
       -i pulse -f x11grab -r 30 -s 1920*1080 \
       -i :0.0 \
       -vcodec libx264 -preset ultrafast \
       -ab 320k -threads 8 \
       screen.mkv

问题:avconv 正在录制扬声器音频和麦克风音频,但扬声器音频非常低。我尝试过调整所有音频/音量级别,但似乎无法让 avconv 更好地拾取扬声器音频。

avconv 命令是否有用于扬声器音频的选项?

请不要回复“使用 gtk-recordMyDesktop”或“kazam”,我发现 avconv 更方便。

任何帮助都值得感激,谢谢!

答案1

信息位于avconv 手册页在我的版本中(可能与您的相同),我在“输入设备”一章的“脉冲”一节的第 1854 行找到了它。

输入:

$ pactl list sources | less

您将看到有关“来源 #0”、“来源 #1”等的信息,具体取决于您有多少个声卡等等。

获取“Name:”下的字符串,它将类似于:

alsa_output.pci-[some number].analog-stereo.monitor

其中“某个数字”取决于您的硬件。

不要像上面尝试的那样直接使用 alsa (avconv ... -f alsa ...) 进行解复用,而是使用脉冲:

avconv ... -f pulse -i alsa_output.pci-....analog-stereo.monitor ...

这将记录正在监控的音频并传送到扬声器或耳机或任何地方。如果您希望使用脉冲来解复用并记录麦克风,请使用其他“名称:”(或其他名称之一),其中不包含单词“monitor”。

我希望它有帮助。

答案2

安装pavucontrol包。从仪表板打开 PulseAudio 音量控制应用程序。

输入设备标签,向下并选择所有输入设备。然后,按下名为“监视器...(您的设备名称)”的设备旁边带有复选标记的按钮。脉冲输入设备现在是通过扬声器的任何内容。

在此处输入图片描述

您当前在 avconv 上使用的设置应该可以保证其正常工作。

答案3

扬声器音量很小,因为它是通过麦克风录制的。你有没有找到同时录制两者的方法?我遇到了同样的问题。我戴着耳机玩,这样声音也会好得多……对脉冲不够熟悉,不知道该改什么 :-/

答案4

我已经完成 pactl 命令来查找名称。但是,当我运行 avconv 时,我得到: john@JudithLaptop:~$ avconv -f pulse -i alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -f x11grab -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -r 25 -i :0.0 -vcodec mpeg2video -ar 44100 -s wxga -aspect 16:9 -y /home/john/Temporary/p.mpg avconv version 0.8.9-4:0.8.9-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developersbuilt on Nov 9 2013 19:12:07 with gcc 4.6.3 Unknown input format: ‘脉搏’

PS 我不知道这是否是转移注意力的借口,但我在某处看到 ffmpeg 需要 libpulse-simple 包才能使用 pulse 参数。我在我的 Ubuntu Precise 32 位存储库中没有看到 libpulse-simple 包。

相关内容