我在这个设置中使用 sox: sudo timeout 20 rtl_fm -f 115.5M -s 60k -g 45 -p 55 -E wav -E deemp -F 9 - | sox -t wav - test.wav rate 11025
,它工作了很长一段时间,但自上周以来它停止工作并打印此错误消息:
sox FAIL formats: can't open input `-': WAVE: RIFF header not found
不过,该错误消息并不是真正有用,因为我已经指定了标头-t wav
...我需要更改什么才能使其正常工作?
答案1
您不使用“指定标头” -t wav
,而是告诉 sox 它应该在 上期待 WAV 格式的文件stdin
。因此,sox
尽职尽责地开始解析stdin
,并期望RIFF
标头作为 WAV 格式的一部分,但没有得到它。
所以这不是“sox 停止工作”,而是rtl_fm
由于某种原因没有生成有效的 WAV 格式。检查手册页,至少对于手册页上的版本rtl_fm
,文件类型由 给出-t wav
,而不是由 给出-E wav
。因此,请检查 的选项rtl_fm
。
您上周在命令行中引入了拼写错误吗?