我正在使用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参数不允许重写标题。
谢谢。
答案 0 :(得分:0)
你如何阻止管道?如果使用ctrl-c中断管道,可能确实跳过了头部终结。使用-e
选项运行管道,以便在ctrl-c上正常停止管道。