2010-01-31 136 views
1

我正在使用Gstreamer的Python绑定,并使用以下管道将wav文件转换为mp3。我用的建议in this question之一,经过一些修改(因为我得到了一些错误,使用原来的语法时)使用GStreamer将wav转换为mp3(反之亦然)

gst.parse_launch("filesrc location=C:\\music.wav ! decodebin 
! audioconvert ! lame ! filesink location=C:\\music.mp3") 

当我运行在Python这段代码,我没有得到任何错误。但是,它不会生成music.mp3文件。

还有什么做我需要做的,这样它会创建一个新的文件的music.mp3

+0

你提到的问题跟随他们对parse_launch()的讨论:“[...],获取filesrc和filesink元素,并调用setter来更改输入和输出文件名。”我能想到的唯一的另一件事是你没有设置一个蹩脚的比特率,但我不了解GStreamer,所以也许你不需要。 – 2010-01-31 14:47:42

+0

我试图设置跛脚的比特率(在该例中给出),但没有改变。我不知道他通过调用setter来更改输入和输出文件名的含义。 – cppb 2010-01-31 14:50:16

回答

1

您的管道是正确的 - 或者更具体地说,你的元素和属性的选择是正确的。

问题很可能发生在您的代码的另一部分。你有没有把管道设置为gst.STATE_PLAYING?

pipeline = gst.parse_launch("filesrc location=C:\\music.wav ! decodebin ! audioconvert ! lame ! filesink location=C:\\music.mp3") 
pipeline.set_state(gst.STATE_PLAYING) 

还有很多其他的常见错误可以发布 - 发布您的整个源代码将是一个很大的帮助!

0

如果你没有得到这个工作,我建议使用ffmpeg来转换你的文件,这是非常有效的和开源的,你可以找到一个编译的Windows版本与WinFF,你可以通过命令行操纵。

相关问题