Apple Player Update Beta Testing

I know it’s super tricky with all the variables, tricky.

Updated, set new experimental video and audio engine on.

First tested with TrueHD (no atmos but I don’t expect it with a TrueHD stream), audio is definitely not synced. I even tried the AC3, still audio sync broken.

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5.1@High
HDR format                               : Dolby Vision, Version 1.0, dvhe.08.06, BL+RPU, HDR10 compatible / SMPTE ST 2094 App 4, Version 1, HDR10+ Profile B compatible
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 1 h 44 min
Bit rate                                 : 27.6 Mb/s
Width                                    : 3 840 pixels
Height                                   : 1 600 pixels
Display aspect ratio                     : 2.40:1
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0 (Type 2)
Bit depth                                : 10 bits

Audio #1
ID                                       : 2
Format                                   : MLP FBA 16-ch
Format/Info                              : Meridian Lossless Packing FBA with 16-channel presentation
Commercial name                          : Dolby TrueHD with Dolby Atmos
Codec ID                                 : A_TRUEHD
Duration                                 : 1 h 44 min
Bit rate mode                            : Variable
Bit rate                                 : 4 572 kb/s

Audio #2
ID                                       : 3
Format                                   : AC-3
Format/Info                              : Audio Coding 3
Commercial name                          : Dolby Digital
Codec ID                                 : A_AC3
Duration                                 : 1 h 44 min
Bit rate mode                            : Constant
Bit rate                                 : 640 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Stream size                              : 480 MiB (2%)
Title                                    : AC-3 5.1 (Compatibility Track)

This one did not pass ATMOS into my Denon. ATV 4k latest with ETH > Denon > Samsung QDOLED. Infuse app does.
This one also didn’t show HDR10+ on my TV. Just HDR compatibility layer. I think this was mentioned prior as a goal of new video engine, but still not there. Infuse app does pass this through my setup.

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5@High
HDR format                               : Dolby Vision, Version 1.0, dvhe.08.06, BL+RPU, HDR10 compatible / SMPTE ST 2094 App 4, Version 1, HDR10+ Profile B compatible
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 2 h 17 min
Bit rate                                 : 24.3 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 022 pixels

Audio
ID                                       : 2
Format                                   : E-AC-3 JOC
Format/Info                              : Enhanced AC-3 with Joint Object Coding
Commercial name                          : Dolby Digital Plus with Dolby Atmos
Codec ID                                 : A_EAC3
Duration                                 : 2 h 17 min
Bit rate mode                            : Constant
Bit rate                                 : 768 kb/s
Channel(s)                               : 6 channels

On the plus side, those above did appropriate keep TV in 24hz mode. With the pixel response of the QDOLED the frame rate is fairly visible so I can visually tell.
And with this next video, auto switched into 60p mode, GOOD, and was butter smooth, GREAT. Ran for over 10 mins, super smooth, GREAT.
Also super interesting, audio seems to be spot on. Well synced and brilliant, GREAT!.
Why is this one well synced but not the others? 60p vs 24p? Something else, no clue.

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5.1@High
HDR format                               : SMPTE ST 2086, HDR10 compatible
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 1 h 57 min
Bit rate                                 : 81.0 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 59.940 (60000/1001) FPS

Audio #1
ID                                       : 2
Format                                   : MLP FBA 16-ch
Format/Info                              : Meridian Lossless Packing FBA with 16-channel presentation
Commercial name                          : Dolby TrueHD with Dolby Atmos
Codec ID                                 : A_TRUEHD
Duration                                 : 1 h 57 min
Bit rate mode                            : Variable
Bit rate                                 : 4 204 kb/s
Maximum bit rate                         : 7 944 kb/s
Channel(s)                               : 8 channels

log attached
logging(6).zip (338.6 KB)

You should only have to turn on Match Dynamic Range but dklein just said below that tvOS 16 was no switching the dynamic range if Match Framerate was off.
Match Framerate shouldn’t matter with how our player works right now but it seems like there may be a bug.

All to say, if you see issues you may want to fiddle with Match Framerate. If you’re on tvOS 18 you’re probably okay.

1 Like

Put it on my list to check MPEGTS and PiP. :+1:

2 Likes

Yes things should be loading faster in general.
It is more of a side affect of simplifying the player and building exclusively for Apple devices but it is a nice benefit.

