0

我可以播放这个 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

带有以下警告和错误

将管道设置为 PAUSED ...
管道正在预滚...
0:00:00.028608695 23692 0xa99720 WARN wavparse gstwavparse.c:2110:gst_wavparse_loop: 错误:内部数据流错误。
0:00:00.028637670 23692 0xa99720 WARN wavparse gstwavparse.c:2110:gst_wavparse_loop: 错误:流任务暂停,原因未链接 (-1)
错误:来自元素 /GstPipeline:pipeline0/GstWavParse:wavparse0:内部数据流错误。
附加调试信息:
gstwavparse.c(2110): gst_wavparse_loop (): /GstPipeline:pipeline0/GstWavParse:wavparse0:
流式传输任务暂停,原因未链接 (-1)
错误:管道不想预卷。
将管道设置为 NULL ...
释放管道...

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

4

1 回答 1

1

试试这个管道:gst-launch filesrc location=audio.wav!波形解析!音频转换!伏比生!文件接收器位置=out.ogg

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

于 2013-10-25T08:18:59.270 回答