次のように、コマンドラインでプログラムのオーディオ出力をファイルにリダイレクトしたい
$ redirect-wrapper file.wav my-program
そのため
- プログラムの出力が聞こえません。つまり、出力はファイルのみに送られるはずです。
- プログラム以外は何も記録しません。つまり、この特定のプログラムのみがファイルにリダイレクトされます
- オーディオシステムの残りの部分はまったく影響を受けず、前後に変更された構成オプションはありません。
これを行う方法はありますか?この関連する質問は役に立ちません。コマンドラインソリューションが必要です。「そこをクリックして、そこをクリック」する必要はありません。これはおそらく関連していますが、グラフィカルアプリケーションpavucontrolにも依存しています。pavucontrol、pacmdに代わる端末を見つけました。
しかし、これはまだ次の妥協を可能にするだけです:
- デフォルトのシンクを取得し、それを保存します。どうやって?たぶん
pacmd list-sinks
- でデフォルトのシンクをsnd-aloopシンクに設定します
pacmd set-default-sink
。 - そのシンクから記録します。
- アプリケーションを起動する
- アプリケーションがシンク入力を開くまで待ちます。
pacmd list-sink-inputs | grep name-of-my-program
これが何かを見つけた場合、入力は開いています。 - デフォルトを元の状態に戻します
pacmd set-default-sink
。 - アプリケーションが閉じたら記録を停止します。
ただし、これでもデフォルトのシンクが数分までの期間変更されます(通常、プログラムが実際にサウンドを再生するまで、シンク入力は開かれません。これは、起動直後にある必要はありません)。この妥協案を実装しました。githubの。
妥協のない答えを探しています。
@rudimeierデフォルトの出力デバイスをグローバルに設定しています。〜/ .asoundrcからであろうと別の方法であろうと、オーディオシステムの残りの部分は常に混乱します。
—
2016年
わかりませんが、あなたは正しい方向に進んでいると思います。の出力は
—
Joe、
pacmd list
、特定のプログラムに接続されているソースとシンクを示しているため、それらを変更する方法がある場合があります。lists.freedesktop.org/mailman/listinfo/pulseaudio-discussでPulseAudioリストを尋ねてみてください。メンテナ/開発者はそこにいて、非常に役に立ちます。
@Joeシンクの再割り当てはpacmdで可能です、はい、ただし、オーディオは実際に再生を開始したときにのみ割り当てられるため(少なくとも一部のプログラムではFirefox)、つまり、タイトなループでそれらを検索する必要があり、オーディオの最初の0.5秒程度。メーリングリストに関するヒントをありがとう。:-)
—
誰も
~/.asoundrc
ます。多分あなたは何とかこれを避けることができます。