Apple Player Update Beta Testing

logging.zip (1.2 MB)

Logs attached.

I did a bit more testing with the two new options turned off. I was able to get content playing with HomePod minis audio, I just had to make sure I force quit the app after turning the two new options off. In those cases audio is delayed starting and stopping when playback begins and ends.

Just want to say thanks for sticking with this. Your work is appriciated.

Finally had a chance to test 9649 and it corrected the issue I was seeing on iOS with DTS and Spatial Audio. Thermals look good too.

Live TV is also working again, but I’m unable to get any subtitle in LiveTV to play. No issues with other media subtitles.

Should have some time to test AppleTV 4k tomorrow.

1 Like

Maybe I’ve missed others reporting it but we’re getting a really annoying bug where starting any file seems to not start audio. If I click on the episode on deck - no audio. Start a different one, audio is fine, the going back to the first one audio works as expected. So the files CAN play fine but for some reason it doesn’t work first go after loading the app. Subsequent episodes play fine within a session, it seems to be related to opening the app after the Apple TV has been in sleep or something.

1 Like

I feel like I’ve had this happen on another app that didn’t use the native Apple TV player.
Was not playing audio if I had a show paused and it went into sleep and then I tried to resume.

I’m getting a black screen followed by the end summary screen upon playback on some 4k HDR files. I was trying to save the logs but can’t connect to the Apple TV after enabling log downloading. I’ll keep trying.

Other 4k seems to start play okay.

1 Like

I’m testing 9649 the HDR10 ‘LG Cymatic’ and ‘Life Untouched’ videos from here- ¦› HDR10 video test | LG Cymatic, Untouched, Sony Bravia OLED

They stutter a little bit and I’m seeing between 5ish and 50ish dropped frames throughout the whole length of the videos. This is with new audio and rendered enabled. Thermal state nominal.

The Plex app crashes entirely when trying to play an HRD10 4K remux file. I’ll see if I can find a sharable file that I can reproduce the crash with and post it here.

Edit: Here’s a file that crashes Plex
https://drive.usercontent.google.com/download?id=0BwxFVkl63-lEWmNWcGl4eVRWS2M&export=download&authuser=0&resourcekey=0-WkmICjhK5yus4EAaPuSuSw

Titled ‘Dolby Vision 10-bit HEVC 23.976fps (in TS, LG Trailer) (thanks @soyhakan)’ from here- https://kodi.wiki/view/Samples?4K\_.28UltraHD.29#4K_(UltraHD)_Formats

1 Like

@Craig_Holliday:

This is great news!

To help that even further, would you be able to throw something like this line in every few seconds when in verbose log mode:

Sample Event:

{
  "timeStamp": "2025/01/08 12:50:54.792",
  "sessionID": "UNIQUE GUID IDENTIFYING THIS PLAY SESSION",
  "event": "playState",
  "client": {
    "player": "experimental",
    "appBuild": "1.0.0",
    "videoRenderer": "new;someversionstring",
    "audioRenderer": "old;somethingelse",
    "DeviceName": "X-Plex-Device-Name",
    "DeviceModel": "X-Plex-Model",
    "DeviceScreenDensity": "X-Plex-Device-Screen-Density",
    "DeviceScreenResolution": "X-Plex-Device-Screen-Resolution",
    "ClientPlatform": "X-Plex-Client-Platform",
    "ClientPlatformVersion": "X-Plex-Platform-Version",
    "ClientCapabilities":  "X-Plex-Client-Capabilities",
    "ClientLocation": "local|remote"
  },
  "PlaySession": {
    "sessionKey": "131",
    "guid": "",
    "ratingKey": "312995",
    "url": "",
    "key": "/library/metadata/312995",
    "viewOffset": 5209000,
    "playQueueItemID": 2256739,
    "playQueueID": 74690,
    "state": "playing",
    "transcodeSession": "ba046284-92a6-41e3-9029-cff0781f9ee4-13"
  },
  "TranscodeSession": {
    "key": "/transcode/sessions/4c3d1ed8-15da-4c88-b7a8-56107f9aa68e-42",
    "throttled": false,
    "complete": false,
    "progress": 64.0,
    "size": -22,
    "speed": 6.0,
    "error": false,
    "duration": 9102177,
    "context": "streaming",
    "sourceVideoCodec": "hevc",
    "sourceAudioCodec": "eac3",
    "videoDecision": "transcode",
    "audioDecision": "transcode",
    "protocol": "http",
    "container": "mkv",
    "videoCodec": "h264",
    "audioCodec": "aac",
    "audioChannels": 2,
    "transcodeHwRequested": true,
    "transcodeHwDecoding": "nvdec",
    "transcodeHwEncoding": "nvenc",
    "transcodeHwDecodingTitle": "NVIDIA (NVDEC)",
    "transcodeHwFullPipeline": true,
    "transcodeHwEncodingTitle": "NVIDIA (NVENC)",
    "timeStamp": 1736102547.1930953,
    "maxOffsetAvailable": 5819.236,
    "minOffsetAvailable": 0.0
  },
  "mediaItem": {
    "url": "https://something.plex.direct/library/something/file.mkv",
    "size": 123456789,
    "duration": 12345678,
    "videoStream": {
      "codec": "HEVC",
      "quality": "3840x1920",
      "criteria": "SDR",
      "bitrate": 123123123123,
      "fps": 12.123123123,
      "playMethod": "DirectPlay|DirectStream|Transcode"
    },
    "audioStream": {
      "codec": "EAC3",
      "channels": 2,
      "bitrate": 123123123123,
      "playMethod": "DirectPlay|DirectStream|Transcode"
    }
  },
  "performance": {
    "droppedFrames": 123,
    "droppedPackets": 123,
    "avSync": 0.0032423324,
    "thermalState": "nominal"
  }
}

