My server sits behind a router-based VPN for security, but I've found this causes instability with IPTV with Channels and streams will often freeze every few minutes and need to be stopped and restarted to play again. This happens on both tvOS and iOS apps. The picture literally freezes on a frame, and the 'connection lost' message appears a minute or two later. When this happens, the only thing that shows up in the DVR log are messages like the ones below, and it appears Channel is still receiving data.
2021/01/10 12:59:15.761645 [WRN] Buffer for M3U-Primary ch1154 is more than 50% full (clients=1, len=33559456)
2021/01/10 12:59:42.938838 [WRN] Buffer for M3U-Primary ch1154 is more than 75% full (clients=1, len=50332679)
2021/01/10 13:00:03.881934 [WRN] Buffer for M3U-Primary ch1154 is more than 95% full (clients=1, len=63754512)
2021/01/10 13:00:08.927926 [WRN] Buffer for M3U-Primary ch1154 is more than 99% full (clients=1, len=66441765)
I've tried connecting to different VPN servers and even different VPN providers with no change in behaviour. If I remove the VPN and allow the server a direct network connection, then the streams are stable and can play for literally hours without interruption.
I've tested the same IPTV streams in VLC on the same server with it behind the VPN and I don't get any interruptions, again literally for hours of testing at a time. I'm wondering if the Channels M3U/streaming implementation is somehow more sensitive to latency and/or minor errors in the steam and VLC is better able to recover from them? (Though in my testing in VLC I've seen only about 300 dropped video frames in about 3 continuous hours of testing, so they seem pretty stable.)
Is there anything that can be done? I really don't want to take the VPN out of the picture...I'm a bit paranoid about security since I discovered someone trying to hack my server a while back.
EDIT: Forgot to note, running the latest pre-release of the DVR and testing with both the latest stable and beta releases of the tvOS and iOS clients. IPTV streams are mpeg-ts.