Hi, I’m working on a project on the TX2 which streams video over RTMP. On the TX2 is L4T R27.1.0. The stream is produced and sent with a bitrate of 35Mb/s. In case it matters, default TX2 power model 3 is in use.
The streaming is done with gstreamer’s RTMP sink plugin (which uses librtmp, as I understand it) and pushed over the network to an RTMP server on same LAN (no external network used).
When ethernet is used from dev kit slow-downs are seen in sending the data. Specifically in the gstreamer pipeline there is a queue directly before the rtmpsink which is filling up. The queue fills up faster than it’s emptied for an arbitrary amount of time, then suddenly empties or jumps down in size in a very short amount of time. This indicates that librtmp is not able to constantly push the data to through the socket at 35Mb/s - something in the socket is getting held up.
First step of analysis would be to look at software generating the video, librtmp, etc. (non-system software). All seems to be fine and the main problem is that if I use the dev kit WIFI instead of ethernet - this problem completely goes away. No queue build-up, no delay, no problems. This appears to be an ethernet-only problem. Also switched routers, problem persists.
We also have a custom board which utilizes the TX2, and has an ethernet port on it. Results with this are exactly the same as the dev kit, WIFI is smooth, ethernet is backing up. Here is a graph of the data:
Red = custom board ethernet
Orange = dev kit ethernet
Blue = custom board WIFI
Green = dev kit WIFI
X-Axis = time (seconds)
Y-Axis = number of buffers in queue (30 FPS, 30 buffers=1 second latency)
I’d imagine this points to something with the ethernet driver, or some ethernet queue in the TCP stack that does not apply to WIFI, or something of that nature, though I am not sure what. If anybody has any advice I would greatly appreciate it.