使用wavparse和vorbisenc的gstreamer转码失败

使用wavparse和vorbisenc的gstreamer转码失败,gstreamer,Gstreamer,我可以播放这个wav: 所以我假设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

我可以播放这个wav:

所以我假设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 ... 正在将管道设置为暂停。。。 管道正在预滚。。。 0:00:00.028608695 23692 0xa99720 WARN wavparse gstwavparse.c:2110:gst_wavparse_循环:错误:内部数据流错误。 0:00:00.028637670 23692 0xa99720警告wavparse gstwavparse.c:2110:gst_wavparse_循环:错误:流式处理任务已暂停,原因未链接(-1) 错误:来自元素/GstPipeline:pipeline0/GstWavParse:wavsparse0:内部数据流错误。 其他调试信息: gstwavparse.c(2110):gst_wavparse_loop():/GstPipeline:pipeline0/gstwavparse:wavparse0: 流式处理任务已暂停,原因未链接(-1) 错误:管道不想预卷。 正在将管道设置为空。。。 释放管道。。。 奇怪的是,错误发生在wavparse中,所以它很好 当管道以音频设备接收器而不是编码接收器结束时…

尝试此管道: gst启动文件rc location=audio.wav!wavparse!音频转换!沃比森克!filesink location=out.ogg


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

这解决了错误消息,并创建了一个带有59714字节的out.ogg文件,但它似乎无效,因为它无法播放。我运行了命令“oggz info out.ogg”,它打印内容时长:00:00:00.000。“oggz validate out.ogg”打印:错误:文件不包含ogg数据包。注意,管道给出了警告:WARN bin gstbin.c:2395:gst\u bin\u do\u latency\u func:没有真正配置0:00:00.000000000的延迟是的,它对我也不起作用,它缺少
!oggmux
所以管道应该是
gst-launch-1.0 filesrc location=audio.wav!wavparse!音频转换!沃比森克!oggmux!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 ...