4k files (Emby direct play) buffering on Vero 4k+

Hi all, my setup is as follows:

Router: AC 1200

Emby server: Windows 10 (i5 8gb) connected to router via 5 GHz Wi-Fi

Client: Emby next-gen on Vero 4k+ connected via 5 GHz Wi-Fi (connected to lg soundbar via hdmi-in which is connected to LG CX via e-arc hdmi)

I have mostly stable playback, but sometimes there’s the annoying buffering/stuttering for high bit rate files (> 30 Mbps with peaks reaching ~100 Mbps). When I look at the send (upload speeds) on my windows machine I see the speed drops to <20 Mbps (even 10 at times). Is this likely because of interference (there are around 2-3 APs (5 GHz) surrounding me in close-by channels (40-80 MHz)?

I tried wiring the server/client to the router (router ports capped at 100 Mbps), this is more stable than Wi-Fi mostly, however there’s still buffering on high bitrate files (for example on Psycho 4k remux with peaks exceeding 100 Mbps). Can I be sure that Wi-Fi/router is the problem?

I also posted this on emby forums, and some people suggested the client might be the issue, not the network as the upload speeds from the server are reaching peak when needed: Emby buffers on 4k files - General/Windows - Emby Community

Thanks in advance for any input!

This very much point in the direction of Wifi issues.
You can always check server/client throughput (best over a longer period with iperf3

Thanks for the comment @fzinken, here are the results, I do not see any issue (Server: windows PC is wired to router, and vero is connected via wifi 5ghz):

iperf3 -R -c 192.168.0.102
Connecting to host 192.168.0.102, port 5201
Reverse mode, remote host 192.168.0.102 is sending
[  5] local 192.168.0.107 port 44012 connected to 192.168.0.102 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  11.4 MBytes  95.4 Mbits/sec
[  5]   1.00-2.00   sec  11.0 MBytes  92.2 Mbits/sec
[  5]   2.00-3.00   sec  11.2 MBytes  93.8 Mbits/sec
[  5]   3.00-4.00   sec  11.2 MBytes  94.1 Mbits/sec
[  5]   4.00-5.00   sec  11.3 MBytes  94.6 Mbits/sec
[  5]   5.00-6.00   sec  11.3 MBytes  94.6 Mbits/sec
[  5]   6.00-7.00   sec  11.3 MBytes  94.7 Mbits/sec
[  5]   7.00-8.00   sec  11.2 MBytes  94.0 Mbits/sec
[  5]   8.00-9.00   sec  11.3 MBytes  94.6 Mbits/sec
[  5]   9.00-10.00  sec  11.2 MBytes  94.2 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   112 MBytes  94.4 Mbits/sec                  sender
[  5]   0.00-10.00  sec   112 MBytes  94.2 Mbits/sec                  receiver

iperf Done.
osmc@ATMOS:~$ iperf3 -c 192.168.0.102
Connecting to host 192.168.0.102, port 5201
[  5] local 192.168.0.107 port 44016 connected to 192.168.0.102 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  11.1 MBytes  93.0 Mbits/sec    0    217 KBytes
[  5]   1.00-2.00   sec  11.1 MBytes  93.1 Mbits/sec    0    217 KBytes
[  5]   2.00-3.00   sec  11.4 MBytes  95.4 Mbits/sec    0    217 KBytes
[  5]   3.00-4.00   sec  11.0 MBytes  92.6 Mbits/sec    0    217 KBytes
[  5]   4.00-5.00   sec  11.2 MBytes  93.9 Mbits/sec    0    217 KBytes
[  5]   5.00-6.00   sec  11.2 MBytes  93.6 Mbits/sec    0    217 KBytes
[  5]   6.00-7.00   sec  11.1 MBytes  93.4 Mbits/sec    0    217 KBytes
[  5]   7.00-8.00   sec  11.1 MBytes  93.2 Mbits/sec    0    217 KBytes
[  5]   8.00-9.00   sec  11.0 MBytes  92.3 Mbits/sec    0    217 KBytes
[  5]   9.00-10.00  sec  11.2 MBytes  94.0 Mbits/sec    0    217 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   111 MBytes  93.4 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   111 MBytes  93.3 Mbits/sec                  receiver

Using iperf is very nice. Only - usually when you test the WiFi performance, kids are at school and you don’t have them Streaming Youtube stupid videos ;}

To understand the issue with WiFi - note that WiFi is like using a hub.
A Hub will show degraded network performance the more “active” hosts are on the network.
On WiFi it is the same. The more devices are on it, the more “collisions” will occur (As we are on the same collision domain), and the lower the net data transfers speeds.
As general rule on a AP (HUB), the number of connected hosts to the AP will determine the max available bandwidth of a host.

So - on a Hub we have the following that applies

  1. Physical topology = Star
  2. Logical topology = Bus
  3. Single Collision domain
  4. We assume the max possible utilization of the shared network is divided by the number of communication paths.

So - for 4 devices, we have 3 using-devices connected to the AP, each building a communication channel to the AP. So 33%. Remove ~3% for protocol overhead and we round up to 30% max available bandwidth per host.
54Mbps is shared = 54Mbps/4*22% ~= 2.97Mbps net sustained throughput to be expected per device if all are active talkers and we are using a regular AP with 1 physical antenna.

Note that I applied this to a Ethernet Hub - using the speed of a regular WiFi without MiMo for simple estimate. To the WiFi, we need to add the WiFi overhead. So the end result will be a little lower.

This - to explain that if you use WiFi, take a AP that has MiMo but never connect more than available Antennas in the MiMo layout. If it has 2 Antennas, connect only 2 devices to have full WiFi bandwidth per antenna! If not, the rule as described before applies very fast per physical antenna.

1 device connected to AP:  54Mbps/1*97% ~= 52.38 Mbps (assuming the overhead is 3%)
2 devices connected to AP: 54Mbps/2*47% ~= 12.69 Mbps per device
3 devices connected to AP: 54Mbps/3*30% ~= 5.40 Mbps per device
4 devices connected to AP: 54Mbps/4*22% ~= 2.97 Mbps per device

I know there are faster devices out there bundling channels to go to 108Mbps. But the same rule applies. And the worst is if there are other devices streaming! The more active talkers, the lower the performance.

So - if possible, use a SWITCH and connect the Vero to a NAS using a SWITCH through Ethernet! because a switch dispatches the traffic only between the communication partners, same as connecting only ONE device to the HUB/AP.

1 Like

@Smurphy, I bought a cat6 cable and attached it to my Vero (Now both my Windows server, and my Vero are wired directly to the router), but I still have the buffering problem. When I look at the network performance (task manager on windows) during this buffering, I see that the send (upload) speed is highly varying (abrupt ups and downs ranging from 2 Mbps to 30). How do I find what is the reason for this?

I tried changing the server from Emby to Plex, It initially ran quite well for a few hours, but I started having the problem again. I’m thinking :

  • If the client (Vero) is the problem (i.e throttling while receiving packets), then at least I shouldn’t see the problem, using the DLNA on my TV, but it also buffers there

  • The server (my windows pc) cannot be the problem as it is all direct play and no transcoding involved. But can it be the problem somehow?

  • Finally, is the router the problem? Can it be the reason for fluctuating uploads/downloads in LAN? I do not have any problems with it using the internet (also all fine while testing with iperf3)!

How do I narrow this down? Any help is appreciated!

IMO the first thing you want to do is switch over to gigabit for the ethernet. If your router only has 10/100 ports and you don’t want to upgrade your router then just pick up a cheap gigabit switch to plug both your server and client into. If somehow that doesn’t get you where you need to be by itself then you can try system mounts, path substitution, and tweaking Kodi’s cache settings, but that is going to be involved and likely not enough to play the largest rips through a slower connection.

1 Like

Hi @kapkan

there are various things you can check. The iperf check tells me that the speed is indeed limited to 100Mbps (Ethernet speed).

  • As @darwindesign already mentioned, check the specs of your router. If the router is a ethernet 10/100Mbps device, chances are the CPU is not strong enough to handle various traffic streams at the same time with filters etc.
  • When you do a playback - is any other software running on your Windows machine? Usually antivirus software will start scanning the disks at the worst time. Antivirus software reduces system performance up to 30%.
  • Can you also do a “top” on the vero (Go in through ssh) and check during playback if the cpu load is very high or if memory usage is very high? I’d check the installed addon’s… Eventually you caught yourself a trojan or a bitcoin miner that is running in parallel on your vero.
  • On the Vero side, I had in the past added the following in the advancedsettings.xml file.
        <cache>
                <buffermode>1</buffermode>
                <memorysize>94371840</memorysize>
                <readfactor>4.0</readfactor>
        </cache>
    <network>
        <disablehttp2>true</disablehttp2><!--stutter problems on livestreams-->
    </network>

It should not be required, but I have it for years inside now and never had an issue, even on my vero4k (not the plus model).

If you want to absolutely be sure to eliminate your router out of the equation, and take advantage of the full cat6 capability, put in a cheap Gb switch with 5 ports (I have this one for testing purposes, costs almost nothing and is excellent: https://www.amazon.com/D-Link-5-Port-Unmanaged-Gigabit-GO-SW-5G/dp/B008PC1FYK/ref=sr_1_3) so it bypasses the router for all traffic going between your windows machine and the vero (That is what switches do).

1 Like