Server Version: Version 4.141.0
Player Version: v8.44 on iOS 18.3
Hi everyone,
I’m encountering an issue with the official Plex iOS app (v8.44 on iOS 18.3) when trying to play media (movies, shows, music) from my server. While the app works perfectly for other functionalities, media playback consistently fails, with logs suggesting a problem during the TLS negotiation phase.
My server enforces TLS 1.3 only, which is standard for modern security practices. Allowing a downgrade to TLS 1.2 resolves the issue immediately, but I want to avoid this due to the importance of maintaining a secure configuration.
Additional Details:
- The issue occurs only on the iOS app—all other devices, including Android, Android TV, Web, and macOS apps, work perfectly.
- I use a Cloudflare proxy for TLS termination with the following curve and cipher suites:
- Curve: X25519
- Cipher Suites:
- TLS_AES_128_GCM_SHA256 (default)
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- Interestingly, the Plex Testflight Beta App for iOS does not encounter this issue, suggesting that it uses an updated version of FFmpeg with proper TLS 1.3 support.
- FFmpeg versions in use by Plex iOS:
libavutil 57.24.101
libavcodec 59.25.100
libavformat 59.20.101
libswscale 6.6.100
libavfilter 8.29.100
libswresample 4.6.100
FFmpeg version: 2584b51-4489
Logs:
2025/01/28 13:39:21.167 (2862912) 🔧 PMKMPVClient.m:532 | [ffmpeg] v: Opening https://[redacted]/video/:/transcode/universal/start.m3u8?...
2025/01/28 13:39:21.168 (2376823) ➖ PMKScreenLockManager.m:103 | Preventing screen dimming
2025/01/28 13:39:21.168 (2376823) 📝 PMKVideoPlaybackTimeController.m:93 | Accumulated video playback time: 0 seconds
2025/01/28 13:39:21.168 (2376823) 🔧 PMKRemoteControlEventResponder.m:153 | Registering for commands
2025/01/28 13:39:21.169 (2862379) 🔧 PMKMPVClient.m:532 | [ffmpeg] debug: tcp: Starting connection attempt to [redacted] port 443
2025/01/28 13:39:21.169 (2376823) 🔧 PMMediaPlayerBufferUnderflowManager.m:216 | New state - playing
2025/01/28 13:39:21.170 (2376823) ➖ PMKPlaybackEngine.m:347 | <PMKVideoPlaybackEngine: 0x1247c1400> started playing { <PMKPlayQueueMetadata:0x125ddb700 key:/library/metadata/22816 title:Slip type:4 isDirectory:0> }, playQueueItemID:49926
2025/01/28 13:39:21.171 (2376823) 📝 PMExternalScreenManager.m:71 | Detected playback, starting video on external screen...
2025/01/28 13:39:21.172 (2862911) 🔧 PMKMPVClient.m:532 | [ffmpeg] debug: tcp: Successfully connected to [redacted] port 443
2025/01/28 13:39:21.181 (2862378) ❌ PMKMPVClient.m:516 | [ffmpeg] error: tls: Unable to negotiate TLS/SSL session: -9836
2025/01/28 13:39:21.181 (2862378) 🔧 PMKMPVVideoPlayer.m:984 | event: idle
2025/01/28 13:39:21.181 (2862378) ❌ PMKMPVClient.m:516 | [stream] error: Failed to open https://[redacted]/video/:/transcode/universal/
My Questions:
- Could the issue be caused by the specific version of FFmpeg used by the app, which may not fully support TLS 1.3?
- Has anyone else encountered this issue on the iOS app?
- Is there any way to configure FFmpeg or Plex iOS to ensure proper TLS 1.3 support without downgrading to TLS 1.2?