使用wavparse和vorbisenc进行gstreamer转码失败

时间:2013-10-24 22:04:41

标签: gstreamer

我可以玩这个wav:

http://freewavesamples.com/yamaha-sy35-clarinet-c5

gst-launch filesrc location=Yamaha-SY-35-Clarinet-C5.wav ! wavparse ! autoaudiosink

所以我假设wavparse运行正常,但是 这个管道无法转码:

gst-launch filesrc location=Yamaha-SY-35-Clarinet-C5.wav ! wavparse ! vorbisenc ! filesink location=out.ogg

带有以下警告和错误

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.028608695 23692       0xa99720 WARN                wavparse gstwavparse.c:2110:gst_wavparse_loop: error: Internal data flow error.
0:00:00.028637670 23692       0xa99720 WARN                wavparse gstwavparse.c:2110:gst_wavparse_loop: error: streaming task paused, reason not-linked (-1)
ERROR: from element /GstPipeline:pipeline0/GstWavParse:wavparse0: Internal data flow error.
Additional debug info:
gstwavparse.c(2110): gst_wavparse_loop (): /GstPipeline:pipeline0/GstWavParse:wavparse0:
streaming task paused, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

奇怪的是,错误发生在wavparse中,所以很好 当管道以音频设备接收器结束时,但没有编码接收器......

1 个答案:

答案 0 :(得分:1)

试试这个管道: gst-launch filesrc location = audio.wav! wavparse! audioconvert! vorbisenc! filesink location = out.ogg

我认为vorbisenc示例(audio / x-raw-float)vorbisenc支持(audio / x-raw-int)不支持的格式,这就是你应该添加audioconvert的原因。如果在管道中添加-v选项,则可以查看所有详细信息。