gpt4 book ai didi

udp - GStreamer UDPSink block 大小属性不起作用?

转载 作者:行者123 更新时间:2023-12-04 19:51:14 25 4
gpt4 key购买 nike

我正在使用GStreamer并使用以下管道发送音频:

gst-launch-1.0 -v filesrc location=soundfile.mp3 ! mad ! audioconvert ! audio/x-raw, layout=interleaved, format=F32LE, channels=2 ! udpsink blocksize=512 port=5005 host=127.0.0.1

但是,blocksize似乎根本不起作用。这是udpsink的文档,可通过gst-inspect udpsink访问:

Element Properties:
name : The name of the object
flags: readable, writable
String. Default: "udpsink0"
preroll-queue-len : Number of buffers to queue during preroll
flags: readable, writable
Unsigned Integer. Range: 0 - 4294967295 Default: 0
sync : Sync on the clock
flags: readable, writable
Boolean. Default: true
max-lateness : Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)
flags: readable, writable
Integer64. Range: -1 - 9223372036854775807 Default: -1
qos : Generate Quality-of-Service events upstream
flags: readable, writable
Boolean. Default: false
async : Go asynchronously to PAUSED
flags: readable, writable
Boolean. Default: true
ts-offset : Timestamp offset in nanoseconds
flags: readable, writable
Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0
enable-last-buffer : Enable the last-buffer property
flags: readable, writable
Boolean. Default: true
last-buffer : The last buffer received in the sink
flags: readable
MiniObject of type "GstBuffer"
blocksize : Size in bytes to pull per buffer (0 = default)
flags: readable, writable
Unsigned Integer. Range: 0 - 4294967295 Default: 4096
render-delay : Additional render delay of the sink in nanoseconds
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
throttle-time : The time to keep between rendered buffers (unused)
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
bytes-to-serve : Number of bytes received to serve to clients
flags: readable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
bytes-served : Total number of bytes sent to all clients
flags: readable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
sockfd : Socket to use for UDP sending. (-1 == allocate)
flags: readable, writable
Integer. Range: -1 - 2147483647 Default: -1
closefd : Close sockfd if passed as property on state change
flags: readable, writable
Boolean. Default: true
sock : Socket currently in use for UDP sending. (-1 == no socket)
flags: readable
Integer. Range: -1 - 2147483647 Default: -1
clients : A comma separated list of host:port pairs with destinations
flags: readable, writable
String. Default: "localhost:4951"
auto-multicast : Automatically join/leave the multicast groups, FALSE means user has to do it himself
flags: readable, writable
Boolean. Default: true
ttl : Used for setting the unicast TTL parameter
flags: readable, writable
Integer. Range: 0 - 255 Default: 64
ttl-mc : Used for setting the multicast TTL parameter
flags: readable, writable
Integer. Range: 0 - 255 Default: 1
loop : Used for setting the multicast loop parameter. TRUE = enable, FALSE = disable
flags: readable, writable
Boolean. Default: true
qos-dscp : Quality of Service, differentiated services code point (-1 default)
flags: readable, writable
Integer. Range: -1 - 63 Default: -1
send-duplicates : When a distination/port pair is added multiple times, send packets multiple times as well
flags: readable, writable
Boolean. Default: true
buffer-size : Size of the kernel send buffer in bytes, 0=default
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0
host : The host/IP/Multicast group to send the packets to
flags: readable, writable
String. Default: "localhost"
port : The port to send the packets to
flags: readable, writable
Integer. Range: 0 - 65535 Default: 4951


这已经有些令人困惑,因为 blocksize的默认值同时列出为0和4096。但是似乎它是4096,因为无论我为 blocksize使用什么值,这都是我的UDP数据包大小。更令人困惑的是,即使在GStreamer自己的文档中,我也几乎找不到在线任何地方提到的 blocksize属性: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-udpsink.html

提到的唯一属性是 hostportblocksize是否已被弃用?如果可以,是否有任何方法可以控制每个UDP数据包中发送的数据量?我已经尝试过在RTP中使用mtu属性,但是没有运气(请参见此处: gstreamer RTP packet size),对此我颇有帮助。

最佳答案

在元素上使用gstinspect时,它会显示所有属性-不仅来自特定元素,还来自其父元素。这是真正的预期行为。

UdpSink实际上仅具有hostport属性。父级-GstMultiUDPSink还有更多。

您可以在GStreamer文档中以树的形式(对象层次结构段落)找到继承链。不幸的是,并非所有链接都能正常工作,因此最好为父元素使用Google适当的链接。

好了,回到问题上,您所提到的blocksizeGstBaseSink
的属性,并被描述为:


在拉模式下操作时要拉的字节数。
标志:读/写

默认值:4096


因此,它定义了它将从上游元素提取多少数据。它不会影响UDP数据包。您可能正在寻找的是buffer-sizeGstMultiUDPSink属性:


“缓冲区大小”的闪光
内核发送缓冲区的大小(以字节为单位),0 =默认值。

标志:读/写

允许值:> = 0

默认值:0

关于udp - GStreamer UDPSink block 大小属性不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31053693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com