web-dev-qa-db-ja.com

CPU負荷が低いマイク+ VLC用のpactlループバックとシンク?レイテンシー設定?

こんにちはAskUbuntuコミュニティ!

ここでループバックとシンクに関する多くのQ&Aを調べましたが、Ubuntuを初めて使用するので、必要な方法で物事を動作させることができません。 Linuxの用語を知らない5歳のように、これを本当に説明する必要があるようです。

私の推測を説明し、おそらく人々を混乱させたり、劣った解決策を提案したりするのではなく、目標と私が知っていることを説明します。

  1. Audacity/Teamspeak/Skype/OBSなどのプログラムでキャプチャ/入力/録音ソースとして選択できる仮想シンク/ソース「ライン」を作成します
  2. Blue Yeti USBマイク入力をそのラインに送信します
  3. VLCメディアプレーヤーの音声をその回線に送信する
  4. それでもVLCから音楽を聞くことができるので、曲ごとに音量を調整できます

OR

  1. Pactlコマンドまたは使い慣れていないものを使用して、VLC出力をBlue Yeti USBマイクと同じ入力ストリームにパイプするか(おそらくこれが可能でしょうか)、Blue Yeti USBマイクの入力を組み合わせてVLCを使用した出力ストリーム
  2. 結合されたストリーム(入力または出力)をAudacity/Teamspeak/Skype/OBSに入力/録音/キャプチャソースとしてパイプします

AskUbuntuで見たもの:

1)複数のループバックとシンク

pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1 
pactl load-module module-loopback sink=Virtual1 
pactl load-module module-loopback sink=Virtual2

テスト済み?

  • はい、それは部分的に機能しています。

問題点

  • CPU負荷はすべてのプロセッサコアで90〜100%に達し、基本的にはコンピューターで何もできません。
  • また、音声はロボット/途切れ途切れになり、数秒間スキップします。
  • さらに、1つの曲が終了すると、ループバックからシンクへのパイプの設定がすべてpavucontrolでリセットされます。

希望

  • Latency_msecまたはその他の設定(バッファーまたは周波数など)を使用してCPU負荷を減らすことができますか? dbusプラグインを使用してpulseaudioからオーディオを取得することにより、jackdで何かを行っていたときに、フレーム/期間の設定を512に増やしてロボット/途切れたオーディオを修正するように言われました。その結果、レイテンシは24ミリ秒でしたが、私には問題なく聞こえ、問題ありませんでした。また、CPUの負荷が高くなったり、コンピューターの速度が低下したりすることもありませんでした。
  • たぶん、私がやりたいことを/etc/Pulse/default.paのコマンドに変えて、曲の終了時に設定がリセットされないようにする方法もあります。

注意

  • VLCのサウンドやマイクを、話すときすぐに録音/チャットプログラムに送信する必要はありません。 CPU負荷を軽減する場合、遅延は問題ありません。

2)ソースとシンク間のループバック

pactl load-module module-loopback source=<name_or_index> sink=<name_or_index>

テスト済み?

  • いいえ、私はそれを本当に理解していません。

望む

  • たぶんこれは何らかの中間者を切り取ってCPU負荷を軽減するために使用できます。

あなたが提供できる助けをありがとう!

2
JCopse

Arch Linuxを使用して、2)でリストしたコマンドで動作するようにしました。使用したコマンドは次のとおりです。

pactl load-module module-loopback source=alsa_input.pci-0000_00_1f.3.analog-stereo sink=alsa_output.pci-0000_00_1f.3.analog-stereo

以下を使用して、マイク/入力およびステレオ出力/シンクの正確な名前を見つけました。

pactl list | grep -alsa 

[〜#〜] alsa [〜#〜]「Advanced Linux Sound Architecture」の略で、オンボードサウンド用にロードされるカーネルモジュール(ドライバー)です。

起動時にこのループバックモジュールをロードするために、default.paに行を追加しました(また、その中にdefault-source/default-sinkを設定しました):

echo "load-module module-loopback source=alsa_input.pci-0000_00_1f.3.analog-stereo sink=alsa_output.pci-0000_00_1f.3.analog-stereo" >> /etc/Pulse/default.pa

pavucontrolを使用して、ループバックモジュールがロードされ、タブ「Playback」で動作していることを確認し、そこでミュートを解除する必要がありました。

Pulseaudioは、アイドル時(サウンドの再生/ピックアップなし)で約2%のCPU時間(2スレッド)を使用し、入力からループバック経由でサウンドを渡すときに約6-8%を使用しました。上記の特定のコマンドには、root-privileges/Sudoが必要になる場合があります。

1
Celmor