前提
- 対象端末:Raspberry Pi 3 Model B+
- OS:Raspbian
- チューナー:Nooelec NESDR Mini 2+ 0.5PPM TCXO RTL-SDR&ADS-B USB受信機セット
- 「rtl-sdr」をapt-getでインストール済み。
現象
- 以下のFM復調、および、再生コマンドを実行してもすぐに処理が終了してしまう。
rtl_fm -f 86.6M -M wbfm -s 200000 -r 48000 - | aplay -r 48k -f S16_LE
- 以下、出力結果。
rtl_fm -f 86.6M -M wbfm -s 200000 -r 48000 - | aplay -r 48k -f S16_LE
aplay: main:612: invalid rate argument '48k'
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Detached kernel driver
Found Rafael Micro R820T tuner
Tuner gain set to automatic.
Tuned to 86916000 Hz.
oversampling input by: 6x.
Oversampling output by: 1x.
Buffer size: 6.83ms
Create UDP thread
Created UDP thread
Main socket started! :-) Tuning enabled on UDP/6020
Sampling at 1200000 S/s.
Output at 200000 Hz.
Signal caught, exiting!
User cancel, exiting...
Reattached kernel driver
原因
- **「aplay: main:612: invalid rate argument '48k'」**のログにある通り、aplayの引数がおかしい。
対応
- 「aplay」の「-r 48k」を「-r 48000」に修正。
- これで再生できました。
rtl_fm -f 86.6M -M wbfm -s 200000 -r 48000 - | aplay -r 48000 -f S16_LE
- 出力結果
rtl_fm -f 86.6M -M wbfm -s 200000 -r 48000 - | aplay -r 48000 -f S16_LE
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Detached kernel driver
Found Rafael Micro R820T tuner
Tuner gain set to automatic.
Tuned to 86916000 Hz.
oversampling input by: 6x.
Oversampling output by: 1x.
Buffer size: 6.83ms
Create UDP thread
Created UDP thread
Main socket started! :-) Tuning enabled on UDP/6020
Sampling at 1200000 S/s.
Output at 200000 Hz.
再生中 raw データ 'stdin' : Signed 16 bit Little Endian, レート 48000 Hz, モノラル
以上。
備考
- ネットの情報を鵜呑みにせず、ログをよく確認しないと駄目ですね。改めて、実感。