Some 4K HDR videos play back choppy, others fine

After buying a new TV, I found some 4K HDR clips to show off it's picture quality. Using YouTube on my Apple TV 4K second gen, the picture and sound are outstanding and no issues with buffering or choppy playback.

I decided to download these videos and throw them into a folder on my Channels DVR server so that I can play them back anytime I want locally and without ads. (great for showing off the TV when people visit lol) I've noticed that some play back perfectly while others either have very bad stuttering or will play for a while and then start buffering as if I have a bad connection. I'm trying to figure out why Channels struggles to playback some of these videos while YouTube on the device plays them back without issue.

I have a gigabit network between the server and client and the media is stored on an SSD so I don't suspect it's a bandwidth issue. I then started looking at the statistics during playback and noticed it seems to come down to the Pixel Format, Primaries, Colormatrix and Gama. I'm not sure which of those is causing the poor performance with Channels DVR. Below I will provide a few examples and hopefully this can narrow down the issue?

I have submitted a diagnostic log, but it didn't provide any kind of ID when it finished so I'm not sure how to reference it.

Any assistance would be great appreciated. Thanks!

1 Like

This is the reason I use Infuse. It plays anything I throw at it, including 60gb 4k, movies without hesitation.

1 Like

Channels plays back almost all the 4K HDR content you throw at it without issue. In this case the codec is vp9, which is going through the cpu for Apple TV and not the GPU, and the content is 60fps. Both of these are unusual for most content everyone will be watching.

60fps 4k content needs at least a 2nd gen Apple TV 4K, as that’s mostly its only improvement over the original.

But even with it, it will have some troubles.

Fortunately, almost nothing you’re going to watch in 4K is going to be 60fps, it’s usually going to be 24fps, so in reality, 4K HDR content works fine.

1 Like

If you download HEVC instead of VP9 we will be able to use hardware decoding which should give you better results (as you saw) compared to VP9, which happens on the CPU.

Infuse is a beast :wink:

The 2nd gen Apple TV 4K is the exact model I have and while I agree that most content is 24 or 30 fps, in this case I am playing 60 fps and it's not playing well using Channels while other apps it plays fine. I made this post to ask for help to either troubleshoot settings within Channels or determine if this is a known issue.

I'm open to trying new apps, but it looks like Infuse requires it's own subscription? I'm already paying for Channels DVR and have all my media integrated with it, so I'd prefer to fix the playback issue within Channels itself.

I will give this a try and will report back. Thank you!

Infuse is like $15/year. I have been using it long before Channels. I started with Firecore, the publisher when they made ATFlash for the 1st and 2nd versions of the Apple tv. It was the first jailbreaking software for the first two versions of the Apple TV. The first two versions of the ATV could be jailbroken.

The reason is the codec of the video. As mentioned before, it’s using vp9.

1 Like

I don't understand this. The first example I provided that plays perfectly uses VP9. The other videos that do not play smoothly are also VP9. This is not solved.

I am using the app "4K Video Downloader" and there are two options. I can download as MKV which gives me VP9 or I can download as MP4 which gives me AV01. I tried two videos in MP4/AV01 and neither of them play at all.

1 Like

The first example is 8bit SDR. The others are 10bit HDR which require more resources. With HEVC we can use the hardware decoder for acceleration, but that's not the case with VP9

Any insight into how playing the video directly from YouTube does not have the issue yet playing them with Channels does have the issue? It's the same hardware, the only difference is the software, both of which are 3rd party apps, so I don't think this is a case of "Apple doesn't allow developers to do this".

We can take another look but Google was granted special permissions which are not available to other apps.

Another fun fact is that, Google's Youtube App is granted a special title to use an "alternate" decoder:
com.apple.developer.coremedia.allow-alternate-video-decoder-selection

This entitlement is undocumented(at least I cannot find it on developer website), but without such entitlement, the attempt to decode a VP9 video using VideoToolBox will fail on iOS as VTIsHardwareDecodeSupported(kCMVideoCodecTypeVP9) is returning false, and VTDecompressionSessionCreate() will fail with error -12906 which means "decoder not found".

However I profiled the CPU usage for Youtube on iOS and it was very low, and there is VT-related processes being created and running, so on iOS, you have to be granted by Apple to use that "alternate decoder".

2 Likes

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