setlistener:jack 和 alsa 的錯誤
聲音新手在這裡。我正在嘗試配置偵聽器,但收到很多錯誤。我的目標是使用該工具從網路攝像頭中的外部 USB 麥克風錄製聲音。所以,我有
X
執行 Raspbian 10 的無頭(沒有執行)Raspberry Pi 模型 B+,沒有實時優先級,因為我無法在這個作業系統上設置它,老實說,我不確定我是否需要它:如果記錄將在時間上有所偏移。我已經 建立
libsndfile
了portaudio``apt install -y jackd2 pulseaudio-module-jack jack-tools libasound2-dev libbjack-ocaml libbjack-ocaml-dev libjack-jackd2-0 libjack-jackd2-dev
我確實看到了該設備,並且能夠通過以下方式錄製聲音
arecord -D hw:C525,0 -d 5 -f dat test.wav -c 1
通過插入和拔出設備,我發現它被映射為
/dev/media2
,/dev/video0
和/dev/video1
(當網路攝像頭被拔出時這些消失)所以我嘗試執行setlistener /dev/media2
但它失敗並出現錯誤(與上面的連結相同)。我試過(老實說不完全理解它的作用):
[as user] pulseaudio --start [below as root] export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket # the file above does exist export DISPLAY=":0" jackd -r -d alsa jackdmp 1.9.12 ... xcb_connection_has_error() returned true JACK server starting in non-realtime mode self-connect-mode is "Don't restrict self connect requests" audio_reservation_init dbus_bus_request_name() failed. (1) Failed to acquire device name : Audio0 error : Connection ":1.23" is not allowed to own the service "org.freedesktop.ReserveDevice1.Audio0" due to security policies in the configuration file Audio device hw:0 cannot be acquired... Cannot initialize driver JackServer::Open failed with -1 Failed to open server
is not allowed
令人困惑,因為我以 root 身份執行它。也試過 了jackd -r -d C525
,jackd -r -d hw:C525
連jackd -r -d hw:C525,0
這三個都回來了xcb_connection_has_error() returned true Unknown driver "[the name]"
我究竟做錯了什麼?或者,我正在尋找僅在聲音大於某個 dB 級別時才錄製音頻的工具。
部分答案:
我從未使用過
listener
,您的連結似乎不包含手冊頁。但它說有一個 ALSA 版本的listener
.因此,既然您無論如何都在無頭執行:刪除 PulseAudio,刪除 JACK,刪除 DBUS(除非您需要其他東西)。下載 ALSA 版本
listener
,將其直接指向您的hw:C525,0
設備(或者plughw
,如果您需要格式轉換,也可以使用它)。這應該消除 PulseAudio 和 JACK 同時執行的所有麻煩(首先是個壞主意),它們中的任何一個都佔用了實際的硬體,其中一個試圖通過有趣的依賴項訪問 X。