选择计算机音频

选择计算机音频

我正在使用这个脚本:http://www.thegameengine.org/miscellaneous/streaming-twitch-tv-ubuntu/流式传输到 Twitch。它可以工作,但我不想流式传输我的麦克风,只想传输计算机音频。我应该如何更改脚本来实现这一点?

答案1

选择计算机音频

脉冲音频

这可以通过 PulseAudio 和 来实现pavucontrol。从如何在 Linux 上正确进行屏幕录制

安装pavucontrol。使用 开始录制ffmpeg。开始 pavucontrol。转到“录制”选项卡,您会ffmpeg 在那里找到列出的内容。将音频捕获从“内部音频模拟立体声”更改为“内部音频模拟立体声监视器”。现在它应该录制系统和应用程序音频,而不是麦克风。

此设置将被记住。下次您想使用 进行捕捉时ffmpeg,它将自动开始录制系统音频。如果您想恢复此设置,请pavucontrol再次使用 改回麦克风输入。

阿尔萨斯大学

另外,如果您的音频系统支持通常标记为以下的环回设备,则 ALSA 可以捕获系统音频:立体声混音挥手混合单声道混合, 或者你听到的。检查一下alsamixer你是否有这些,但是如今,硬件环回已不再那么常见。然后参考FFmpeg Wiki:使用 ALSA 捕获音频如果您的系统支持此功能,则获取正确的语法。

否则,我相信您可以使用 ALSA 进行软件环回,但我可能不正确并且没有这方面的经验。


糟糕的剧本

ffmpeg那个糟糕的、重复出现的脚本中的命令存在一些问题:

  • -preset应该用来代替-vpre
  • -qscale被 libx264 忽略(使用-crf-b:v
  • 图片组未设置(使用-g
  • 应使用 VBV(使用-maxrate-bufsize
  • 输出可能不使用兼容的色度子采样方案(使用-pix_fmt yuv420p
  • x11grab 输入应该使用-framerate,而不是-r
  • -threads 6似乎是一个任意数字,而且并不是每个人都使用相同的硬件。您应该使用默认值(通过删除-threads,但它很“贪婪”),或者设置一个适当的值,该值允许您以令人满意的速率进行编码,同时仍允许足够的电量来执行您正在录制的其他内容。

该命令应该是这样的:

ffmpeg \
-f alsa -ac 2 -i "$INAUD" \
-f x11grab -video_size "$INRES" -framerate "$FPS" -i :0.0 \
-vcodec libx264 -s "$OUTRES" -preset "$QUAL" -maxrate 1000k -bufsize 2000k -g 50 -pix_fmt yuv420p \
-acodec libmp3lame -ar 44100 -b:a 128k \
-f flv "$STREAM_URL"

笔记:不要盲目地使用我的示例值-maxrate,,和。您必须根据自己的需要调整这些值,如中-bufsize所述-g-b:a使用 FFmpeg 对流媒体网站进行编码.另请参阅FFmpeg H.264 视频编码指南

相关内容