Just set the timeout to 5 seconds and killall -9 ffmpeg in the terminal will make it switch. If you hover over ‘switch to another service’ it literally says what it does and if it’s worked before then it’s correct. The channels need more than one service assigned. If you see it keep trying the same service over and over again that’s because TVheadend tries services in a predetermined order and Plex is resetting the connection which makes it start over which is why I modded it to randomly select one. I also modded some timeouts in the source code to get it working stable. Use my mod.
Make sure you checkout to the randomization branch in git before compiling tvheadend_mod OR
If you’re using docker/podman just build my container and import. Checkout to the streamlink branch in that case before building the container.
This thread I go into great detail helping another person get it going along with many others who have contacted me about it.
if you’re scared to use my source then do a diff between TVheadends repo and mine to see the changes or look at my commits.
All the info is here, it works, I use it daily.