linuxserver / docker-emby

GNU General Public License v3.0
119 stars 40 forks source link

Transcoding not working with intel igpus on unRAID #84

Closed sross79 closed 9 months ago

sross79 commented 9 months ago

Is there an existing issue for this?

Current Behavior

As it stands in both the regular Emby container as well as the Emby beta, HDR transcoding is only being done by the CPU not the iGPU. It works on the official Emby container and it used to work in yours.

Expected Behavior

Transcoding should take place on QuickSync and not the CPU.

Steps To Reproduce

In unRAID I have /dev/dri added for the iGPU and while it sees the option for quicksync it continues to default to CPU and not use the iGPU.

Environment

- OS:unRAID
- How docker service was installed:Community Apps

CPU architecture

x86-64

Docker creation

Used out of unRAID

Container logs

text error warn system array login

Info App: Transcoding temporary files path: /tmp/transcoding-temp Info App: InfuseSync is starting. [ls.io-init] done. Info FfmpegManager: FFMpeg: /app/emby/ffmpeg Info FfmpegManager: FFProbe: /app/emby/ffprobe Info FfmpegManager: FFDetect: /app/emby/ffdetect Info Skia: SkiaSharp version: 2.88.0.0 Info ImageProcessor: Adding image processor Skia Info libvips: NetVips version: 2.3.1.0 Info ImageProcessor: Adding image processor libvips Info App: Infuse housekeeping task scheduled. Info TaskManager: Daily trigger for Emby Server Backup set to fire at 01/19/2024 00:10:00, which is 732.3807999916667 minutes from now. Info TaskManager: Daily trigger for Remove Old Cached Data set to fire at 01/19/2024 00:01:00, which is 723.3807725216667 minutes from now. Info TaskManager: Daily trigger for Thumbnail image extraction set to fire at 01/19/2024 02:00:00, which is 842.3807062016666 minutes from now. Info TaskManager: Daily trigger for Rotate log file set to fire at 01/19/2024 00:00:00, which is 722.3792179916667 minutes from now. Info App: ServerId: a54f09fac5fc4a179c20e022730b7b91 Info App: Starting entry point Emby.Dlna.Main.DlnaEntryPoint Info App: Entry point completed: Emby.Dlna.Main.DlnaEntryPoint. Duration: 0.0305982 seconds Info App: Starting entry point Emby.Server.Implementations.Networking.RemoteAddressEntryPoint Info App: Loading data from /config/data/wan.dat Info App: Entry point completed: Emby.Server.Implementations.Networking.RemoteAddressEntryPoint. Duration: 0.0026156 seconds Info App: Starting entry point Emby.Server.Connect.ConnectEntryPoint Info App: Loading data from /config/data/connect.txt Info App: Entry point completed: Emby.Server.Connect.ConnectEntryPoint. Duration: 0.0010555 seconds Info App: Core startup complete Info App: Starting entry point Emby.PortMapper.ExternalPortForwarding Info App: Entry point completed: Emby.PortMapper.ExternalPortForwarding. Duration: 0.0002283 seconds Info App: Starting entry point Emby.Webhooks.MigrationEntryPoint Info App: Entry point completed: Emby.Webhooks.MigrationEntryPoint. Duration: 0.0008996 seconds Info App: Starting entry point Emby.Security.PluginSecurityManager Info App: Entry point completed: Emby.Security.PluginSecurityManager. Duration: 1.35E-05 seconds Info App: Starting entry point Emby.Server.CinemaMode.IntrosEntryPoint Info App: Entry point completed: Emby.Server.CinemaMode.IntrosEntryPoint. Duration: 4.22E-05 seconds Info App: Starting entry point MBBackup.ServerEntryPoint Info App: Entry point completed: MBBackup.ServerEntryPoint. Duration: 8.3E-06 seconds Info App: Starting entry point MovieDb.Security.PluginStartup Info App: Entry point completed: MovieDb.Security.PluginStartup. Duration: 0.0004148 seconds Info App: Starting entry point Tvdb.EntryPoint Info App: Entry point completed: Tvdb.EntryPoint. Duration: 1.2E-05 seconds Info App: Starting entry point InfuseSync.EntryPoints.LibrarySyncManager Info App: Entry point completed: InfuseSync.EntryPoints.LibrarySyncManager. Duration: 6.77E-05 seconds Info App: Starting entry point InfuseSync.EntryPoints.UserSyncManager Info App: Entry point completed: InfuseSync.EntryPoints.UserSyncManager. Duration: 0.0001978 seconds Info App: Starting entry point NfoMetadata.EntryPoint Info App: Entry point completed: NfoMetadata.EntryPoint. Duration: 4.89E-05 seconds Info App: Starting entry point Trakt.ServerMediator Info App: Entry point completed: Trakt.ServerMediator. Duration: 0.0008639 seconds Info App: Starting entry point Emby.Kodi.SyncQueue.EntryPoints.LibrarySyncNotification Info App: Entry point completed: Emby.Kodi.SyncQueue.EntryPoints.LibrarySyncNotification. Duration: 4.62E-05 seconds Info App: Starting entry point Emby.Server.Implementations.Udp.UdpServerEntryPoint Info App: Entry point completed: Emby.Server.Implementations.Udp.UdpServerEntryPoint. Duration: 0.0004509 seconds Info App: Starting entry point Emby.Server.Implementations.Playlists.PlaylistUpgradeEntryPoint Info App: Entry point completed: Emby.Server.Implementations.Playlists.PlaylistUpgradeEntryPoint. Duration: 0.0009663 seconds Info App: Starting entry point Emby.Server.Implementations.Library.DeviceAccessEntryPoint Info App: Entry point completed: Emby.Server.Implementations.Library.DeviceAccessEntryPoint. Duration: 0.000199 seconds Info App: Starting entry point Emby.Server.Implementations.IO.LibraryMonitorStartup Info App: Entry point completed: Emby.Server.Implementations.IO.LibraryMonitorStartup. Duration: 0.0124261 seconds Info App: Starting entry point Emby.Server.Implementations.EntryPoints.AutomaticRestartEntryPoint Info App: Entry point completed: Emby.Server.Implementations.EntryPoints.AutomaticRestartEntryPoint. Duration: 0.0002251 seconds Info App: Starting entry point Emby.Server.Implementations.EntryPoints.KeepServerAwake Info App: Entry point completed: Emby.Server.Implementations.EntryPoints.KeepServerAwake. Duration: 6.03E-05 seconds Info App: Starting entry point Emby.Server.Implementations.EntryPoints.LibraryChangedNotifier Info App: Entry point completed: Emby.Server.Implementations.EntryPoints.LibraryChangedNotifier. Duration: 0.0004786 seconds Info App: Starting entry point Emby.Server.Implementations.EntryPoints.ServerEventNotifier Info App: Entry point completed: Emby.Server.Implementations.EntryPoints.ServerEventNotifier. Duration: 0.0008516 seconds Info App: Starting entry point Emby.Server.Implementations.EntryPoints.StartupWizard Info App: Entry point completed: Emby.Server.Implementations.EntryPoints.StartupWizard. Duration: 9.99E-05 seconds Info App: Starting entry point Emby.Server.Implementations.EntryPoints.SystemEvents Info App: Entry point completed: Emby.Server.Implementations.EntryPoints.SystemEvents. Duration: 0.0001323 seconds Info App: Starting entry point Emby.Server.Implementations.EntryPoints.UserDataChangeNotifier Info App: Entry point completed: Emby.Server.Implementations.EntryPoints.UserDataChangeNotifier. Duration: 3.5E-05 seconds Info App: Starting entry point Emby.Server.Implementations.Channels.ChannelsEntryPoint Info App: Entry point completed: Emby.Server.Implementations.Channels.ChannelsEntryPoint. Duration: 0.000925 seconds Info App: Starting entry point Emby.LiveTV.EntryPoint Info LiveTV: Loading live tv data from /config/data/livetv/timers Info App: Entry point completed: Emby.LiveTV.EntryPoint. Duration: 0.0012879 seconds Info App: Starting entry point Emby.LiveTV.RecordingNotifier Info App: Entry point completed: Emby.LiveTV.RecordingNotifier. Duration: 0.0008142 seconds Info App: Starting entry point Emby.ActivityLog.ActivityLogEntryPoint Info App: Entry point completed: Emby.ActivityLog.ActivityLogEntryPoint. Duration: 0.0010195 seconds Info App: Starting entry point Emby.Server.MediaEncoding.Api.EncodingManagerEntryPoint Info App: Entry point completed: Emby.Server.MediaEncoding.Api.EncodingManagerEntryPoint. Duration: 0.0003585 seconds Info App: Starting entry point Emby.Notifications.NotificationManagerEntryPoint Info Notifications: Registering event nofitier Emby Server User Notifications Info App: Entry point completed: Emby.Notifications.NotificationManagerEntryPoint. Duration: 0.0050626 seconds Info App: Starting entry point Emby.Server.Sync.SyncNotificationEntryPoint Info App: Entry point completed: Emby.Server.Sync.SyncNotificationEntryPoint. Duration: 0.0007028 seconds Info App: Starting entry point EmbyServer.Windows.LoopUtilEntryPoint Info App: Entry point completed: EmbyServer.Windows.LoopUtilEntryPoint. Duration: 3.5E-05 seconds Info App: All entry points have started

