ajnart / homarr

Customizable browser's home page to interact with your homeserver's Docker containers (e.g. Sonarr/Radarr)
https://homarr.dev
MIT License
5.48k stars 253 forks source link

Hardware transcode not properly reported for Jellyfin in Media Server Widget #2078

Open strawberrypixel opened 2 days ago

strawberrypixel commented 2 days ago

Environment

Docker

Version

0.15.3

Describe the problem

The media server widget shows Hardware Encoding Requested no when Jellfin is using hardware transcoding.

Jellyfin transcode logs show hardware transcoding is active.

-init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel qsv -hwaccel_output_format qsv -c:v hevc_qsv

and

Stream mapping:
  Stream #0:0 -> #0:0 (hevc (hevc_qsv) -> h264 (h264_qsv))
  Stream #0:1 -> #0:1 (eac3 (native) -> aac (libfdk_aac))

The object returned from the api call shows

  [
    {
        "result":
        {
            "data":
            {
                "json":
                {
                    "servers":
                    [
                        {
                            "serverAddress": "[snip]",
                            "sessions":
                            [],
                            "type": "plex",
                            "version": null,
                            "appId": "[snip]",
                            "success": true
                        },
                        {
                            "type": "jellyfin",
                            "appId": "[snip]",
                            "serverAddress": "[snip]",
                            "version": "10.9.6",
                            "sessions":
                            [
                                {
                                    "id": "[snip]",
                                    "username": "admin",
                                    "sessionName": "[snip]",
                                    "supportsMediaControl": false,
                                    "currentlyPlaying":
                                    {
                                        "name": "[snip]",
                                        "seasonName": "[snip]",
                                        "episodeName": "[snip]",
                                        "albumName": null,
                                        "episodeCount": null,
                                        "metadata":
                                        {
                                            "video":
                                            {
                                                "videoCodec": null,
                                                "width": 1920,
                                                "height": 1080,
                                                "bitrate": null,
                                                "videoFrameRate": null
                                            },
                                            "audio":
                                            {
                                                "audioChannels": 2,
                                                "audioCodec": "aac"
                                            },
                                            "transcoding":
                                            {
                                                "audioChannels": 2,
                                                "audioCodec": "aac",
                                                "container": "ts",
                                                "width": 1920,
                                                "height": 1080,
                                                "videoCodec": "h264",
                                                "audioDecision": null,
                                                "context": null,
                                                "duration": null,
                                                "error": null,
                                                "sourceAudioCodec": null,
                                                "sourceVideoCodec": null,
                                                "timeStamp": null,
                                                "transcodeHwRequested": null,
                                                "videoDecision": null
                                            }
                                        },
                                        "type": "video"
                                    },
                                    "userProfilePicture": null
                                }
                            ],
                            "success": true
                        }
                    ]
                },
                "meta":
                {
                    "values":
                    {
                        "servers.0.version":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.albumName":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.episodeCount":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.video.videoCodec":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.video.bitrate":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.video.videoFrameRate":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.transcoding.audioDecision":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.transcoding.context":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.transcoding.duration":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.transcoding.error":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.transcoding.sourceAudioCodec":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.transcoding.sourceVideoCodec":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.transcoding.timeStamp":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.transcoding.transcodeHwRequested":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.currentlyPlaying.metadata.transcoding.videoDecision":
                        [
                            "undefined"
                        ],
                        "servers.1.sessions.0.userProfilePicture":
                        [
                            "undefined"
                        ]
                    }
                }
            }
        }
    }
]

Logs

No response

Context

image

Please tick the boxes

github-actions[bot] commented 2 days ago

Hi 👋. Thank you for submitting your first issue to Homarr. Please ensure that you've provided all nessesary information. You can use the three dots > Edit button to update your post with additional images and information. Depending on the current volume of requests, the team should get in conact with you shortly.