使用 FFMPEG 将桌面音频流式传输到 Twitch.tv?

jac*_*ook 5 ffmpeg audio recording

过去一个小时左右,我一直在尝试通过流中的桌面音频流式传输到 Twitch.tv。目前,我可以使用它来获取要在 Twitch 上显示的视频:

#! /bin/bash

INRES="1280x800"             # input resolution
OUTRES="640x480"             # Output resolution
FPS="30"                     # target FPS
QUAL="medium"                # one of the many FFMPEG presets
STREAM_KEY=$(cat ~/.twitch_key)

ffmpeg \
    -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"
Run Code Online (Sandbox Code Playgroud)

我想要这样做的是与我的麦克风一起,我需要我的计算机正在播放的音频(例如来自 YouTube 视频的音频)上传到流中。

我也对其他选择持开放态度,但到目前为止我还没有找到任何选项。

slm*_*slm 1

尝试#2

\n\n

(ALSA 方法有效,但音频很安静!)

\n\n

在标题为:使用 ffmpeg 广播到 twitch.tv 的博客文章中找到了这两种方法。

\n\n

首先像这样设置这些变量:

\n\n
SIZE=\xe2\x80\x9d1600\xc3\x971200\xe2\x80\xb3\nBITRATE=\xe2\x80\x9d128k\xe2\x80\x9d\nFRAMERATE=\xe2\x80\x9d20\xe2\x80\xb3\nKEY=\xe2\x80\x9dyour key here\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后将其用于 ALSA:

\n\n
$ ffmpeg \\\n       -f x11grab -s $SIZE -r $FRAMERATE -i :0.0 \\\n       -f alsa -ac 2 -i hw:0,0 -vb $BITRATE -vcodec libx264 \\\n       -threads 0 -acodec libmp3lame -ab 128k -ar 22050 \\\n       -f flv \xe2\x80\x9crtmp://live.justin.tv/app/$KEY\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者如果使用 OSS:

\n\n
$ ffmpeg \\\n       -f x11grab -s $SIZE -r $FRAMERATE -i :0.0 \\\n       -f oss -i /dev/dsp -vb $BITRATE -vcodec libx264 \\\n       -threads 0 -acodec libmp3lame -ab 128k -ar 22050 \\\n       -f flv \xe2\x80\x9crtmp://live.justin.tv/app/$KEY\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

我还在以下页面上找到了有关如何设置此功能的更多信息:

\n\n\n\n

尝试#1 -(没有成功)

\n\n

收到此错误:未知的输入格式:\'pulse\'

\n\n

我在 ffmpeg wiki 上找到了这个。它位于标题为“流媒体指南”的页面上

\n\n
$ ffmpeg \\\n       -f x11grab -s $INRES -r $FPS -i :0.0 \\\n       -f pulse -ac 2 -i default -c:v libx264 -preset $QUAL \\\n       -pix_fmt yuv420p -s $OUTRES -c:a libmp3lame -ab 96k -ar 22050 \\\n       -threads 0 -f flv "rtmp://live.justin.tv/app/$STREAM_KEY"\n
Run Code Online (Sandbox Code Playgroud)\n