github-actions[bot] commented 9 months ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

github-actions[bot] commented 9 months ago

A human has marked this issue as invalid, this likely happened because the issue template was not used in the creation of the issue.

sross79 commented 9 months ago

I have updated the issue with the container logs. Please reopen and investigate the issue.

j0nnymoe commented 9 months ago

I am don't see any error in your logs to transcoding not working.

j0nnymoe commented 9 months ago

Also you need to provide your docker run command.

darthShadow commented 9 months ago

Just to add further context from other users of the LSIO image on the Emby forums, this is specifically for HDR tonemapping which is using only the CPU rather than the iGPU. SDR transcoding is working fine.

Also, the official Emby docker image works fine too, with the same hardware for HDR tonemapping.

One difference between the LSIO & official images is the missing environment variables for LIBVA_DRIVERS_PATH & OCL_ICD_VENDORS in the LSIO image. It's also missing the contents of the extra/etc/OpenCL/vendors (which is what OCL_ICD_VENDORS points to) folder from the emby package completely.

j0nnymoe commented 9 months ago

Let's not bring the HDR discussion into this. OP has just said that iGPU isn't working at all, adding further context is just going to confuse matters.

aptalca commented 9 months ago

If you're having issues with tonemapping, please open a new issue and fill out the issue template.

