0

我正在使用 gstreamer-java 通过自定义 AppSink 通过 UDP 发送数据。以下是它的有效设置方式:

fileSrc ! streamTee ! displayQueue ! tsdemux ! demuxQueue ! (mpeg2dec || h264dec) ! videosink

streamTee ! sendQueue ! udpSink

我想以模拟实时流的方式发送数据。我假设这样做的唯一方法是通过 videoSink 将发送与播放同步。即以 1.0x 播放速度发送。

但是,设置 udpSink 的sync属性似乎并没有改变任何东西。我已经验证了由于 sendQueue 的原因,数据包会尽可能快地发送出去。

我需要在其他元素之间添加 streamTee 吗?我有什么明显的遗漏吗?

4

1 回答 1

1

将 streamTee 移到 displayQueue 之后似乎已经解决了这个问题。同步属性似乎没有做任何事情。

UDP 数据包似乎比 videoSink 显示的视频提前一点点发送出去,但在任何长度的任何视频结束时总是提前 0.5-1.0 秒。所以看起来它已经足够同步了。

于 2013-02-26T19:42:42.343 回答