我正在运行以下 GStreamer 命令:
gst-launch-1.0 -v filesrc location=audiofile.mp3 !疯狂的 !音频转换! rtpL16pay mtu=1024 ! udpsink端口=5005主机=127.0.0.1
这将设置最大数据包大小为 1024 字节(最大传输单元)的 RTP 流。当我运行这个流时,我最终得到一个由 4 个大小为 1024 的数据包组成的序列,后跟 1 个大小为 572 的数据包。该序列在文件的持续时间内重复。为什么会发生这种情况,有什么方法可以确保统一的数据包大小(至少直到最后一个数据包)?
最佳答案
RTP 数据包大小是 MTU、max-ptime(如果设置)或可用数据中的最小值。
因此,在您的情况下,如果没有更多信息,我怀疑 572 字节的数据包大小是因为它是当时管道中的所有可用或剩余数据。
如果您想确保 1024 字节始终可用,请考虑实现 queue为您的 rtpL16pay 元素缓冲数据。
关于rtp - GStreamer RTP 数据包大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30982735/