Android (mobile and TV) Direct Play issues

Server Version#: 4.108.0
Player Version#: 10.0.0.4149

I have a remote server, with an nginx reverse proxy. The strangest thing is that my android devices can’t play original quality videos. The issue is not the device/internet since if on a device I use the browser, the playback is fine. This also happens on videos where the original bitrate is lower than transcoded on others.

On the server I just have a mysterious:
DEBUG - Failed to stream media, client probably disconnected after 57566860 bytes: 32 - Broken pipe

I am attaching a log from the Android TV network log below. You can see that I forced a transcode at 23:36:23 and this it worked immediately. This is a similar symptom to my mobile Android as well.

10-01 23:35:11.591 i: [MediaDecisionEngine] Transcode server selected: XXXX
10-01 23:35:11.592 i: [MediaDecisionEngine] Analyzing media: 1280x720 4688kbps (Container: mkv, Video: h264, Audio: eac3)
10-01 23:35:11.595 i: Creating PlayerActivity.
10-01 23:35:11.596 i: [Activity] Resuming the application, attempting to download item and children.
10-01 23:35:11.597 i: [Boot] PlayerActivity took 1ms to run create behaviours.
10-01 23:35:11.629 i: Resuming PlayerActivity.
10-01 23:35:11.652 i: [PlayerActivity] Creating fragment
10-01 23:35:11.655 i: [Player][DimensionsLayout] Resizing: 100 x 100
10-01 23:35:11.659 i: [video] User maximum h264 profile determined: 51
10-01 23:35:11.663 i: [video] Device recommended h264 profile determined: 51
10-01 23:35:11.663 i: [DisplayBehaviour] Activity has been changed, searching for available modes.
10-01 23:35:11.679 i: [DisplayBehaviour] Current Mode ID: 1 / {id=1, width=1920, height=1080, fps=60.000004}
10-01 23:35:11.680 i: [DisplayBehaviour] Current mode detected as 1920x1080 @ 60.0000Hz (1).
10-01 23:35:11.682 i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
10-01 23:35:11.682 i: [VideoAwakeBehaviour] Keep screen awake has been requested disabled for VideoAwakeBehaviour.
10-01 23:35:11.870 i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
10-01 23:35:11.874 i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
10-01 23:35:11.896 i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
10-01 23:35:11.908 i: [BufferHelper] Assumed Bitrate: 10000, Segment Count: 1171
10-01 23:35:11.909 i: [BufferHelper] Segment count: 1171
10-01 23:35:11.910 i: [ChaptersSheetHud] Found 0 chapters.
10-01 23:35:11.932 i: Fetching [method:GET] https://plex.xxxx.xx:443/video/:/transcode/universal/decision?audioBoost=100&autoAdjustQuality=0&directPlay=1&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=wan&maxVideoBitrate=200000&mediaBufferSize=74944&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F27103&protocol=*&session=f5dcd19d982a56b4-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=f5dcd19d982a56b4-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%3D51)%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-transcode-target(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26container%3Dmkv%26videoCodec%3Dh264%2Chevc%2Cmpeg2video%26audioCodec%3Daac_latm%2Caac%2Caac%2Cac3%2Calac%2Cdca%2Cdca%2Cdca%2Ceac3%2Cflac%2Cmp1%2Cmp2%2Cmp3%2Copus%2Cvorbis%2Cwmav1%2Cwmav2%2Cwmalossless%2Cwmapro%2Cwmavoice%26subtitleCodec%3Dass%2Cpgs%2Csubrip%2Cdvd_subtitle%2Cmov_text%2Cvtt%2Cdvb_subtitle%26replace%3Dtrue)%2Badd-transcode-target-settings(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26CopyMatroskaAttachments%3Dtrue)%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|main%2010)%2Badd-limitation(scope%3DvideoTranscodeTarget%26scopeName%3Dhevc%26scopeType%3DvideoCodec%26context%3Dstreaming%26protocol%3Dhls%26type%3Dmatch%26name%3Dvideo.colorTrc%26list%3Dsmpte2084|bt709|bt470m|smpte240m|smpte170m|bt470bg|bt2020-10%26isRequired%3Dfalse)&X-Plex-Device=Smart%20TV&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Version=10.0.0.4149&X-Plex-Token=...8jGM&X-Plex-Language=en-us
10-01 23:35:11.934 i: [MenuSheetHud] Item changed (and fetched), invalidating settings…
10-01 23:35:12.029 i: [CurrentItemMetadataBehaviour] Fetched current item, success: true
10-01 23:35:12.030 i: [ChaptersSheetHud] Found 16 chapters.
10-01 23:35:12.031 i: [MenuSheetHud] Item changed (and fetched), invalidating settings…
10-01 23:35:12.072 i: [MediaSessionCallback] Pausing playback.
10-01 23:35:12.087 i: [ExoPlayer][EventLogger] playWhenReady [eventTime=0.70, mediaPos=0.00, window=0, period=0, false, USER_REQUEST]
10-01 23:35:12.090 i: [EngineEventManager] onBufferingStarted (isSeeking: false)
10-01 23:35:12.128 i: [Player][Timeline] Playback started (or buffering), scheduling updates
10-01 23:35:12.131 i: [TranscodeSession] Pausing…
10-01 23:35:12.133 i: [EngineEventManager] onBufferingEnded
10-01 23:35:12.175 i: [Player][View] Layout has been measured with a size of 1920 x 1080 (1920 x 1080).
10-01 23:35:12.176 i: [Player][DimensionsLayout] Resizing: 1920 x 1080
10-01 23:35:12.185 i: [ASS][Renderer] Surface has been created, connecting to renderer.
10-01 23:35:12.186 i: [ExoPlayer][EventLogger] surfaceSize [eventTime=0.80, mediaPos=0.00, window=0, period=0, 1920, 1080]
10-01 23:35:12.207 i: [ASS][Renderer] Attempting to start renderer from setSurface.
10-01 23:35:12.208 w: [ASS][Renderer] Missing video size, can’t start renderer yet.
10-01 23:35:12.252 i: [SystemUIBehaviour] Hiding the system user-interface.
10-01 23:35:12.379 i: [MediaDecisionEngine] Server was happy with client’s original decision
10-01 23:35:12.404 i: [MediaDecisionEngine] Decision: CanPlay: true CanDirectPlay: true CanDirectStreamVideo: true CanDirectStreamAudio: true CanDirectPlaySubtitle: false CanTranscodeSubtitle: false CanDisplayVideo: true
10-01 23:35:12.419 i: [LoadControl] New bitrate: 4688, Maximum: 4688
10-01 23:35:12.434 i: [MediaDecisionMediaSource] Resetting mappable types.
10-01 23:35:12.533 i: [BufferHelper] Assumed Bitrate: 10000, Segment Count: 1171
10-01 23:35:12.536 i: [BufferHelper] Segment count: 1171
10-01 23:35:12.546 i: [MediaDecisionMediaSource] Loading from https://plex.xxxx.xx:443/library/parts/42862/1695507351/file.mkv?autoAdjustQuality=0&hasMDE=1&location=wan&mediaBufferSize=74944&X-Plex-Client-Identifier=f5dcd19d982a56b4-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Device=Smart%20TV&X-Plex-DRM=widevine%3Avideo&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...8jGM&X-Plex-Version=10.0.0.4149.
10-01 23:35:12.576 i: [BufferHelper] Assumed Bitrate: 10000, Segment Count: 1171
10-01 23:35:12.579 i: [BufferHelper] Segment count: 1171
10-01 23:35:12.610 i: [MediaDecisionMediaSource] Loading from https://plex.xxx.xx:443/library/parts/42862/1695507351/file.mkv?autoAdjustQuality=0&hasMDE=1&location=wan&mediaBufferSize=74944&X-Plex-Client-Identifier=f5dcd19d982a56b4-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Device=Smart%20TV&X-Plex-DRM=widevine%3Avideo&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...8jGM&X-Plex-Version=10.0.0.4149.
10-01 23:35:12.620 i: [AudioCapabilitiesHelper] Passthrough is set to auto over HDMI, supported capabilities:
10-01 23:35:12.622 i: [AudioCapabilitiesHelper] - ac3
10-01 23:35:12.636 i: [AudioCapabilitiesHelper] - eac3
10-01 23:35:12.639 i: [AudioCapabilitiesHelper] - dca
10-01 23:35:12.642 i: [AudioCapabilitiesHelper] - dca
10-01 23:35:12.647 i: [AudioCapabilitiesHelper] - dca
10-01 23:35:12.651 i: [MediaDecisionMediaSource] Opening https://plex.xxx.xxx:443/library/parts/42862/1695507351/file.mkv?autoAdjustQuality=0&hasMDE=1&location=wan&mediaBufferSize=74944&X-Plex-Client-Identifier=f5dcd19d982a56b4-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Device=Smart%20TV&X-Plex-DRM=widevine%3Avideo&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...8jGM&X-Plex-Version=10.0.0.4149.
10-01 23:35:12.654 i: [MediaDecisionMediaSource] Using ProgressiveMediaSource with FFmpegExtractor.
10-01 23:35:12.655 i: [MediaDecisionMediaSource] onMediaDecisionRefreshed (Sources: 1)
10-01 23:35:12.686 i: [ExoPlayer][EventLogger] timeline [eventTime=1.30, mediaPos=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
10-01 23:35:12.692 i: [ExoPlayer][EventLogger] period [?]
10-01 23:35:12.695 i: [ExoPlayer][EventLogger] window [?, seekable=false, dynamic=false]
10-01 23:35:12.698 i: [ExoPlayer][EventLogger] ]
10-01 23:35:12.702 i: [Player][ExoPlayer] onTimelineChanged (Position: 0 ms, Duration: 0 ms)
10-01 23:35:12.955 i: [FFmpegExtractor] Initialised with new output.
10-01 23:35:12.960 i: [FFmpeg] [INFO] [CacheSource] Close requested, terminating.
10-01 23:35:12.962 i: [FFmpeg] [INFO] [FFmpegExtractor] Source has been closed successfully.
10-01 23:35:12.963 i: [FFmpeg] [INFO] [CacheSource] Closed successfully.
10-01 23:35:12.964 i: [FFmpeg] [INFO] [FFmpegExtractor] Source has been closed successfully.
10-01 23:35:12.965 i: [FFmpeg] [INFO] [FFmpegExtractor] Source has been terminated successfully.
10-01 23:35:12.978 i: [FFmpegExtractor] Opening demuxer.
10-01 23:35:12.980 i: [FFmpeg] [INFO] [FFmpegExtractor] Connecting to ExoPlayer with IO cache in-between.
10-01 23:35:12.983 i: [FFmpeg] [INFO] [FFmpegExtractor] Preparing context for demuxing.
10-01 23:35:13.300 i: [FFmpeg] [INFO] [FFmpegExtractor] Requesting IO seek to 0 bytes.
10-01 23:35:13.304 i: [FFmpegExtractor] IO-seek has been requested, target of 0 bytes (whence 65536).
10-01 23:35:13.312 i: [FFmpegExtractor] IO-seek wanted to know the length, returning 4930964204 bytes.
10-01 23:35:13.335 i: [FFmpeg] [INFO] [FFmpegExtractor] IO seek completed to 4930964204 Interrupted: No Closed: No
10-01 23:35:13.340 i: [FFmpeg] [INFO] [CacheSource] Worker thread has been enabled and will start processing data.
10-01 23:35:13.372 i: [FFmpeg] [INFO] [CacheSource] Source seek requested to 4930954476 bytes with 0 whence.
10-01 23:35:13.408 i: [FFmpeg] [INFO] [CacheSource] Seek found to 4930954476 bytes.
10-01 23:35:13.409 i: [FFmpeg] [INFO] [FFmpegExtractor] Requesting IO seek to 4930954476 bytes.
10-01 23:35:13.439 i: [FFmpegExtractor] IO-seek has been requested, target of 4930954476 bytes (whence 0).
10-01 23:35:13.443 i: [FFmpegExtractor] IO seek request to 4930954476 bytes, current position 29331 bytes.
10-01 23:35:14.375 i: [HttpServer] /192.168.1.153:53272 - GET /logging
10-01 23:35:24.155 w: [MetricsSender] Error posting metrics. Response error code: 400
10-01 23:35:24.488 w: [MetricsSender] Error posting metrics. Response error code: 400
10-01 23:35:53.018 i: [HttpServer] /192.168.1.153:53281 - GET /logging
10-01 23:35:53.575 w: [MetricsSender] Error posting metrics. Response error code: 400
10-01 23:35:53.872 w: [MetricsSender] Error posting metrics. Response error code: 400
10-01 23:36:05.927 i: [InteractionBehaviour] Woke up, reason: Interface visibility has been toggled…
10-01 23:36:05.961 i: [SystemUIBehaviour] Showing the system user-interface.
10-01 23:36:09.108 i: [BottomSheet] onSheetExpanding
10-01 23:36:09.292 i: [BottomSheet] onSheetExpanded
10-01 23:36:17.492 i: [HttpServer] /192.168.1.153:53283 - GET /logging
10-01 23:36:23.576 w: [MetricsSender] Error posting metrics. Response error code: 400
10-01 23:36:23.636 i: [VideoQualityBehaviour] Quality has been updated to Convert to 720p HD (Medium).
10-01 23:36:23.644 i: [VideoQualityBehaviour] Playback restarting due to quality change.
10-01 23:36:23.650 i: [EngineEventManager] onPlaybackRestart: quality
10-01 23:36:23.728 i: [TranscodeSession] Stopping…
10-01 23:36:23.736 i: [TranscodeSession] Session already stopped.
10-01 23:36:23.769 i: [ExoPlayer][EventLogger] surfaceSize [eventTime=72.39, mediaPos=0.00, window=0, period=0, 0, 0]
10-01 23:36:23.781 i: [Player][ExoPlayer] Setting given surfaceView
10-01 23:36:23.786 i: [ASS][Renderer] Surface has been destroyed, disconnecting.
10-01 23:36:23.789 i: [VideoAwakeBehaviour] Keep screen awake has been requested disabled for VideoAwakeBehaviour.
10-01 23:36:23.794 i: [Player][DimensionsLayout] Resizing: 1920 x 1080
10-01 23:36:23.803 i: [DisplayBehaviour] New ExoPlayerEngine detected, enabling: false.
10-01 23:36:23.809 i: [Player][ExoPlayer] Using PlayQueueMediaSource
10-01 23:36:23.815 i: [ExoPlayerEngine] Media source has been created.
10-01 23:36:23.817 i: [MediaCodecVideoSyncRenderer] Setting allow dummy surface: false
10-01 23:36:23.822 i: [ASS][Renderer] Surface has been created, connecting to renderer.
10-01 23:36:23.836 i: [ExoPlayer][EventLogger] state [eventTime=72.45, mediaPos=0.00, window=0, period=0, IDLE]
10-01 23:36:23.850 i: [BottomSheet] onSheetHiding
10-01 23:36:23.851 i: [ExoPlayer][EventLogger] timeline [eventTime=72.47, mediaPos=0.00, window=0, periodCount=0, windowCount=0, reason=PLAYLIST_CHANGED
10-01 23:36:23.852 i: [ExoPlayer][EventLogger] ]
10-01 23:36:23.853 i: [FFmpegExtractor] Interrupting extractor for release.
10-01 23:36:23.853 i: [Player][ExoPlayer] onTimelineChanged (Position: 0 ms, Duration: 0 ms)
10-01 23:36:23.854 i: [FFmpeg] [INFO] [FFmpegExtractor] IO seek completed to -1 Interrupted: Yes Closed: No
10-01 23:36:23.854 i: [FFmpeg] [INFO] [FFmpegExtractor] IO-seeking whilst interrupted, exiting.
10-01 23:36:23.855 i: [FFmpeg] [INFO] [FFmpegExtractor] Pre-Reading whilst closed, exiting.
10-01 23:36:23.855 i: [LoadControl] Setting buffer size to 73.19 MB / 0 seconds.
10-01 23:36:23.856 i: [FFmpeg] [INFO] [CacheSource] Seek has returned with a response of -1414092869.
10-01 23:36:23.859 i: [FFmpeg] [WARN] [CacheSource] Encountered result whilst reading from source at 29331 bytes: Immediate exit requested (-1414092869).
10-01 23:36:23.862 i: [FFmpeg] [WARN] [CacheSource] Source or buffer is still interrupted.
10-01 23:36:23.863 i: [FFmpeg] [INFO] [CacheSource] Thread has been terminated.
10-01 23:36:23.864 i: [ExoPlayer][EventLogger] positionDiscontinuity [eventTime=72.47, mediaPos=0.00, window=0, reason=REMOVE, PositionInfo:old [mediaItem=0, period=0, pos=0], PositionInfo:new [mediaItem=0, period=-1, pos=0]]
10-01 23:36:23.865 i: [Player][ExoPlayer] onPositionDiscontinuity, Reason: 4
10-01 23:36:23.865 i: [ExoPlayer][EventLogger] mediaItem [eventTime=72.48, mediaPos=0.00, window=0, reason=PLAYLIST_CHANGED]
10-01 23:36:23.866 i: [ExoPlayer][EventLogger] playWhenReady [eventTime=72.48, mediaPos=0.00, window=0, true, USER_REQUEST]
10-01 23:36:23.867 i: [ExoPlayer][EventLogger] timeline [eventTime=72.49, mediaPos=0.00, window=0, periodCount=1, windowCount=1, reason=PLAYLIST_CHANGED
10-01 23:36:23.868 i: [ExoPlayer][EventLogger] period [?]
10-01 23:36:23.869 i: [ExoPlayer][EventLogger] window [?, seekable=false, dynamic=true]
10-01 23:36:23.869 i: [ExoPlayer][EventLogger] ]
10-01 23:36:23.869 i: [Player][ExoPlayer] onTimelineChanged (Position: 0 ms, Duration: 0 ms)
10-01 23:36:23.870 i: [ExoPlayer][EventLogger] mediaItem [eventTime=72.49, mediaPos=0.00, window=0, reason=PLAYLIST_CHANGED]
10-01 23:36:23.872 i: [ExoPlayer][EventLogger] state [eventTime=72.49, mediaPos=0.00, window=0, BUFFERING]
10-01 23:36:23.895 i: [FFmpegExtractor] Demuxer context has been opened.
10-01 23:36:23.898 i: [FFmpeg] [INFO] [FFmpegExtractor] Successfully opened demuxer.
10-01 23:36:23.899 i: [LoadControl] Setting buffer size to 73.19 MB / 0 seconds.
10-01 23:36:23.900 i: [ExoPlayer][EventLogger] surfaceSize [eventTime=72.49, mediaPos=0.00, window=0, period=0, 1920, 1080]
10-01 23:36:23.902 i: [FFmpeg] [INFO] [FFmpegExtractor] Closing demuxer context.
10-01 23:36:23.911 i: [ASS][Renderer] Attempting to start renderer from setSurface.
10-01 23:36:23.912 w: [ASS][Renderer] Missing surface, can’t start renderer yet.
10-01 23:36:23.913 i: [FFmpeg] [INFO] [CacheSource] Close requested, terminating.
10-01 23:36:23.914 i: [FFmpeg] [INFO] [CacheSource] Terminating thread.
10-01 23:36:23.915 i: [FFmpeg] [INFO] [FFmpegExtractor] Source has been closed successfully.
10-01 23:36:23.916 i: [FFmpegExtractor] Extractor has been released.
10-01 23:36:23.916 i: [FFmpeg] [INFO] [CacheSource] Closed successfully.
10-01 23:36:23.916 i: [ASS][Renderer] Attempting to start renderer from setSurface.
10-01 23:36:23.917 w: [ASS][Renderer] Missing video size, can’t start renderer yet.
10-01 23:36:23.917 w: [MetricsSender] Error posting metrics. Response error code: 400
10-01 23:36:23.917 i: [MediaDecisionEngine] Starting media decision for: XXXXXXXXXXX (part index 0)
10-01 23:36:23.918 i: [MediaDecisionEngine] Transcode server selected: XXX
10-01 23:36:23.918 i: [MediaDecisionEngine] Analyzing media: 1280x720 4688kbps (Container: mkv, Video: h264, Audio: eac3)
10-01 23:36:23.935 i: [MediaDecisionEngine] Bitrate 4688 exceeds maximum allowed (3000)
10-01 23:36:23.949 i: [video] User maximum h264 profile determined: 51
10-01 23:36:23.950 i: [video] Device recommended h264 profile determined: 51
10-01 23:36:24.043 i: [BottomSheet] onSheetHidden
10-01 23:36:24.187 i: [BufferHelper] Assumed Bitrate: 10000, Segment Count: 1171
10-01 23:36:24.188 i: [BufferHelper] Segment count: 1171
10-01 23:36:24.199 i: Fetching [method:GET] https://plex.xxx.xx:443/video/:/transcode/universal/decision?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=0&directStreamAudio=0&fastSeek=1&hasMDE=1&location=wan&maxVideoBitrate=3000&mediaBufferSize=74944&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F27103&protocol=*&session=f5dcd19d982a56b4-com-plexapp-android&subtitleSize=100&videoBitrate=3000&videoQuality=75&videoResolution=3840x2160&X-Plex-Client-Identifier=f5dcd19d982a56b4-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%3D51)%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-transcode-target(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26container%3Dmkv%26videoCodec%3Dh264%2Chevc%2Cmpeg2video%26audioCodec%3Daac_latm%2Caac%2Caac%2Cac3%2Calac%2Cdca%2Cdca%2Cdca%2Ceac3%2Cflac%2Cmp1%2Cmp2%2Cmp3%2Copus%2Cvorbis%2Cwmav1%2Cwmav2%2Cwmalossless%2Cwmapro%2Cwmavoice%26subtitleCodec%3Dass%2Cpgs%2Csubrip%2Cdvd_subtitle%2Cmov_text%2Cvtt%2Cdvb_subtitle%26replace%3Dtrue)%2Badd-transcode-target-settings(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26CopyMatroskaAttachments%3Dtrue)%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|main%2010)%2Badd-limitation(scope%3DvideoTranscodeTarget%26scopeName%3Dhevc%26scopeType%3DvideoCodec%26context%3Dstreaming%26protocol%3Dhls%26type%3Dmatch%26name%3Dvideo.colorTrc%26list%3Dsmpte2084|bt709|bt470m|smpte240m|smpte170m|bt470bg|bt2020-10%26isRequired%3Dfalse)&X-Plex-Device=Smart%20TV&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Version=10.0.0.4149&X-Plex-Token=...8jGM&X-Plex-Language=en-us
10-01 23:36:24.604 i: [MediaDecisionEngine] Server was happy with client’s original decision
10-01 23:36:24.606 i: [MediaDecisionEngine] Decision: CanPlay: true CanDirectPlay: false CanDirectStreamVideo: false CanDirectStreamAudio: false CanDirectPlaySubtitle: false CanTranscodeSubtitle: false CanDisplayVideo: true Transcode Reason: Resolution or bitrate exceeds maximum allowed
10-01 23:36:24.609 i: [LoadControl] New bitrate: 3000, Maximum: 4688
10-01 23:36:24.610 i: [MediaDecisionMediaSource] Resetting mappable types.
10-01 23:36:24.611 i: [video] User maximum h264 profile determined: 51
10-01 23:36:24.611 i: [video] Device recommended h264 profile determined: 51
10-01 23:36:24.781 i: [BufferHelper] Assumed Bitrate: 10000, Segment Count: 1171
10-01 23:36:24.782 i: [BufferHelper] Segment count: 1171
10-01 23:36:24.785 i: [MediaDecisionMediaSource] Loading from https://plex.xxx.xx:443/video/:/transcode/universal/start.m3u8?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=0&directStreamAudio=0&fastSeek=1&hasMDE=1&location=wan&maxVideoBitrate=3000&mediaBufferSize=74944&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F27103&protocol=hls&session=f5dcd19d982a56b4-com-plexapp-android&subtitleSize=100&videoBitrate=3000&videoQuality=75&videoResolution=3840x2160&X-Plex-Client-Identifier=f5dcd19d982a56b4-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%3D51)%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-transcode-target(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26container%3Dmkv%26videoCodec%3Dh264%2Chevc%2Cmpeg2video%26audioCodec%3Daac_latm%2Caac%2Caac%2Cac3%2Calac%2Cdca%2Cdca%2Cdca%2Ceac3%2Cflac%2Cmp1%2Cmp2%2Cmp3%2Copus%2Cvorbis%2Cwmav1%2Cwmav2%2Cwmalossless%2Cwmapro%2Cwmavoice%26subtitleCodec%3Dass%2Cpgs%2Csubrip%2Cdvd_subtitle%2Cmov_text%2Cvtt%2Cdvb_subtitle%26replace%3Dtrue)%2Badd-transcode-target-settings(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26CopyMatroskaAttachments%3Dtrue)%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|main%2010)%2Badd-limitation(scope%3DvideoTranscodeTarget%26scopeName%3Dhevc%26scopeType%3DvideoCodec%26context%3Dstreaming%26protocol%3Dhls%26type%3Dmatch%26name%3Dvideo.colorTrc%26list%3Dsmpte2084|bt709|bt470m|smpte240m|smpte170m|bt470bg|bt2020-10%26isRequired%3Dfalse)&X-Plex-Device=Smart%20TV&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...8jGM&X-Plex-Version=10.0.0.4149.
10-01 23:36:24.787 i: [video] User maximum h264 profile determined: 51
10-01 23:36:24.787 i: [video] Device recommended h264 profile determined: 51
10-01 23:36:24.964 i: [BufferHelper] Assumed Bitrate: 10000, Segment Count: 1171
10-01 23:36:24.966 i: [BufferHelper] Segment count: 1171
10-01 23:36:24.967 i: [MediaDecisionMediaSource] Loading from https://plex.xxx.xx:443/video/:/transcode/universal/start.m3u8?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=0&directStreamAudio=0&fastSeek=1&hasMDE=1&location=wan&maxVideoBitrate=3000&mediaBufferSize=74944&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F27103&protocol=hls&session=f5dcd19d982a56b4-com-plexapp-android&subtitleSize=100&videoBitrate=3000&videoQuality=75&videoResolution=3840x2160&X-Plex-Client-Identifier=f5dcd19d982a56b4-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%3D51)%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-transcode-target(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26container%3Dmkv%26videoCodec%3Dh264%2Chevc%2Cmpeg2video%26audioCodec%3Daac_latm%2Caac%2Caac%2Cac3%2Calac%2Cdca%2Cdca%2Cdca%2Ceac3%2Cflac%2Cmp1%2Cmp2%2Cmp3%2Copus%2Cvorbis%2Cwmav1%2Cwmav2%2Cwmalossless%2Cwmapro%2Cwmavoice%26subtitleCodec%3Dass%2Cpgs%2Csubrip%2Cdvd_subtitle%2Cmov_text%2Cvtt%2Cdvb_subtitle%26replace%3Dtrue)%2Badd-transcode-target-settings(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26CopyMatroskaAttachments%3Dtrue)%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|main%2010)%2Badd-limitation(scope%3DvideoTranscodeTarget%26scopeName%3Dhevc%26scopeType%3DvideoCodec%26context%3Dstreaming%26protocol%3Dhls%26type%3Dmatch%26name%3Dvideo.colorTrc%26list%3Dsmpte2084|bt709|bt470m|smpte240m|smpte170m|bt470bg|bt2020-10%26isRequired%3Dfalse)&X-Plex-Device=Smart%20TV&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...8jGM&X-Plex-Version=10.0.0.4149.
10-01 23:36:24.969 i: [AudioCapabilitiesHelper] Passthrough is set to auto over HDMI, supported capabilities:
10-01 23:36:24.970 i: [AudioCapabilitiesHelper] - ac3
10-01 23:36:24.970 i: [AudioCapabilitiesHelper] - eac3
10-01 23:36:24.971 i: [AudioCapabilitiesHelper] - dca
10-01 23:36:24.971 i: [AudioCapabilitiesHelper] - dca
10-01 23:36:24.971 i: [AudioCapabilitiesHelper] - dca
10-01 23:36:24.975 i: [MediaDecisionMediaSource] Opening https://plex.xxxx.xx:443/video/:/transcode/universal/start.m3u8?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=0&directStreamAudio=0&fastSeek=1&hasMDE=1&location=wan&maxVideoBitrate=3000&mediaBufferSize=74944&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F27103&protocol=hls&session=f5dcd19d982a56b4-com-plexapp-android&subtitleSize=100&videoBitrate=3000&videoQuality=75&videoResolution=3840x2160&X-Plex-Client-Identifier=f5dcd19d982a56b4-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%3D51)%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-transcode-target(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26container%3Dmkv%26videoCodec%3Dh264%2Chevc%2Cmpeg2video%26audioCodec%3Daac_latm%2Caac%2Caac%2Cac3%2Calac%2Cdca%2Cdca%2Cdca%2Ceac3%2Cflac%2Cmp1%2Cmp2%2Cmp3%2Copus%2Cvorbis%2Cwmav1%2Cwmav2%2Cwmalossless%2Cwmapro%2Cwmavoice%26subtitleCodec%3Dass%2Cpgs%2Csubrip%2Cdvd_subtitle%2Cmov_text%2Cvtt%2Cdvb_subtitle%26replace%3Dtrue)%2Badd-transcode-target-settings(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26CopyMatroskaAttachments%3Dtrue)%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|main%2010)%2Badd-limitation(scope%3DvideoTranscodeTarget%26scopeName%3Dhevc%26scopeType%3DvideoCodec%26context%3Dstreaming%26protocol%3Dhls%26type%3Dmatch%26name%3Dvideo.colorTrc%26list%3Dsmpte2084|bt709|bt470m|smpte240m|smpte170m|bt470bg|bt2020-10%26isRequired%3Dfalse)&X-Plex-Device=Smart%20TV&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...8jGM&X-Plex-Version=10.0.0.4149.
10-01 23:36:24.978 i: [MediaDecisionMediaSource] Using HlsMediaSource with FFmpegExtractor.
10-01 23:36:24.982 i: [MediaDecisionMediaSource] onMediaDecisionRefreshed (Sources: 1)
10-01 23:36:25.482 i: [ExoPlayer][EventLogger] timeline [eventTime=74.10, mediaPos=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
10-01 23:36:25.483 i: [ExoPlayer][EventLogger] period [8406.00]
10-01 23:36:25.485 i: [ExoPlayer][EventLogger] window [8406.00, seekable=true, dynamic=false]
10-01 23:36:25.486 i: [ExoPlayer][EventLogger] ]
10-01 23:36:25.490 i: [Player][ExoPlayer] onTimelineChanged (Position: 0 ms, Duration: 8406000 ms)
10-01 23:36:25.491 i: [EngineEventManager] onBufferingStarted (isSeeking: false)
10-01 23:36:25.492 i: [TranscodeSession] Media choice updated
10-01 23:36:25.494 i: [TranscodeSession] Pausing…
10-01 23:36:25.894 i: [FFmpegExtractor] Initialised with new output.
10-01 23:36:25.900 i: [FFmpegExtractor] Opening demuxer.
10-01 23:36:25.902 i: [FFmpeg] [INFO] [FFmpegExtractor] Connecting directly to ExoPlayer.

I have been banging my head on this for the past 2 weeks almost now. In my latest attempt I am tunneling from my remote machine straight to my local via a VPN and I still have issues. It is still only with Android and Android TV for some reason, everything else works flawlessly.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.