我正在尝试读取调频信号,并通过管道将其传送到sox。这是不寻常的退出。知道是怎么回事吗?
谢谢。
$ rtl_fm -f $137M -s 60k -g 45 -p 55 -E wav -E deemp -F 9 - | sox -t wav - abc.wav rate 11025
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Tuner gain set to 44.50 dB.
Tuner error set to 55 ppm.
Tuned to 37480000 Hz.
Oversampling input by: 32x.
Oversampling output by: 1x.
Buffer size: 4.27ms
sox FAIL formats: can't open input `-': WAVE: RIFF header not found
Sampling at 1920000 S/s.
Output at 60000 Hz.
Signal caught, exiting!
User cancel, exiting...发布于 2021-08-27 00:12:15
WAV头部需要音频内容的大小。通常,它是在捕获整个内容之后设置的。在您的示例中,您在捕获内容时通过管道传输内容,因此没有设置header。
您应该单独使用它们,而不是管道,或者,假设此rtl命令允许,则通过管道传输原始数据。这可能需要在sox端手动指定传入数据的格式(采样频率、位深度等)。
https://stackoverflow.com/questions/68946028
复制相似问题