Device: Meta Quest 3 | Skybox VR v1.2.1
Problem description:
After upgrading to v1.2.1, Skybox no longer respects custom poster images provided by DLNA servers via the standard <upnp:albumArtURI> element. Instead, it now forcibly extracts thumbnails from video frames, ignoring the poster URL supplied by the server.
Technical background (for the dev team):
I use my own DLNA Media Server, which strictly follows the UPnP AV / DLNA ContentDirectory:1 protocol. In the Browse response, each video item includes the standard <upnp:albumArtURI> element:
<upnp:albumArtURI dlna:profileID="JPEG_TN">
http://{server_ip}:8200/poster/{stable_id}
</upnp:albumArtURI>
And a complementary <res> element that declares the poster’s DLNA properties:
<res protocolInfo="http-get:*:image/jpeg😃LNA.ORG_PN=JPEG_TN">
http://{server_ip}:8200/poster/{stable_id}
</res>
The poster is served as a 300px JPEG thumbnail with a Cache-Control: max-age=3600 header.
Behaviour before vs. after the update:
Before v1.2.1: Skybox correctly parsed <upnp:albumArtURI> and displayed my custom posters.
After v1.2.1: Skybox no longer requests that URI. Instead, it reads the video file’s moov atom metadata over the network and extracts video frames to generate thumbnails. This is clearly visible in the server logs as a large number of bytes=0- and bytes={file_size}- range requests.
Issues this causes:
Custom posters are replaced by random video frames, making the library look messy and inconsistent.
When browsing hundreds of videos on Quest 3, the frame?extraction process is extremely slow, with long “loading” periods.
It consumes unnecessary network bandwidth and player performance, degrading the overall user experience.
Suggested improvements:
Prefer the standard protocol: Even with built?in frame extraction, Skybox should give priority to <upnp:albumArtURI> when provided by the server, and only fall back to local frame extraction when no poster is available.
Add a toggle setting: Introduce an option that lets users choose between “prefer DLNA server posters” and “prefer video frame extraction” to accommodate different use cases.