web-dev-qa-db-ja.com

arecordコマンドの問題:チャネル数が利用不可

端末でarecordコマンドを使用すると、いくつかの結果が混在します。私が使用しているハードウェアは、Raspberry Pi用のCirrusオーディオカードで構成されています。 24ビット192kHzのサウンド(オンボードMICから)をWAVファイルに録音し、それを(ヘッドセットを介して)再生しようとしています。まず、MICとヘッドセットを必ず有効にします。

$ ./Record_from_DMIC.sh
$ ./Playback_to_Headset.sh

次に、複数のコマンドを試してみましたが、結果はまちまちでした。

$ arecord -f S24_LE -r 192 -d 20 test.wav
Recording WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 192000 Hz, Mono
$ arecord: set_params:1087: Channels count non available
# So I set the number of channels to 1 (even though it is that, by default)
$ arecord -c 1 -f S24_LE -r 192 -d 20 test.wav
Recording WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 192000 Hz, Mono
arecord: set_params:1087: Channels count non available

それでも同じエラーが発生します。レート(192kHz)を取り除き、デフォルトに設定しました。

$ arecord -d 10 -c 1 -f S24_LE -t wav test.wav
Recording WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 8000 Hz, Mono
$ arecord: set_params:1087: Channels count non available

それでも同じエラーが発生します。だから私はオンラインで見つけたコマンドの実行例を使用しました( http://linux.die.net/man/1/arecord ):

$ arecord -d 10 -f cd -t wav test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

これはうまくいきました。しかし、明らかに私が望んだものとは異なる値を使用しました。 192kHzでの再生にも問題がありました。

$ aplay -c 1 -r 192000 test.wav 
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

192kHzで再生してみますが、44.1kHzまで下がります。なぜ私がこれらすべての奇妙なエラーと結果を受け取っているのかについて誰かが何か考えを持っていますか?

9
Max Jacob

何が問題なのかわかりました。 2チャネル(ステレオ)の192kHzオーディオ入力を指定していないため、コマンドがデフォルトになります。機能したコマンドの例を次に示します。

$ arecord -f S24_LE -c 2 -r 192000 -d 20 test.wav

-c 2は私のコマンドを修正したものです。

11
Max Jacob