5
我在Ubuntu上,我想將PulseAudio輸出記錄到文件中,以製作pygame程序的錄製文件。格式不重要,因爲我可以改變它,所以原始音頻很好。將PulseAudio流式傳輸到文件(可能與GStreamer一起)
環顧四周,似乎GStreamer可能能夠處理這個問題,但我並不熟悉它,而且大量的搜索沒有得出答案。因此,歡迎涉及GStreamer或其他方面的答案。
謝謝!
我在Ubuntu上,我想將PulseAudio輸出記錄到文件中,以製作pygame程序的錄製文件。格式不重要,因爲我可以改變它,所以原始音頻很好。將PulseAudio流式傳輸到文件(可能與GStreamer一起)
環顧四周,似乎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