Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. Hi, I'm building a tvOS client that uses the native Apple player (AVPlayer/AVFoundation) rather than a bundled software decoder. On Apple TV that's the only path that gets you hardware decoding, Match Dynamic Range and Match Frame Rate — but it also means I'm bound by what AVFoundation accepts, and that's where I've run into a wall. What I observe My device profile advertises HLS transcoding with an MP4 container: { "Type": "Video", "Protocol": "hls", "Container": "mp4", "VideoCodec": "hevc,h264", "AudioCodec": "aac,ac3,alac,eac3,flac" } I then POST to /Items/{id}/PlaybackInfo, follow the returned TranscodingUrl to the master playlist, and fetch the first variant playlist. What comes back is MPEG-2 TS: there is no #EXT-X-MAP:URI="..." initialisation segment, and every media segment URI ends in .ts. The "Container": "mp4" in my transcoding profile doesn't appear to change the segment format. Why this blocks a native Apple client Apple's HLS Authoring Specification for Apple Devices is explicit on this point: MPEG-2 TS is only sanctioned for H.264. HDR10, HLG and Dolby Vision all ride on HEVC, so they inherit the same restriction. In practice, on an Apple TV 4K, that means: HEVC can't be delivered over HLS at all, so everything has to be re-encoded to H.264; HDR and Dolby Vision sources get tone-mapped down to SDR; and since the player never sees the real video range or frame rate, tvOS can't switch the display — Match Dynamic Range and Match Frame Rate stay inert. The net effect is that a 4K HDR HEVC file the Apple TV would decode in hardware, untouched, instead becomes a full SDR H.264 transcode: more work for the server, and a visibly worse picture on the TV. But what about clients that can't handle HDR? That's the concern I've seen raised whenever HDR delivery comes up, and it's a fair one. The answer is the reason the HLS multivariant playlist exists in the first place, and the authoring specification states it directly: You don't choose between HDR and SDR — you publish both, described side by side in the master playlist. Each #EXT-X-STREAM-INF carries the attributes a player needs in order to judge it: CODECS, RESOLUTION, FRAME-RATE and VIDEO-RANGE. Every client reads that list and takes only what it can actually decode and display. A player with no HDR support never selects the VIDEO-RANGE=PQ variant, because it can see from the manifest that it shouldn't; it takes the SDR one instead. Nothing has to be decided server-side, no client has to be sniffed or profiled, and no client ends up holding a stream it can't play. This is also why the description matters as much as the segments do. On Apple platforms the player decides what a stream is before it downloads a single segment: it reads those attributes and uses them both to rule variants in or out and to pre-configure the display. If the HDR variant isn't described in the master playlist, tvOS has nothing to act on and the display-mode switch never fires, however good the segments underneath happen to be. The request Two things, and the second is what makes the first safe: fMP4 segments. When a client's transcoding profile asks for HLS with an mp4 container, emit fMP4/CMAF segments instead of MPEG-2 TS — ffmpeg's -hls_segment_type fmp4, which writes an initialisation segment referenced by #EXT-X-MAP:URI="init.mp4" and .m4s media segments. Gating it on the container the client declares, or behind a server setting, leaves today's TS output as the default, so nothing that currently works changes. An HDR + SDR variant pair in the master playlist for HDR and Dolby Vision sources: the HDR variant (VIDEO-RANGE=PQ, carrying the Dolby Vision codec string where it applies) alongside an SDR companion, each fully described. One URL then serves both a 4K HDR television and a device that can't take HDR, with no second trip through PlaybackInfo and no guesswork about the client. Questions Is any of this already achievable and I've simply missed it — a server setting, or a different property in the device profile? If not, are fMP4 segment output and the HDR/SDR variant pair things you'd consider? Happy to test against a 4K HDR/DV library and report back with player-side measurements: variant chosen, video range as the player reports it, and whether the display mode switches. Thanks.
  3. IAmHugh

    Moonfin, a new cross platform client

    Yes pun intended quoting just that. Now if only someone would answer my one question how did I manage to see all my libraries on the main screen in the Fire TV app so I can do it again, and can I do it in the PC app?
  4. Lutzif3r

    [Future Request] Alphabet on sidebar scroll

    Alphabet is supposed to be on the right side though like everything else. It is on the Android app in portrait view like it should be but doesn't even show in landscape mode. On Google TV the alphabet is on the wrong side but the Windows app is on the right side like it should be.
  5. 2026-08-05 17:33:16.177 Info DynamicHlsService-0HNNIK2IOFT82:00000001: http/1.1 GET http://SERVER/Audio/2902/hls1/main/init.mp4?PlaySessionId=REDACTED&api_key=REDACTED. Source Ip: CLIENT,, Connection=close, Host=SERVER, User-Agent=REDACTED, Accept-Encoding=identity 2026-08-05 17:33:16.178 Info DynamicHlsService-0HNNIK2IOFT82:00000001: Starting transcoding because currentTranscodingIndex=null 2026-08-05 17:33:16.218 Error DynamicHlsService-0HNNIK2IOFT82:00000001: Error processing request *** Error Report *** Version: 4.9.5.0 Command line: /opt/emby-server/system/EmbyServer.dll -programdata /var/lib/emby -ffdetect /opt/emby-server/bin/ffdetect -ffmpeg /opt/emby-server/bin/ffmpeg -ffprobe /opt/emby-server/bin/ffprobe -restartexitcode 3 -updatepackage emby-server-deb_{version}_amd64.deb Operating system: Linux version 6.8.0-137-generic (buildd@lcy02-amd64-064) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0, GNU ld (GNU Binutils for Ub OS/Process: x64/x64 Framework: .NET 8.0.25 Runtime: opt/emby-server/system/System.Private.CoreLib.dll Processor count: 6 Data path: /var/lib/emby Application path: /opt/emby-server/system Emby.Server.MediaEncoding.Unified.Ffmpeg.FfRunException: Emby.Server.MediaEncoding.Unified.Ffmpeg.FfRunException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at Emby.Server.MediaEncoding.Encoder.TranscodingCommandBuilder.HlsGetCommandLineArguments(String outputPath, StreamState state, Int32 startNumber, hls_playlist_typeEnum playlistType, String segmentListEntryPrefix, String segmentFileExtension) at Emby.Server.MediaEncoding.Api.Hls.DynamicHlsService.GetCommandLineArguments(String outputPath, StreamState state) at Emby.Server.MediaEncoding.Api.BaseStreamingService.StartFfMpeg(StreamState state, String outputPath, CancellationToken cancellationToken, Boolean acquireResources) --- End of inner exception stack trace --- at Emby.Server.MediaEncoding.Api.BaseStreamingService.StartFfMpeg(StreamState state, String outputPath, CancellationToken cancellationToken, Boolean acquireResources) at Emby.Server.MediaEncoding.Api.Hls.DynamicHlsService.GetDynamicSegment(StreamRequest request, String manifestAbsoluteUri, String playlistId, String segmentId, Int32 subtitleStreamIndex, AuthorizationInfo authorizationInfo) at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IServerApplicationHost appHost, IRequest httpReq, IResponse httpRes, IStreamHelper streamHelper, RestPath restPath, String responseContentType, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, RestPath restPath, String urlString, String localPath, String contentTypeInPath, CancellationToken cancellationToken) Source: Emby.Server.MediaEncoding TargetSite: Void MoveNext() InnerException: System.NullReferenceException: Object reference not set to an instance of an object. Source: Emby.Server.MediaEncoding TargetSite: Emby.Ffmpeg.Model.FfmpegCommand HlsGetCommandLineArguments(System.String, Emby.Server.MediaEncoding.Api.StreamState, Int32, hls_playlist_typeEnum, System.String, System.String) at Emby.Server.MediaEncoding.Encoder.TranscodingCommandBuilder.HlsGetCommandLineArguments(String outputPath, StreamState state, Int32 startNumber, hls_playlist_typeEnum playlistType, String segmentListEntryPrefix, String segmentFileExtension) at Emby.Server.MediaEncoding.Api.Hls.DynamicHlsService.GetCommandLineArguments(String outputPath, StreamState state) at Emby.Server.MediaEncoding.Api.BaseStreamingService.StartFfMpeg(StreamState state, String outputPath, CancellationToken cancellationToken, Boolean acquireResources) 2026-08-05 17:33:16.218 Info DynamicHlsService-0HNNIK2IOFT82:00000001: http/1.1 Response 500 to CLIENT. Time: 41ms. GET http://SERVER/Audio/2902/hls1/main/init.mp4?PlaySessionId=REDACTED&api_key=REDACTED. Headers: Connection=close, Content-Type=text/plain, Date=Wed, 05 Aug 2026 17:33:15 GMT, Server=UPnP/1.0 DLNADOC/1.50, Content-Length=57, Cross-Origin-Resource-Policy=cross-origin, Private-Network-Access-Name=REDACTED, Private-Network-Access-Id=REDACTED
  6. Hi there, please attach the Emby server log from when the problem occurred: How to Report a Problem Thanks!
  7. Hi, you won't see it visually, but they are inherited for parental control restrictions.
  8. Neminem

    Plugin: EmbyIcons release.

    Are all the affected users running Emby Server Beta? As fare as I know "Autotag" renamed "Home Screen Companion" is only working with Emby Beta server.
  9. Hi, I applied a tag to a folder, but when searching for videos with the tag, nothing comes up. Does applying a tag to a folder actually do anything? And if so, is the only way to do something like this through a plugin like Mass Metadata Editor?
  10. The 500 is not a transcoding failure — ffmpeg is never launched. The server log shows FfRunException wrapping a NullReferenceException from Emby.Server.MediaEncoding.Unified.Ffmpeg, with no ffmpeg log entry at all. So the null is dereferenced while assembling the run for fmp4 segments, before any process starts. And it looks specific to audio-only output. The same server, same version, same fMP4 container, but a movie instead of a track: Playlist Init First segment Video v7 + EXT-X-MAP 1,317 B 234,856 B Audio v7 + EXT-X-MAP 500 500 So fMP4 segments are served fine here — just not for an audio-only stream.
  11. Today
  12. ISeeTWizard

    Plugin: EmbyIcons release.

    I use ClassificationMapper and NfoMetadata too and don’t had issues AutoTag I don’t use and never did…
  13. yocker

    Plugin: EmbyIcons release.

    @ebr AutoTag ClassificationMapper NfoMetadata Of all the plugins one of the users was running these are the ones i could personally suspect could maybe have a hand it in, purely based on that they lookup and changed metadata. IMPORTANT!! I'm not saying that they are responsible for what happened, just that i think they *COULD MAYBE* have!!!! Not accusing any one of anything here!
  14. alex77777

    Plugin: TheIntroDB – Emby Plugin

    @PasitheaIve submitted timestamps about a week ago on the IntroDB website, how long do they typically sit pending for?
  15. Luke

    Immediate crash of MacOS Emby Client

    Hi there, let's look at an example. Please attach the information requested in how to report a media playback issue. Thanks!
  16. Luke

    Emby randomly unable to reach server

    Hi there, please attach the Emby server log from when the problem occurred: How to Report a Problem Thanks!
  17. Hi, try refreshing the metadata on the series and see if that helps.
  18. alex77777

    VirtualTV plugin

    Is Caching of Program data enabled for that channel? It should have a check mark
  19. yocker

    Plugin: EmbyIcons release.

    When I get home in a bit I can check and see in their logs if there are some common plugins between them.
  20. yeah, of course. the cast is working fine, only director, writer, etc not picking up tmdb id. but for movies library all cast & crews is getting tmdb id.
  21. My bad, it's crosswatch, not crosstrack. His github is here so you could open a request there to discuss further, although I believe he's on holiday currently: https://github.com/cenodude/CrossWatch Ohhh I just noticed that Wetrakr supports "now playing". That's awesome, as it's something I use quite a bit.
  22. ebr

    Plugin: EmbyIcons release.

    So some other plugin could be responsible as well. Seems pretty odd since we've never seen that happen before.
  23. yocker

    Plugin: EmbyIcons release.

    Sadly no, only logs I got was from after the damage was done.
  24. ebr

    Plugin: EmbyIcons release.

    Do we have any idea how that happened?
  25. Have you set tmdb to be the primary metadata provider for TV? It's not the default setting. Paul
  26. Correct. Paul
  1. Load more activity
×
×
  • Create New...