Sources:
I imagine that the transcodeSession.{start|end|update} and playing events would be particularly helpful for this, and well, the rest of the info is either in the overlay, or it’s available otherwise in the app – so it shouldn’t really be anything net new.

PII/Privacy Concerns:

I selected these really carefully from the data I was able to see in my log output. I don’t believe any of these are personally identifiable, but obviously the user would be posting the log output, so that kinda makes that inevitable if you wanted to back track it.

It might be possible to use some of the media item information to attempt to validate what item is being played, but again you’d have to have a fairly large database of stream information to be able to find the exact file that contains the specific bit rate, size, duration, codecs, etc.

Overall then I’m not especially concerned that this data is overly risky for collection, but if needs be I can imagine it’d be enabled/disabled per debug build – though i’d love to see it permanently incorporated into the app (and server!)

Overall Rationale: – Why do this?

  1. I believe it contains all the elements someone might need to be able to understand the whole context of a play session.
  2. When aggregated, patterns should quickly emerge as to what scenarios are causing issues.
  3. When using a consistent source file (test data), then it should be even simpler to both verify that the source file is accurately analyzed/defined by PMS, and then understanding what happens when you play it.
  4. Utilizing JSON for the event data makes parsing it relatively simple, so if you just want to see a small slice of the data you could, or if you wanted to see the whole context- it’s there.
  5. It’s also possible then to ingest these into a time-series database/viewer, so that’d be even more productive to be able to understand what’s going on.

Right now, all* of these attributes are available to the player, either through events sent from or to PMS; local metrics (e.g. X-Plex..) or overlay data. They’re just not condensed into one snapshot, so trying to compile the timeline of a play session is near impossible. If each of these events was plugged into the logs we’d be able to very easily and very quickly interpret the whole picture of a play session.

I hope this helps, and is taken in the spirit its intended!

*(I think one or two items are not available yet…)

TY I’ll look at these issues :+1:

1 Like

Anybody else had random pauses while viewing movies that won’t resume unless you exit out of the video?

Hello everyone,

I have two TVs, each connected to an Apple TV 4K (2nd Gen). Both have been running Plex for many years with a large movie collection. I would be delighted to participate in the beta. Is it possible to get an invitation?

Best regards,

Vat

I believe this is the form to sign up: https://forms.gle/7CZju4xqsh8YaYdo8

I also signed up via that form but haven’t heard back yet, but they may be full on invites.

1 Like

Using the Chameleon 4K Atmos demo file here gives the same audio issues where it’s cycling between the different audio streams cutting in and out continuously. Seeing this on ATV and iOS.

Edit: not doing it anymore on the latest build 9649.

1 Like

I just tested that file and I’m not having any issues on iOS 18 or tvOS and plex 9649. Plex is transcoding TrueHD to FLAC but I’m not seeing the random audio switching that I saw with 9616.

I tried both the source m2ts file and a remuxed mkv.

Are other people still having audio sync issues when using the new beta player? I seem to most of the time have a circa 225ms audio sync issue for most media. I have a sonos soundbar via eARC, the audio sync issue doesn’t happen if i use the native plex app for my lg c9 oled tv.

Looks like the lip sync issue is being worked on? Fingers crossed, it’s been a long time.

1 Like

What happens if you bypass the Sonos and use the LG speakers? Do you have an audio sync offset when you use other streaming apps on the Apple TV? Have you done the audio calibration in the AppleTV settings?

i will confirm re if i use inbuilt speakers, but no other AppleTv apps have the same audio sync issue, i have not done the audio calibration as up until Plex all apps have worked as expected as eARC should auto sync video and audio from my limited understanding.

Another thing to test would be if you could direct connect the AppleTV to the Sonos (not use earc) to see if the sync issues still occur. That could help rule out something on the LG as attributing to the delay.

Hate to be that person, but infuse works fine with all audio and video synced perfectly :frowning:

2 Likes

Totally understand, I’m just trying to get the developers as much info as we can.

1 Like