What i say all the time: “That shoudn’t happen.”

But i’ll see if there is a bug in changing the new settings and check mov_text.

Can you send me a short sample and I can be sure i’m reproducing the issue?

3 Likes

We’ll most likely add the audio offset option back for scenarios like this where checking the output latency isn’t accurate.

Could you send me a sample for one of your media that is having the audio switching issue?

And yes Fake DV is gone. I’m working on HDR10+ support as it isn’t changing the dynamic range properly right now.

2 Likes

Can you send a sample of your media?
And what type of Live TV?

Thanks for testing this!
Is audio syncing with the New Audio Engine setting off?

I haven’t tested with ATMOS to see what isn’t being passed yet but it is on my list.

And I also have an issue for HDR10+ :+1:

Though I’m not sure why this last asset was working well :thinking:
Could you share one of the bad assets and this working one?

1 Like

I’ve already gone back to the stable version. The media was 1080p (HEVC Main 10), that went into a loop of ending then next episode countdown over and over through episodes. The Live TV was an antenna via a HDHR 4k Flex.

Does this mean we will have real DV now (or very soon)? with HDR10+ to follow?

For those with audio sync issues, are you outputting to a receiver?

Testing this am with my Denon is showing a slight audio sync issue when Match Framerate is enabled, but the Denon is also doing its own sync adjustment if “Auto Lip Sync” is enabled, even if Audio Offset is disabled.

I’ve found that disabling “auto lip sync” in the Denon ➜ Options ➜ Audio Delay menu helps with any syncing issues I see from Plex.

Per Denon, this setting receives a signal from the tv to adjust sync, and It’s possible other receivers may have similar features.

May be worth disabling to see if it helps?

1 Like

I tested here and see a definite improvement on HDR content and sync. I do note the issue I saw previously with DVD (480p) playback is still there, it’s unwatchable on all I tried. Will that be addressed in the future?
-Alan

Is audio syncing with the New Audio Engine setting off?
Family taken over, won’t be able to test this for a bit.

Could you share one of the bad assets and this working one?
These are… big… but I used mkvtool to snip first 60s.
Proton Drive

The dolby stuff I don’t personally much care about. Between the multiple variants of atmos and DV, it’s just too much headache, I say f it all. Just reporting as my Denon does at least report when it gets Atmos even though I don’t want won’t be setting up heights.
I don’t envy your pain with the mess dolby has created.

The more standards based HDR10+ is only way on my samsung to get per scene dynamic metadata which can help with video on moodier darker movies/tv to better balance. Audio sync and HDR10+ and I would be able to switch back to plex app full time. But I’m only 1 person. Excited as it sounds like can almost see light at end of tunnel!

I am using a Denon S770H, over eARC (which the Apple TV just plays nicer with over being hooked directly into the receiver, for whatever reason). Denon’s auto lipsync does nothing on my TV (LG doesn’t support it, so any delay must be added manually), but one oddity I noticed is that on the Apple TV, in other apps, everything is synced virtually perfectly with Real Cinema on (this is the LG equivalent of Apple TV’s match framerate, except it uses 120hz instead of 60, so it has less flicker while still being proper 24p playback). However, with Plex, this setting actually needs to be disabled to improve the sync, or the audio is noticeably ahead of the picture (only about 2 frames in non-HDR content, but just enough to feel a bit off), with the delay getting worse depending on the quality of the stream - but of course with this setting off, and “match framerate” doing nothing, you get the 3:2 pulldown issue due to a 24p source streaming to a 60hz box on a 120hz TV.

I use an app called CatchInSync to measure audio sync, and while the Plex beta is closer than the old stable release out of the box, it is pretty noticeably off regardless of the player and audio renderer used, and still particularly screwy in HDR content, being over 250ms off. I also bought a year of Infuse to compare and rule out any issue with the content itself, and it’s basically night and day in terms of sync, with that app being basically spot on regardless of the type of content being streamed. The only tough thing when trying to get good numbers is that I don’t really have the equivalent of a blu-ray calibration disc on my media server for lip sync (and the youtube app is terrible for this), and movies obviously usually use foley for good test scenes (like door slams or gunshots) which is often a little off, so it’s mostly a matter of measuring sync differences between apps. What I’ve found is that Apple TV+, HBO Max, Shudder (which only supports stereo), and Infuse all seem very close in terms of sync accuracy, and Plex always varies.

