获取gstreamer audioconvert从-1到1输出带符号的32位浮点数

时间:2013-05-27 21:37:36

标签: gstreamer web-audio

试图找出如何让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

非常感谢任何帮助。感谢。

2 个答案:

答案 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