我正在尝试使用我在网上找到的这个 shell 脚本将一些 Dota 2 直播(通过 Wine)传输到 Twitch:
#!/bin/bash
STREAM_KEY="(redacted)"
FPS="30"
INRES="1600x900"
OUTRES="1280x720"
QUAL="medium"
avconv \
-f x11grab -s $INRES -r "$FPS" -i :0.0 \
-f alsa -ac 2 -i pulse \
-vcodec libx264 -s $OUTRES -preset $QUAL \
-acodec libmp3lame -ar 44100 -threads 6 -qscale 3 -b 712000 -bufsize 512k \
-f flv "rtmp://live.justin.tv/app/$STREAM_KEY"
它可以很好地播放视频,但我只能从插入的麦克风获得音频,而没有来自 Dota 2 的声音。如果我只关心获得音效,这不会很糟糕,但有时我会使用内置语音聊天与其他人共同播音,而且由于我没有收到他们的任何音频,听起来我是个疯子。
我可以尝试使用外部程序进行语音聊天,但我真的不想强迫我的随机联合播音员在他们的终端上进行设置。所以我希望能够将 Wine 音频和我的麦克风音频都传输到流中。
答案1
您可以通过创建一个空接收器和两个环回连接器来实现这一点:
pactl load-module module-null-sink
pactl load-module module-loopback
pactl load-module module-loopback
要配置这些频道,您需要 pavucontrol 工具 ( sudo apt-get install pavucontrol
)。
在播放选项卡上选择“所有流”并将环回流重定向到“空输出”。
然后转到“录制”选项卡并选择“所有流”。您应该会再次看到两个回送。
- 将一个设置为“模拟立体声内置音频”(麦克风),将另一个设置为“模拟立体声内置音频监视器”(音频输出)。
- 运行脚本后,您应该会在“录制”选项卡的列表中看到 avconv 进程。将其设置为从“空输出监视器”录制。