Server Version#: 1.29.0.6244 (I’ve tried them all)
Player Version#: All versions (Roku, HTPC, Android, Android TV)
Tuner Make/Model: IPTV via xTeVe
I’ve been trying to make PLEX Live TV work reliably for the past year now. I’ve tried everything . Different server versions, different player versions and OS, different hardware, VM, Bare metal, NAS, DAS, SATA, SSD, NVMe, GPU, everything.
While using a single stream, I can get the system to run reliably for a while. If I change the channel too many times, PLEX gives up and I have to restart the server. I’m not talking about changing the channel at a fast rate of speed, but moderate channel changes (15 or more) in the course of a day. I have set PMS to restart every night, and that helps keep the system working well throughout the week.
And that’s right about where the pleasantries stop.
Anytime more than one stream is used simultaneously, the system can’t handle more than a couple channel changes before Live TV becomes unresponsive.
Live TV usage starts to stack up in the Activity monitor, but I can’t tune to a channel

Watch TV in the living room while someone else is watching TV in the den? Nice try!
Wanna DVR a show while you watch another channel? I don’t think so.
With that being said, it only appears to affect Live TV. I can DVR 5 channels at once. No problem, as long as no one is actively watching Live TV.
Error log on my Android TV looks like this:
11-13 12:59:58.587 i: [MediaDecisionEngine] Unable to direct play; Direct Play was attempted but failed, fallen back to transcoding
11-13 12:59:58.588 i: Fetching [method:GET] https://192.168.1.82:32400/:/timeline?airingID=535&audioStreamID=1438&context=home%3Ahub.recent.channels&duration=1106805&guid=plex%3A%2F%2Fepisode%2F633b2b68ad135b391d305d37&key=%2Flivetv%2Fsessions%2F0436a615-7630-4ceb-8def-ce7ccc5051c0&playbackTime=1104035&playQueueItemID=5fc76de71c33bf002d6b1914-5fc70602678e02002ecd0041-1668360600000&ratingKey=559&state=buffering&time=0&token=...J_W3&X-Plex-Client-Identifier=e60f2c08643c7a70-com-plexapp-android&X-Plex-Token=...J_W3&X-Plex-Language=en-us
11-13 12:59:58.590 i: [video] User maximum h264 profile determined: 62
11-13 12:59:58.591 i: [video] Device recommended h264 profile determined: 51
11-13 12:59:58.592 i: [ASS][Renderer] Attempting to start renderer from setSurface.
11-13 12:59:58.594 w: [ASS][Renderer] Missing surface, can't start renderer yet.
11-13 12:59:58.595 i: [video] Segmented MKV not supported
11-13 12:59:58.598 i: [ExoPlayer][EventLogger] surfaceSize [eventTime=1109.04, mediaPos=0.00, window=0, period=0, 1920, 1080]
11-13 12:59:58.599 i: [ASS][Renderer] Attempting to start renderer from setSurface.
11-13 12:59:58.600 w: [ASS][Renderer] Renderer already running, restarting.
11-13 12:59:58.602 i: [ASS][Renderer] Renderer thread being stopped due to restart requested.
11-13 12:59:58.603 i: [ASS][Renderer] Renderer stopped successfully.
11-13 12:59:58.604 w: [ASS][Renderer] Attempted to start renderer without decoder instance.
11-13 12:59:58.655 i: Fetching [method:GET] https://192.168.1.82:32400/video/:/transcode/universal/decision?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaIndex=-1&path=%2Ftv.plex.providers.epg.cloud%3A25%2Fmetadata%2Fplex%253A%252F%252Fepisode%252F633b2b68ad135b391d305d37&protocol=*&session=e60f2c08643c7a70-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=e60f2c08643c7a70-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D62)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DnotMatch%26name%3Dvideo.DOVIProfile%26value%3D5)%2Badd-limitation(scope%3DvideoAudioCodec%26scopeName%3Daac%26type%3DupperBound%26name%3Daudio.channels%26value%3D8%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Deac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dopus)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)%2Badd-transcode-target(type%3DsubtitleProfile%26context%3Dstreaming%26protocol%3Dhttp%26container%3Dmkv%26subtitleCodec%3Dsrt)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain)&X-Plex-Device=X96Q_Max_Pro&X-Plex-Incomplete-Segments=1&X-Plex-Platform=Android&X-Plex-Platform-Version=10&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Version=9.10.1.36024&X-Plex-Token=...J_W3&X-Plex-Language=en-us
11-13 12:59:58.672 e: Error fetching https://192.168.1.82:32400/video/:/transcode/universal/decision?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaIndex=-1&path=%2Ftv.plex.providers.epg.cloud%3A25%2Fmetadata%2Fplex%253A%252F%252Fepisode%252F633b2b68ad135b391d305d37&protocol=*&session=e60f2c08643c7a70-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=e60f2c08643c7a70-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D62)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DnotMatch%26name%3Dvideo.DOVIProfile%26value%3D5)%2Badd-limitation(scope%3DvideoAudioCodec%26scopeName%3Daac%26type%3DupperBound%26name%3Daudio.channels%26value%3D8%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Deac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dopus)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)%2Badd-transcode-target(type%3DsubtitleProfile%26context%3Dstreaming%26protocol%3Dhttp%26container%3Dmkv%26subtitleCodec%3Dsrt)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain)&X-Plex-Device=X96Q_Max_Pro&X-Plex-Incomplete-Segments=1&X-Plex-Platform=Android&X-Plex-Platform-Version=10&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Version=9.10.1.36024&X-Plex-Token=...tml>
11-13 12:59:58.674 e: [MediaDecisionEngine] Server failed to provide decision
11-13 12:59:58.675 i: [MediaDecisionEngine] Decision: CanPlay: true CanDirectPlay: false CanDirectStreamVideo: false CanDirectStreamAudio: false CanDirectPlaySubtitle: false CanTranscodeSubtitle: false CanDisplayVideo: true Transcode Reason: Direct Play was attempted but failed, fallen back to transcoding
11-13 12:59:58.680 e: [ExoPlayer][EventLogger] playerFailed [eventTime=1109.13, mediaPos=0.00, window=0, period=0, errorCode=ERROR_CODE_IO_UNSPECIFIED
com.google.android.exoplayer2.r: Source error
at com.google.android.exoplayer2.w1.G(SourceFile:17)
at com.google.android.exoplayer2.w1.handleMessage(SourceFile:279)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: x3.i0$h: Unexpected NullPointerException: Attempt to invoke virtual method 'int com.plexapp.plex.net.r1.w0(java.lang.String)' on a null object reference
at x3.i0$d.handleMessage(SourceFile:148)
at android.os.Handler.dispatchMessage(Handler.java:107)
... 2 more
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.plexapp.plex.net.r1.w0(java.lang.String)' on a null object reference
at ce.u.b(SourceFile:19)
at ce.v.c(SourceFile:9)
at ce.v.onLoadCompleted(Unknown Source:2)
at x3.i0$d.handleMessage(SourceFile:132)
... 3 more
]
11-13 12:59:58.682 e: [Player][ExoPlayer] Playback error detected
11-13 12:59:58.685 i: [Player][Timeline] Handling player error
11-13 12:59:58.686 i: [Player][Timeline] Playback stopped (error: true)
11-13 12:59:58.688 w: [Player][Timeline] player position was negative. Position time will be reported as 0.
11-13 12:59:58.690 e: An exception occurred: com.google.android.exoplayer2.r: Source error
11-13 12:59:58.691 e: Stacktrace: com.google.android.exoplayer2.r: Source error
at com.google.android.exoplayer2.w1.G(SourceFile:17)
at com.google.android.exoplayer2.w1.handleMessage(SourceFile:279)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: x3.i0$h: Unexpected NullPointerException: Attempt to invoke virtual method 'int com.plexapp.plex.net.r1.w0(java.lang.String)' on a null object reference
at x3.i0$d.handleMessage(SourceFile:148)
at android.os.Handler.dispatchMessage(Handler.java:107)
... 2 more
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.plexapp.plex.net.r1.w0(java.lang.String)' on a null object reference
at ce.u.b(SourceFile:19)
at ce.v.c(SourceFile:9)
at ce.v.onLoadCompleted(Unknown Source:2)
at x3.i0$d.handleMessage(SourceFile:132)
... 3 more
11-13 12:59:58.693 i: [ExoPlayer][EventLogger] state [eventTime=1109.14, mediaPos=0.00, window=0, period=0, IDLE]
11-13 12:59:58.702 i: Fetching [method:GET] https://192.168.1.82:32400/:/timeline?airingID=535&audioStreamID=1438&context=home%3Ahub.recent.channels&duration=1106805&guid=plex%3A%2F%2Fepisode%2F633b2b68ad135b391d305d37&key=%2Flivetv%2Fsessions%2F0436a615-7630-4ceb-8def-ce7ccc5051c0&playbackTime=1104035&playQueueItemID=5fc76de71c33bf002d6b1914-5fc70602678e02002ecd0041-1668360600000&ratingKey=559&state=stopped&time=0&token=...J_W3&X-Plex-Client-Identifier=e60f2c08643c7a70-com-plexapp-android&X-Plex-Token=...J_W3&X-Plex-Language=en-us
11-13 12:59:58.712 i: [Player][Timeline] Player error not known by server, reporting original player error (or a playback interrupted one)
11-13 12:59:58.713 i: [Player] Error reported: UnknownError (null)
11-13 12:59:58.714 i: [TranscodeSession] Stopping...
11-13 12:59:58.716 i: [TranscodeSession] Session already stopped.
11-13 12:59:58.717 i: [Player][Timeline] Playback stopped (error: false)
11-13 12:59:58.719 w: [Player][Timeline] player position was negative. Position time will be reported as 0.
11-13 12:59:58.730 i: Fetching [method:GET] https://192.168.1.82:32400/:/timeline?airingID=535&audioStreamID=1438&context=home%3Ahub.recent.channels&duration=1106805&guid=plex%3A%2F%2Fepisode%2F633b2b68ad135b391d305d37&key=%2Flivetv%2Fsessions%2F0436a615-7630-4ceb-8def-ce7ccc5051c0&playbackTime=1104035&playQueueItemID=5fc76de71c33bf002d6b1914-5fc70602678e02002ecd0041-1668360600000&ratingKey=559&state=stopped&time=0&token=...J_W3&X-Plex-Client-Identifier=e60f2c08643c7a70-com-plexapp-android&X-Plex-Token=...J_W3&X-Plex-Language=en-us
11-13 12:59:58.752 i: [Player][Error] Displaying player error...
11-13 12:59:58.754 i: [DialogBehaviour] Showing dialog.
11-13 13:00:00.575 i: [BandwidthDetectionBehaviour] Network buffering under-run detected.
11-13 13:00:00.578 i: [BandwidthQualityBehaviour] Original item bitrate is 0 kbps, maximum allowed bitrate is 0 kbps whilst our bandwidth is 1.4 Mbps.
11-13 13:00:00.583 i: [BandwidthDetectionBehaviour] Suggesting to switch to Play Original Quality.
11-13 13:00:00.595 w: [BandwidthDetectionBehaviour] Skipping quality change notification, as we are currently using 0 kbps and would request 0 kbps.
11-13 13:00:11.270 i: [Player] Engine being destroyed due to player deconstruction.
11-13 13:00:11.273 i: [EngineEventManager] onPlaybackStopped: Closed
11-13 13:00:11.278 i: [VideoAwakeBehaviour] Keep screen awake has been requested disabled for VideoAwakeBehaviour.
11-13 13:00:11.280 i: [TranscodeSession] Stopping...
11-13 13:00:11.282 i: [TranscodeSession] Session already stopped.
11-13 13:00:11.287 i: [SleepTimerBehaviour] Sleep timer behaviour changed.
11-13 13:00:11.291 i: [WiFiLockBehaviour] Releasing WiFi lock since playback was stopped.
11-13 13:00:11.293 i: [Player][Timeline] Playback stopped (error: false)
11-13 13:00:11.298 w: [Player][Timeline] player position was negative. Position time will be reported as 0.
11-13 13:00:11.305 i: [DisplayBehaviour] Cancelling stop playback runnable to prevent unexpected stop.
11-13 13:00:11.329 i: Fetching [method:DELETE] https://192.168.1.82:32400/media/grabbers/operations/5fc76de71c33bf002d6b1914-5fc70602678e02002ecd0041-e60f2c08643c7a70-com-plexapp-android?X-Plex-Token=...J_W3&X-Plex-Language=en-us
11-13 13:00:11.350 i: Fetching [method:GET] https://192.168.1.82:32400/:/timeline?airingID=535&audioStreamID=1438&context=home%3Ahub.recent.channels&duration=1106805&guid=plex%3A%2F%2Fepisode%2F633b2b68ad135b391d305d37&key=%2Flivetv%2Fsessions%2F0436a615-7630-4ceb-8def-ce7ccc5051c0&playbackTime=1104035&playQueueItemID=5fc76de71c33bf002d6b1914-5fc70602678e02002ecd0041-1668360600000&ratingKey=559&state=stopped&time=0&token=...J_W3&X-Plex-Client-Identifier=e60f2c08643c7a70-com-plexapp-android&X-Plex-Token=...J_W3&X-Plex-Language=en-us
11-13 13:00:11.390 e: Error fetching https://192.168.1.82:32400/media/grabbers/operations/5fc76de71c33bf002d6b1914-5fc70602678e02002ecd0041-e60f2c08643c7a70-com-plexapp-android?X-Plex-Token=...tml>
11-13 13:00:11.412 i: [BandwidthQualityBehaviour] Recording bandwidth for server as 1.4 Mbps.
11-13 13:00:11.419 i: [MediaSessionBehaviour] Updating state to STOPPED
11-13 13:00:11.437 i: [MemoryOptimisationBehaviour] Expanding memory cache.
11-13 13:00:11.439 i: [ExoPlayerEngine] Releasing media source due to engine destruction.
11-13 13:00:11.469 i: [VideoAwakeBehaviour] Keep screen awake has been requested disabled for VideoAwakeBehaviour.
11-13 13:00:11.477 i: [AudioFocusBehaviour] Behaviour being destroyed, giving up audio focus
11-13 13:00:11.481 i: [AudioFocusBehaviour] Given up focus.
11-13 13:00:11.541 i: [LiveAiringMediaItemsMonitor] Cancelling change detection
11-13 13:00:11.543 i: [DisplayBehaviour] Cancelling stop playback runnable to prevent unexpected stop.
11-13 13:00:11.544 i: [DisplayBehaviour] Reverting back to the original display mode.
11-13 13:00:11.546 i: [DisplayBehaviour] Mode is already set to our best mode of 1920x1080 @ 60.0000Hz (1).
11-13 13:00:11.569 i: [MediaSessionBehaviour] Releasing MediaSessionHelper
11-13 13:00:11.571 i: [MediaSessionHelper] Releasing media session with tag: video
11-13 13:00:11.644 i: [PlayerService] onDestroy
11-13 13:00:11.685 i: Resuming HomeActivity.
11-13 13:00:12.356 i: [ASS][Renderer] Surface has been destroyed, disconnecting.
11-13 13:00:12.672 i: [FFmpeg] [INFO] [FFmpegExtractor] Demuxer context has already been closed.
11-13 13:00:12.675 i: [FFmpeg] [INFO] [FFmpegExtractor] Source has been closed successfully.
11-13 13:00:12.678 i: [FFmpeg] [INFO] [FFmpegExtractor] Source has been terminated successfully.
11-13 13:00:16.208 i: [WebSocketApplicationBehaviour] Focus change detected. Focused: false
May or may not be related, but I’m seeing error messages in the pMS log pointing to an IP of my old xTeve instance. It’s currently not setup to use that DVR at all. How can I fix this?
Dec 04, 2022 21:20:43.613 [0x7f0808b5cb38] WARN - [HttpClient/HCl#1cc] HTTP error requesting GET http://192.168.1.84:34400/discover.json (7, Couldn't connect to server) (Failed to connect to 192.168.1.84 port 34400: Host is unreachable)
Dec 04, 2022 21:20:43.613 [0x7f07ff2b9b38] ERROR - DVR:Device: Error refreshing existing device device://tv.plex.grabbers.hdhomerun/2022-10-0FUW-DBLPFB, marking as dead.
Dec 04, 2022 21:20:43.613 [0x7f07ff2b9b38] DEBUG - DVR:Device: Testing grabber HDHomerun device device://tv.plex.grabbers.hdhomerun/2022-10-0FUW-DBLPFB:3 at http://192.168.1.84:34400
Dec 04, 2022 21:20:43.613 [0x7f07ff2b9b38] DEBUG - DVR:Device: Device device://tv.plex.grabbers.hdhomerun/2022-10-0FUW-DBLPFB:3 was already known, refreshing database info