darthShadow commented 9 months ago

I only added the above details because of the mention of HDR transcoding in the first post and since the user has come from the Emby beta forums that were specifically discussing that only HDR tonemapping was not working and regular SDR transcoding is working fine.

Anyway, I will just hold off for now till the OP replies on whether this is specifically HDR tonemapping only or transcoding in general.

aptalca commented 9 months ago

I now see that we had broken tonemapping some time ago but didn't realize it until now (I don't transcode 4k). Regular hw transcode works just fine but users rarely make a distinction between the two.

Anyway, assuming that's the issue OP is alluding to, we have 2 open PRs that will fix it.

86 and #87

darthShadow commented 9 months ago

rarely make a distinction between the two.

Yep, exactly. Been hard enough asking users to open duplicate threads here after being raised in the beta forums (since that's not open to public), especially since I don't have my own tonemapping-compatible HW to test with... 😅

The linked PR seems to bring everything back in sync with the upstream package so hopefully it will start working now... 🤞

aptalca commented 9 months ago

I tested locally and tonemapping now works. Didn't notice any other issues. The PR is also keeping the upstream package files' structure and no longer manually names folders so it reduces the risk of breakage due to an upstream change in the future.

Thanks for the heads up.

darthShadow commented 9 months ago

Appreciate the quick fix, thanks a lot.

darthShadow commented 9 months ago

I believe this can be closed now since @sross79 confirmed in the forums that it's working with the new builds.