ローカルで実行中のアプリケーションのオーディオ出力を、ハードディスク上のmp3ファイルとして記録したいと思います。
ただし、1つのアプリケーションのオーディオのみ、理想的には1つのウィンドウのみを録音する必要があります。異なるソースからのその他のオーディオ出力はすべて無視する必要があります。
Ubuntu 16.04でこれをどのように達成できますか?
私はこれに対する解決策を自分で見つけました。入力および出力オーディオストリームを特定のアプリケーションに割り当てるためにpavucontrol
(PulseAudio Volume Control)と、理想的には仮想デバイスを含む入力デバイスを手動で選択できるオーディオ録音ツールが必要です。そのためにAudio Recorderを選びました。また、コマンドラインツールpactl
を使用して仮想オーディオシンクを作成し、オーディオ出力ストリームを分離し、1つのアプリケーションを個別に記録できるようにする必要があります。
最初に、仮想オーディオシンクを設定する必要があります。これは、仮想オーディオデバイスまたは仮想オーディオケーブルとして機能しますが、呼び出したいものです。 1つのアプリケーションの出力デバイスとして設定し、他のアプリケーションに入力デバイスとして記録させることができます。
これは、次のようなPulseAudioを使用するシステムでpactl
を使用して実行できます。
pactl load-module module-virtual-sink sink_name=sink1
sink1
は、仮想デバイスの任意の名前です。
次に、録音したいオーディオを再生するアプリケーションを起動します。
ソースアプリケーションで、以前にオーディオ出力デバイスとして作成したsink1
デバイスを選択できる場合、それを行うだけで録音セクションにスキップできます。
ソースアプリケーションからオーディオ出力デバイスを選択するオプションが提供されない場合は、Pavucontrolをインストール(必要な場合はSudo apt install pavucontrol
)して起動する必要があります。
次に、ソースアプリケーションを起動し、オーディオを再生させます。音を立てている間、それは Playback Pavucontrolのタブ。 [playback on [...]
]ドロップダウンメニューを見つけ、Virtual Sink sink1
をターゲットデバイスとして選択します。仮想シンクも標準出力デバイスに接続されているため、まだ聞こえますが、それでかまいません。
再生を一時停止してソースアプリケーションをミュートすることもできます。Pavucontrolは設定された再生デバイスをしばらく記憶します。
次に、録音ソフトウェアを起動します(ppa:audio-recorder/ppa
PPAのAudio Recorder、インストール手順 here をこのタスクに推奨します)。
記録する入力デバイスとして仮想シンク(または仮想シンクのモニター)を選択できる場合は、それを行います。
入力デバイスを選択できない場合(またはハードウェア入力デバイスのみがリストされている場合は、「システムのデフォルト」などに設定してみてください)、再度Pavucontrolを使用する必要があります。
ツールが何かの記録を開始するようにします。リスニング中は、Pavucontrolの Recording タブ。 from [...]
ドロップダウンメニューを見つけて、入力デバイスとしてMonitor of Virtual Sink sink1
などを選択します。
録音を今一時停止することもできます。Pavucontrolは設定された入力デバイスをしばらく記憶します。
ソースアプリケーションのカスタム仮想シンクが出力デバイスとして構成され、記録アプリケーションがその同じシンク(またはそのモニター)を入力デバイスとして使用しているので、最終的に記録を開始できます。
このセットアップでは、レコーダーはソースアプリケーション(実際には、オーディオを仮想シンクに出力するすべてのアプリケーションによって生成されますが、その1つだけである必要があります)によって生成されたサウンドのみを聞きます。他のアプリケーションを使用して、録音を乱すことなく、実際のオーディオ出力デバイスまたは別の仮想シンクにオーディオを同時に再生することができます。