Jump to content

Yet another question about Intel GPU passthrough on Proxmox.


Recommended Posts

Posted (edited)

Hi all,

I'm just not an A/V guy, but I am a computer guy.  That said, I'm struggling to understand if I have things set up correctly or not.

Here's the setup:

  • Intel NUC running Proxmox, 12th Gen Alderlake, with Quicksync.
  • Emby set up via "Emby Media Server LXC" helper script.
  • Synology NAS back end for the video library, through SMB share in Emby.
  • Followed these directions to expose/pass through the GPU in Proxmox.
  • After I follow directions, I run the following command in the Proxmox shell: 
    dmesg | grep -e DMAR -e IOMMU
  • It DOES come back with a line for "DMAR: IOMMU enabled", so it looks like all is well inside of Proxmox.
  • I try to run the only 4k video in my library, and it stutters the video, making the video choppy, and the sound kind of goes on ahead of the video.
  • ALL other videos run just fine.  All other types, codecs, everything.
  • When I run the 4k video, it looks like this in the Emby Dashboard (Apple TV is the username, not to be confused with the client):

image.png.31844a4f6a9491e8f772ec0c7ff36671.png

  • In fact, it looks the same, "Direct Play" for all video codecs... the only difference is that this one is 4k.

So... my questions go back to the fact that I'm not really an A/V guy...

  • I am using an Apple TV model A1625 (32GB), hooked up to an older model 1080p HD (but not 4k) television.
  • I am making an assumption that Emby should be transcoding DOWN to the capabilities of the AppleTV (HD, but not 4k).
  • First, am I wrong about this?
  • Second, in the attached Dashboard screen capture, it says "Direct Play"... does that mean Emby is NOT transcoding?

And, yes, I absolutely have all the transcoding checkmarks in the right place... (just a sample, but all below that are checked as well).  The fact that these say "Alder Lake" is a pretty good indication that it has GPU access, is it not?  So, is my problem that it's somehow not possible to transcode down to the level of my AppleTV and/or Television?  (If so, that doesn't even seem right... because what is transcoding for then?  (Again, I'm no A/V guy.)

 

image.png.3f8763b2157fad2d3e9df493c34517f9.png

 

I suppose it's worth noting too, that this video plays perfectly in a browser on a laptop, and on an iPhone using the Emby client.  In those cases, the Dashboard looks exactly the same... direct play.

Well, I hope I've given people enough to help advise me!  Thank you in advance!

Edit:  Attached the hardware detection log for when I play the 4k video.  Once you get past the huge block of text at the top, you can start to see some of the other detail, and it look like it's finding the GPU, and not having an issue with the decoding.  (But I'm not an expert in how to read an Emby log either.)

 

 

hardware_detection-63864447408.txt

Edited by cchoban
Posted (edited)

If it "direct play" then it's out of the servers hand and up to the client/device to handle the video.
Based on the screenshot you are using an Apple TV, so most likely the Apple TV that has a problem. (Know you wrote ist's the username but without knowing what client precisely i can only guess. ;) )

Apple TV is kinda picky with videos in MKV containers and a badly made one can cause the stutters and audio desync you see.

A sample of one 4K file is not much so i would try and get another file that might be encoded better and see if that works.

Edited by yocker
  • Like 1
Posted
11 hours ago, cchoban said:

Hi all,

I'm just not an A/V guy, but I am a computer guy.  That said, I'm struggling to understand if I have things set up correctly or not.

Here's the setup:

  • Intel NUC running Proxmox, 12th Gen Alderlake, with Quicksync.
  • Emby set up via "Emby Media Server LXC" helper script.
  • Synology NAS back end for the video library, through SMB share in Emby.
  • Followed these directions to expose/pass through the GPU in Proxmox.
  • After I follow directions, I run the following command in the Proxmox shell: 
    dmesg | grep -e DMAR -e IOMMU
  • It DOES come back with a line for "DMAR: IOMMU enabled", so it looks like all is well inside of Proxmox.
  • I try to run the only 4k video in my library, and it stutters the video, making the video choppy, and the sound kind of goes on ahead of the video.
  • ALL other videos run just fine.  All other types, codecs, everything.
  • When I run the 4k video, it looks like this in the Emby Dashboard (Apple TV is the username, not to be confused with the client):

image.png.31844a4f6a9491e8f772ec0c7ff36671.png

  • In fact, it looks the same, "Direct Play" for all video codecs... the only difference is that this one is 4k.

So... my questions go back to the fact that I'm not really an A/V guy...

  • I am using an Apple TV model A1625 (32GB), hooked up to an older model 1080p HD (but not 4k) television.
  • I am making an assumption that Emby should be transcoding DOWN to the capabilities of the AppleTV (HD, but not 4k).
  • First, am I wrong about this?
  • Second, in the attached Dashboard screen capture, it says "Direct Play"... does that mean Emby is NOT transcoding?

And, yes, I absolutely have all the transcoding checkmarks in the right place... (just a sample, but all below that are checked as well).  The fact that these say "Alder Lake" is a pretty good indication that it has GPU access, is it not?  So, is my problem that it's somehow not possible to transcode down to the level of my AppleTV and/or Television?  (If so, that doesn't even seem right... because what is transcoding for then?  (Again, I'm no A/V guy.)

 

image.png.3f8763b2157fad2d3e9df493c34517f9.png

 

I suppose it's worth noting too, that this video plays perfectly in a browser on a laptop, and on an iPhone using the Emby client.  In those cases, the Dashboard looks exactly the same... direct play.

Well, I hope I've given people enough to help advise me!  Thank you in advance!

Edit:  Attached the hardware detection log for when I play the 4k video.  Once you get past the huge block of text at the top, you can start to see some of the other detail, and it look like it's finding the GPU, and not having an issue with the decoding.  (But I'm not an expert in how to read an Emby log either.)

 

 

hardware_detection-63864447408.txt 275.13 kB · 1 download

Exactly as yocker said if it's direct playing it's not transcoding at all. Try changing the streaming quality if you're trying to test HW transcoding. I believe if you're on LAN and use auto settings emby will always direct play if the client can do it.

Posted
47 minutes ago, guunter said:

Exactly as yocker said if it's direct playing it's not transcoding at all. Try changing the streaming quality if you're trying to test HW transcoding. I believe if you're on LAN and use auto settings emby will always direct play if the client can do it.

Thank you both (Yocker & Guunter). Guunter, great idea for manually changing playback on home network.  Unfortunately, it didn't work.  Went all the way up to 4k 200mp, down to 720, 1mp, and everything was still "direct play".

So... I'm left believing that, somehow, I'm still not getting passthrough of the GPU in Proxmox.  I will, however, try another 4k video later today to see if the effect is the same.

Thanks guys!

Posted

Connect to your phones hotspot then you should be outside your home.

Posted

So, this was a great idea.  Luckily, I do have my own domain, and just re-routed to the new Emby server on the NUC, in my reverse proxy.  Low and behold... Same 4k video...

image.png.a8e2963f4ea7594e75bb59bc89d4608d.png

It played perfectly when I was on my phone's hotspot network.  Then, I connected back to my home network (wired) and KEPT the emby.mydomain.com address in Emby, and it still worked.  So as long as it looks outside the network first, it seems to work just fine.  Now, I have no problem setting my internal AppleTVs to my "emby.mydomain.com" address.  But it also acted just a tiny bit weird... it played fine, but when I pressed pause, it didn't stop... for about 30-40 seconds.  Then, once it DID stop, I could pause, stop, whatever, almost instantaneously, like normal.  It's almost as if it buffers on ahead, and my first pause has to catch up to where the buffer was when I pressed pause.  

But hey... I'm great with the fact that it proves I have indeed presented the NUC's GPU through Proxmox.  It's proof-positive.

So... now I just want to figure out why it won't Transcode on my home network.  Any ideas?  I'd love to understand if the transcoding itself is the reason for the pause nuance, or if that's because it's somehow hairpinning out to DNS servers and back in that's causing it somehow.

If anyone has any further input on that, I'm listening, but these ideas have been absolutely fantastic.  Thank you so much, so far!!!!

 

 

Posted

I use Firefox browser as my transcoding test.

Since I have always had DirectPlay issues with that browser.

Try with that and see if that works.

Posted

Can/will try that.  I came back to edit my last post though (couldn't since someone replied).  But my first AppleTV test, where it still worked after I was using an external URL but wired to my home internet connection, that still worked.  Went downstairs to a different AppleTV and tried just logging out, and then logging into the external URL, and it didn't work.  For some reason, I think Emby just held onto the "thought" that it was external on my first test.  If I logged out and back in, I'd still have the same problem then, as the second AppleTV downstairs, where it "knows" it's on a home connection, even though it's connecting via an external URL.

Just weird behaviors.

Thank you again though, and I'm still all-ears if someone can tell me how to get to transcode to an AppleTV on my home network!!

Posted

Maybe you can force it by setting the Apple TV to display at 1080p only if there is such a setting in it (Not the Emby client).

Posted
8 hours ago, cchoban said:

Can/will try that.  I came back to edit my last post though (couldn't since someone replied).  But my first AppleTV test, where it still worked after I was using an external URL but wired to my home internet connection, that still worked.  Went downstairs to a different AppleTV and tried just logging out, and then logging into the external URL, and it didn't work.  For some reason, I think Emby just held onto the "thought" that it was external on my first test.  If I logged out and back in, I'd still have the same problem then, as the second AppleTV downstairs, where it "knows" it's on a home connection, even though it's connecting via an external URL.

Just weird behaviors.

Thank you again though, and I'm still all-ears if someone can tell me how to get to transcode to an AppleTV on my home network!!

That Apple TV is a beast and will 100% direct play so I can see why in your instance it’s hard to get it to transcode. You can try rate limiting the account in the user settings to like 4-8mb. 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...