Did some more in depth testing last night and this build is almost perfect in terms of playback for me.

Playing a higher bitrate 4K movie that used to cause the old Mpv player to overheat the Apple TV played flawlessly and the thermal state stayed nominal.

Framerate stays pretty much bang on whatever the content is now. Previously I could get 10-20% dips in framerate from time to time.

Audio sync when wireless sync is calibrated in the Apple TV settings is absolutely spot on. Both with HomePod OG pair, HomePod mini pair and a TV with a built in soundbar.

And there is no noticeable stutter on any of my content.

I am using the new renderer, but not the new audio engine.

1 Like

Early feedback–

First, it’s amazingly better!

  • I actually think the picture is overall sharper and has better contrast on most things (will try out various files and encodes to get a better picture)

  • enabling/disabling subtitles are so snappy. Before, there was a good chance it’d rebuffer. Now it’s instantaneous.

  • Startup/resume seems pretty snappy also.

2: HLG formats now play without issue. This is something I was noticing quite a lot in the past week or two – the files that would stutter now play like butter. :smiley:

3: One or two early bugs:

  • While playing a show, if I double-click the home button (e.g. to switch apps/ go to settings) the video continues playing, even if it’s not in view at all.

  • I have managed to cause a complete app crash. I will look to recreate it, to see if is a specific file or if it was just coincidence. thermal state was nominal at the time.
    What’s the best practice to report that? app logs + sample file?

  • Resuming 4k is still a bit stuttery when using the rewind-a-few seconds feature.

Thanks all!

EDIT: After about 30 minutes of the 92mbps 4K/HDR playback, thermal pressure went from nominal to serious. No dropped frames/packets, and FPS has held steady, though the ATV is pretty darn hot! (separately, i’m experimenting with external fans and soon, some heatsinks).

Given the info here - Energy Efficiency Guide for Mac Apps: Respond to Thermal State Changes and thermalState | Apple Developer Documentation - it appears there are only four states? It seems there isn’t a great deal of ramp up. Does the player/plex now ratchet down background activity etc while in an increased thermal pressure?

Oh! and I can add that in the time it’s taken me to write this, the state dropped back to nominal. I’ll play more with the external cooling etc to see if that’s making the difference, but it’d be good to hear if there’s anything else going on under-the-hood to help decrease load during high thermal state situations? Thanks!

Oh, one suggestion/idea that would be a really awesome QOL for testers (which means of course it’ll be low pri, but I can only ask ;)):

Could the player overlay content (plus maybe file data – sorta what you get from mvkinfo / mediainfo ) be fed to the Plex Dash app in realtime? it’d just need a websocket essentially to stream from the player (assume you’re local or network-reachable obviously) and then it could be captured to go alongside the video itself?

Main reason: the fam etc aren’t in love with the overlay, and we need to gather various files/runtimes to ensure this is working great. I’d like to keep the player on for longer watch sessions, but not disturb everyone else.

I know that’s an actual ask for right now.

Maybe at the least we could have it be something we could swipe or longpress onto the screen (so, a toggle)? bonus points/stretch goal if it flashed or auto-appeared if a perf metric goes bad – drops or a thermal change? I know that there’s a toggle option in the drop down control overlay, but it’d be cool to have it more inline.

thanks!

1 Like

Not trying to get into feature creep here, but since it was brought up - is PiP going to be supported for any content ? it’d be nice to see that enabled here.

Further updates -

  1. I have noticed pretty intense blowout of highlights in a 4K/HDR10 file. Reverting to the old player seems to have returned color balance.

  2. a 4K/HDR10 with 7.1 TRUEHD audio on both the new audio / new renderer is out of sync, and had 2-3 dropped frames.

  3. I also noted that it was pretty hard to switch back - i had to disable both new renderer/audio AND turn on the old stuff. is that intentional?

1 Like

Another quick report: it completely fails to playback when audio is routed [ in tvos settings, all audio ] via a homepod (the large one, not mini, not stereo). One frame every few seconds etc. no audio. Irrespective of file format. Using new experimental audio.

If i select just new renderer but NOT new audio, video plays but no sound is heard.

I’ll generate logs tomorrow :slight_smile: