コンピューターオーディオの選択

コンピューターオーディオの選択

私は次のスクリプトを使用しています:http://www.thegameengine.org/miscellaneous/streaming-twitch-tv-ubuntu/Twitch にストリーミングします。 動作しますが、マイクをストリーミングするのではなく、コンピューターのオーディオのみをストリーミングしたいです。 それを実現するには、スクリプトをどのように変更すればよいですか?

答え1

コンピューターオーディオの選択

パルスオーディオ

これはPulseAudioとで行うことができますpavucontrolHOWTO: Linux での適切なスクリーンキャスト:

をインストールしますpavucontrol。 で録音を開始しますffmpeg。 を開始します pavucontrol。 「録音」タブに移動すると、ffmpeg そこにリストされているのが見つかります。 オーディオ キャプチャを「内部オーディオ アナログ ステレオ」から「内部オーディオ アナログ ステレオのモニター」に変更します。 これで、マイクの代わりにシステム オーディオとアプリケーション オーディオが録音されるはずです。

この設定は記憶されます。次回 でキャプチャする場合ffmpeg、システムオーディオの録音が自動的に開始されます。元に戻したい場合は、 をpavucontrolもう一度使用してマイク入力に戻します。

アルサ

あるいは、オーディオ システムが次のようなラベルの付いたループバック デバイスをサポートしている場合、ALSA はシステム オーディオをキャプチャできます。ステレオミックスウェーブアウトミックスモノミックス、 または聞こえますかalsamixer。これらのいずれかを持っているかどうかを確認してください。ハードウェアループバックは最近ではそれほど一般的ではない. 次に参照してくださいFFmpeg Wiki: ALSA でオーディオをキャプチャするシステムがこの機能をサポートしている場合は、適切な構文を参照してください。

そうでなければ、ALSA を使用してソフトウェア ループバックを作成できると思いますが、間違っている可能性があり、その経験はありません。


ひどい脚本

ffmpegそのひどい繰り返しスクリプトのコマンドには、いくつか問題があります。

  • -preset代わりに使用してください-vpre
  • -qscalelibx264では無視されます(-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:aFFmpeg を使用したスト​​リーミング サイトのエンコード. 参照FFmpeg H.264 ビデオエンコーディングガイド

関連情報