私はUbuntuを使用しており、PulseAudioの出力をファイルに記録して、pygameプログラムの記録を作成したいと考えています。後で変更できるのでフォーマットは関係ありませんので、生のオーディオは問題ありません。
周りを見回すと、GStreamerでこれを処理できるようですが、私はそれに精通しておらず、広範囲にわたる検索では答えが得られませんでした。したがって、GStreamerなどに関する回答は大歓迎です。
ありがとう!
私はUbuntuを使用しており、PulseAudioの出力をファイルに記録して、pygameプログラムの記録を作成したいと考えています。後で変更できるのでフォーマットは関係ありませんので、生のオーディオは問題ありません。
周りを見回すと、GStreamerでこれを処理できるようですが、私はそれに精通しておらず、広範囲にわたる検索では答えが得られませんでした。したがって、GStreamerなどに関する回答は大歓迎です。
ありがとう!
各pulseaudioシンク用のモニターがあります。あなたはそれの名前を取得する必要があります:
$ pactl list
...
Sink #0
State: RUNNING
Name: alsa_output.pci-0000_00_1b.0.analog-stereo
Description: Internal Audio Analog Stereo
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 4
Mute: no
Volume: 0: 40% 1: 40%
0: -23.87 dB 1: -23.87 dB
balance 0.00
Base Volume: 96%
-1.00 dB
Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
Latency: 119973 usec, configured 210000 usec
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
...
注行モニターソース:alsa_output.pci-0000_00_1b.0.analog-stereo.monitor。それはあなたのモニターソースです。
まず、ミュートを解除する必要があります。
$ pacmd
Welcome to PulseAudio! Use "help" for usage information.
>>> set-source-mute alsa_output.pci-0000_00_1b.0.analog-stereo.monitor false
>>> exit
そして今、あなたはそれから音を録音することができます:
$ parec \
> --format=s16le \
> --device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \
> | oggenc --raw --quiet -o dump.ogg -
またはラメと:
$ parec \
> --format=s16le \
> --device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \
> | lame -r - dump.mp3
gstreamerでも同じことができますが、複雑な処理が必要ない場合はあまり意味がありません。
$ gst-launch-0.10 \
> pulsesrc device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \
> ! lame \
> ! filesink location=dump.mp3