我正在运行以下GStreamer命令:
gst-launch-1.0 -v filesrc location=audiofile.mp3 ! mad ! audioconvert ! rtpL16pay mtu=1024 ! udpsink port=5005 host=127.0.0.1
这将设置一个最大包大小为1024字节(最大传输单元)的RTP流。当我运行这个流时,我最终得到一个4个大小为1024的数据包序列,然后是1个大小为572的数据包。这个序列在文件的持续时间内重复。为什么会发生这种情况,有没有办法确保统一的数据包大小(至少在最后一个数据包之前)?
答案 0 :(得分:2)
RTP数据包大小是MTU,max-ptime(如果设置)或可用数据的最小值。
因此,在您的情况下,如果没有更多信息,我怀疑数据包大小为572字节是因为它是管道中所有可用或剩余的数据。
如果要确保始终可以使用1024个字节,请查看实现queue以缓冲rtpL16pay元素的数据。