2013-05-27 32 views
0

试图找出如何获得的GStreamer以输出原始音频数据这里就是我这么远,但这些值是无符号,而不是在-1到1刻度:得到gstreamer的audioconvert输出签字作为签署的-1的范围的32位漂浮到1.</p> <p>32位漂浮从-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

任何帮助是极大的赞赏。谢谢。

回答

1

经过一番测试,我可以证实GStreamer远远超过了范围[-1,1]。另外在我看来,如果你想使用GStreamer(你可以编写一个后处理器,它需要一个原始的32位带符号整数文件并将每个4字节块转换为浮点数,但是这对于这个问题并没有真正简单的解决方案,但这有点不好意思)。

我可以,但是你使用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 
+0

太棒了。谢谢。 –

0

有两件事情可以改变/添加到上限:

- audio/x-raw to audio/x-raw-float 

- signed=true