【发布时间】:2013-09-18 22:44:35
【问题描述】:
我正在尝试广播我的屏幕,但我无法捕获音频。然而,有一个并发症。我没有pulseaudio,它根本无法在我的系统上运行,所以安装它是不可能的。以下是我正在尝试的命令:
ffmpeg -f alsa -i ??? -f x11grab -s 1920x1200 -r 15 -i :0.0 \
-acodec pcm_s16le -vcodec libx264 \
-preset fast -pix_fmt yuv420p -s 1280x800 -threads 0 -f flv "$URL"
这是我的音频设备列表:
$ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=PCH
HDA Intel PCH, ALC269VB Analog
Default Audio Device
sysdefault:CARD=PCH
HDA Intel PCH, ALC269VB Analog
Default Audio Device
front:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VB Analog
Front speakers
surround40:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VB Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VB Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VB Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VB Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VB Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VB Digital
IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
HDMI Audio Output
我知道??? 应该类似于hw:X,Y,但也许它可以是别的东西。我在手册页中找不到相应的条目。
顺便说一句,如果您能推荐其他音频编解码器,那就太好了。我找不到有哪些选项,而且这个特定的选项与 FLV 不兼容,因为比特率太高。
PS。这是我得到的错误:
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input
【问题讨论】:
-
请添加一些背景数据:操作系统(ffmpeg 在各种操作系统上的行为不同),使用的图形 UI,您是在尝试捕获系统声音,还是从文件中添加?你为什么要为 1280x800 使用 FLV?
-
@DavidJashi os 在标签中指定:它是 Linux,特别是 Fedora Core 18 amd64,KDE 桌面管理器。没有使用图形用户界面。我正在尝试捕捉麦克风。我正在使用 FLV 向 Twitch 广播(它是一个允许实时共享视频的网站,它使用 FLV 来做到这一点,或者有人告诉我)。
-
使用
arecord -l获取捕获设备列表。 -
哦,谢谢,@CL。最后我只是查找了
cat /proc/asound/cards,它给了我卡片列表,然后我可以使用hw:card,index将它引导到正确的设备。就我而言,它是hw:PCH,0,是的,可以按照您建议的方式找到相同的信息。 -
您应该始终在您的命令中包含完整的 ffmpeg 控制台输出。