iOS Plex App: Media Playback Fails – FFmpeg TLS 1.3 Compatibility Issue?

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:

  1. The issue occurs only on the iOS app—all other devices, including Android, Android TV, Web, and macOS apps, work perfectly.
  2. 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
  1. 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.
  2. 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?

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