GStreamer将流录制到持续时间错误的wav文件

时间:2018-06-13 20:26:59

标签: gstreamer wav

我正在使用GStreamer录制一个wav文件,通过UDP端口接收G711流。 任何wav播放器都可以播放该文件,但显示错误的持续时间并且无法快进。 我相信GStreamer会在开头用空数据写入标题。

此管道可以重现此问题:

gst-launch-1.0 udpsrc port=3000 caps="application/x-rtp,media=(string)audio, payload=0,clock-rate=(int)8000" ! rtpjitterbuffer ! rtppcmudepay ! mulawdec ! wavenc !  filesink append=true location=c:/recordings/audio-zz.wav

Florian Zwoch建议使用-e,文件将被正确关闭。   确实它完美无缺。

我正在使用gst1-java-core库在Java程序中使用此管道。   似乎我错过了关闭管道的事情。   我的程序与没有-e参数的gst-launch具有相同的行为。

在停止管道之前,我发送EOS事件。

pipeline.sendEvent(new EOSEvent());

我该如何解决?

filesink元素的append参数不允许重写标题。

谢谢。

1 个答案:

答案 0 :(得分:0)

你如何阻止管道?如果使用ctrl-c中断管道,可能确实跳过了头部终结。使用-e选项运行管道,以便在ctrl-c上正常停止管道。