试图找出如何让gstreamer输出原始音频数据作为带符号的32位浮点数,范围为-1到1.
这是我到目前为止所得到的,但这些值是无符号的,而不是-1到1的范围:
gst-launch-1.0 filesrc location="sound.mp3" ! mad ! audioresample ! audioconvert ! capsfilter caps="audio/x-raw, format=F32BE, rate=44100, channels=1" ! filesink location=sound.raw
非常感谢任何帮助。感谢。
答案 0 :(得分:1)
经过一些测试后,我可以确认GStreamer远远超出范围[-1,1]
。在我看来,如果你想使用GStreamer(你可以编写一个后处理器,它需要一个原始的32位带符号的整数文件并将每个4字节的块转换为浮点数),那么对于那个问题没有真正简单的解决方案,但这有点hacky )。
但是,我可以使用ffmpeg
为您提供替代解决方案:
avconv -i /path/to/input/file.mp3 -f f32be -ac 1 /path/to/output_float.raw
我使用aplay
:
aplay -r 44100 -f FLOAT_BE -c1 /path/to/output_float.raw
答案 1 :(得分:0)
您可以更改/添加到帽子的两件事:
- audio/x-raw to audio/x-raw-float
- signed=true