GoTeamScotch Posted September 20, 2022 Report Share Posted September 20, 2022 (edited) I have made a profile for Jellyfin (a media streaming server similar to Plex) that transcodes videos down to a format that the Original Xbox can handle. I have tested it on a few of my own 1080p and 4K videos and it seems to work fairly well and I'm hoping to find a few testers who can try it out. At the moment, it still drops frames occasionally, but I'm going dial in the profile to smooth things out further. Once done, I plan on submitting the profile as a PR to the Jellyfin project to see if it can be bundled in with future releases. This profile basically just tells Jellyfin what containers and codecs to use (and at what bitrates), then Jellyfin handles the transcoding as if it were any other device. To use this, download the XML file below to your PC, then upload it to your Jellyfin server under this path: /etc/jellyfin/dlna/user/XBMC4Xbox.xml XBMC4Xbox.xml You should then see this new profile under Settings > DLNA > Profiles. To try it out, open your Jellyfin client and cast a video to your Xbox as usual. The video should start playing on your Xbox. If anything goes wrong, check your log file for hints. It will tell you which profile it is using. If it doesn't say "XBMC4Xbox" and instead says "Default", then there's a problem. Reply here with results and feedback. Tested with XBMC4Xbox v3.5.3 (this profile targets this version, but this restriction will probably be removed just in case XBMC4Xbox every has a new release) P.s. I also plan on making profiles for upgraded Xbox motherboards as well, including 128MB and 1.4ghz consoles. Edited September 20, 2022 by GoTeamScotch 3 1 Quote Link to comment Share on other sites More sharing options...
d4niel Posted October 11, 2022 Report Share Posted October 11, 2022 Really really cool man, damned good timing also! Been trying to figure out how to get a way to stream old anime to my CRT and this just werks 1 Quote Link to comment Share on other sites More sharing options...
Bowlsnapper Posted October 11, 2022 Report Share Posted October 11, 2022 You rock! Nice work! I've been waiting for something like this! Now we just need a DVD to Divx ripper designed to run on the xbox! 1 Quote Link to comment Share on other sites More sharing options...
locutus2000 Posted October 11, 2022 Report Share Posted October 11, 2022 (edited) This looks awesome, I would like to test when my Xbox is up and running again but it will be a while I'm afraid. Edit: I have been thinking about this for a few minutes and I realized I haven't used Xbmc4Xbox since 2006 or so. So how do I playback videos from Jellyfin via XBMC? Edited October 11, 2022 by locutus2000 Quote Link to comment Share on other sites More sharing options...
dust08 Posted January 12, 2023 Report Share Posted January 12, 2023 Any way to initiate a video stream from the xbox side instead of having to go to my pc? Quote Link to comment Share on other sites More sharing options...
GoTeamScotch Posted January 29, 2023 Author Report Share Posted January 29, 2023 On 1/12/2023 at 3:33 PM, dust08 said: Any way to initiate a video stream from the xbox side instead of having to go to my pc? I don't think so. I tried through upnp from my xbox and it didn't seem to find my jellyfin library, though I may have just been missing something obvious. I started trying to port the jellyfin kodi plugin to xbmc and made progress, but still a ways to go. Did you try out the profile? Any feedback? Quote Link to comment Share on other sites More sharing options...
dust08 Posted January 30, 2023 Report Share Posted January 30, 2023 Profile works flawlessly for me. I also tried upnp but couldn't find jellyfin. And wow! Jellyfin plugin would be awesome! I'm loving this xbmc revival. 1 Quote Link to comment Share on other sites More sharing options...
locutus2000 Posted April 3, 2023 Report Share Posted April 3, 2023 How would I get the Xbox to show up as a cast device from Jellyfin? Quote Link to comment Share on other sites More sharing options...
GoTeamScotch Posted February 29, 2024 Author Report Share Posted February 29, 2024 Version 0.2b: Added initial support for starting playback partway through a video. When playing a video that was already in progress, XBMC now starts playback at the correct time. This doesn't seem to affect all videos, further testing is needed to determine why and target those codecs/containers/etc. XBMC now displays the correct length of the currently playing video. XBMC can now fast-forward/rewind in currently playing videos. Transcoded videos are delivered over TS streams (instead of MKV). Changed profile identification. New builds of XBMC in the future (beyond 3.5.3) should now work with this profile. Beginning to add support for Photos. Doesn't work yet. To-do: Fix thumbnails for media in XBMC. Not sure if thumbnails being sent by server are too large or what. Profile has a spot for "MaxAlbumArtWidth" and I tried setting this to 192 (the size XBMC uses for its own thumbnails), but I'm pretty sure this only affects music. I don't see an overall thumbnail size setting. Figure out why DLNA folder browsing doesn't work. Jellyfin handles "special" libraries in a certain way that XBMC doesn't like, including Movies, Shows, Music. Browsing Photos directories (and other basic library types) works. Settings RequiresPlainFolders and RequiresPlainVideoItems to true doesn't seem to help. A lot of testing is still needed. There is a huge variety of content that JF supports. Need to dial in exactly what XBMC supports and ensure transcoding or direct-play happens properly. Need to test: HDR, high framerate videos, high bit depth videos, Atmos, and many others. Create versions of profile targetting 1.4ghz / 128mb upgraded motherboards. Testers needed! XBMC4Xbox-v0.2b.xml 2 Quote Link to comment Share on other sites More sharing options...
Bowlsnapper Posted February 29, 2024 Report Share Posted February 29, 2024 7 hours ago, GoTeamScotch said: Version 0.2b: Added initial support for starting playback partway through a video. When playing a video that was already in progress, XBMC now starts playback at the correct time. This doesn't seem to affect all videos, further testing is needed to determine why and target those codecs/containers/etc. XBMC now displays the correct length of the currently playing video. XBMC can now fast-forward/rewind in currently playing videos. Transcoded videos are delivered over TS streams (instead of MKV). Changed profile identification. New builds of XBMC in the future (beyond 3.5.3) should now work with this profile. Beginning to add support for Photos. Doesn't work yet. To-do: Fix thumbnails for media in XBMC. Not sure if thumbnails being sent by server are too large or what. Profile has a spot for "MaxAlbumArtWidth" and I tried setting this to 192 (the size XBMC uses for its own thumbnails), but I'm pretty sure this only affects music. I don't see an overall thumbnail size setting. Figure out why DLNA folder browsing doesn't work. Jellyfin handles "special" libraries in a certain way that XBMC doesn't like, including Movies, Shows, Music. Browsing Photos directories (and other basic library types) works. Settings RequiresPlainFolders and RequiresPlainVideoItems to true doesn't seem to help. A lot of testing is still needed. There is a huge variety of content that JF supports. Need to dial in exactly what XBMC supports and ensure transcoding or direct-play happens properly. Need to test: HDR, high framerate videos, high bit depth videos, Atmos, and many others. Create versions of profile targetting 1.4ghz / 128mb upgraded motherboards. Testers needed! XBMC4Xbox-v0.2b.xml 4.08 kB · 2 downloads For profiles targeting 1.4GHZ systems, does that mean they are more resource intensive but the upgrades can handle it? Quote Link to comment Share on other sites More sharing options...
GoTeamScotch Posted February 29, 2024 Author Report Share Posted February 29, 2024 11 minutes ago, Bowlsnapper said: For profiles targeting 1.4GHZ systems, does that mean they are more resource intensive but the upgrades can handle it? Correct. Higher bitrates mostly, which leads to less macro-blocking artifacts in HD videos. It's mostly the CPU upgrade that helps with this. My 1.4ghz / 128mb Xbox still has about 70MB of RAM free when using this profile, so it's not hitting a memory limit. 2 Quote Link to comment Share on other sites More sharing options...
randy Posted August 23, 2024 Report Share Posted August 23, 2024 (edited) This almost seems to work, but not really. I have DLNA set up on XBMC. I see XBMC as a streamable target. I am able to stream old videos to my OG xbox no problem. But for higher res videos, like 1080p, Jellyfin will not transcode the video. I only get an audio stream. Because DLNA in Jellyfin was moved to a plugin, and they removed the ability to select different profiles, I wrote the XBMC profile over Default. (Discussion here: https://forum.jellyfin.org/t-no-more-dlna-profiles ) When I look at the Jellyfin logs, I see this: jellyfin | [05:23:24] [INF] [3] Jellyfin.Plugin.Dlna.Main.DlnaHost: DLNA Session created for XBMC: Media Renderer (192.168.10.113) - XBMC jellyfin | [05:23:57] [INF] [39] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 192.168.10.1 request jellyfin | [05:24:11] [INF] [39] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -i file:"/bravo/video/movies/John Wick Chapter 1, 2, 3 - Trilogy 2014-2019 Eng Subs 1080p [H264-mp4]/John Wick Chapter 1-2-3/01 John Wick Chapter 1 - Keanu Reeves 2014 Eng Subs 1080p [H264-mp4].mp4" -vn -map 0:1 -map -0:s -codec:v:0 copy -copyts -avoid_negative_ts disable d -start_at_zero -map_metadata -1 -map_chapters -1 -threads 0 -codec:a:0 libfdk_aac -ac 2 -ab 127798 -ar 48000 -y "/cache/transcodes/01ccd7548481f6a1f0586f3ee76a1b18.ts" Now looking at the FFMPEG call from TranscodeManager, you can see "-vn" which means no video. So there is some bug with Jellyfin or this profile that is keeping it from transcoding video correctly. Edited August 23, 2024 by randy Quote Link to comment Share on other sites More sharing options...
RMM Posted August 23, 2024 Report Share Posted August 23, 2024 The original Xbox doesn't support 1080p video output. Remember this system is over 20 years old so it doesnt support the higher resolutions or have the ability to use modern codecs that we see today. Quote Link to comment Share on other sites More sharing options...
antonic901 Posted August 26, 2024 Report Share Posted August 26, 2024 That's why he is using Jellyfin to transcode modern video formats to formats which Xbox can play and it worked quite good year ago. I hope they will return support for profiles since I had plans to integrate Jellyfin into XBMC. Quote Link to comment Share on other sites More sharing options...
randy Posted August 28, 2024 Report Share Posted August 28, 2024 On 8/23/2024 at 12:30 PM, RMM said: The original Xbox doesn't support 1080p video output. Remember this system is over 20 years old so it doesnt support the higher resolutions or have the ability to use modern codecs that we see today. I know that. That is why I am trying to transcode the video - so you can transcode from a high resolution to a low resolution. That is the purpose of this topic and the whole discussion. Theoretically I *should* be able to transcode my 1080p video down to 480p for the Xbox to play. But there is a bug somewhere that is preventing that from happening, and I am only getting back audio. Quote Link to comment Share on other sites More sharing options...
randy Posted August 28, 2024 Report Share Posted August 28, 2024 Here are a little more logs: [2024-08-28 04:14:44.611 +00:00] [DBG] [17] Jellyfin.Plugin.Dlna.DlnaManager: Found matching device profile: "XBMC4Xbox" [2024-08-28 04:14:44.624 +00:00] [DBG] [17] Jellyfin.Plugin.Dlna.Main.DlnaHost: Bitrate exceeds limit: media bitrate: 15584071, max bitrate: 800000 [2024-08-28 04:14:44.624 +00:00] [DBG] [17] Jellyfin.Plugin.Dlna.Main.DlnaHost: Profile: "XBMC4Xbox", Path: "/bravo/video/movies/The Hobbit - M4 Book Edit (1080p).mkv", isEligibleForDirectPlay: False, isEligibleForDirectStream: False [2024-08-28 04:14:44.641 +00:00] [DBG] [17] Jellyfin.Plugin.Dlna.Main.DlnaHost: Transcode Result for Profile: "XBMC4Xbox", Path: "/bravo/video/movies/The Hobbit - M4 Book Edit (1080p).mkv", PlayMethod: Transcode, AudioStreamIndex: 1, SubtitleStreamIndex: 5, Reasons: ContainerBitrateExceedsLimit [2024-08-28 04:14:44.648 +00:00] [DBG] [17] Jellyfin.Plugin.Dlna.Main.DlnaHost: StreamBuilder.BuildVideoItem( Profile="XBMC4Xbox", Path="/bravo/video/movies/The Hobbit - M4 Book Edit (1080p).mkv", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=ContainerBitrateExceedsLimit ) "media:/videos/9be68357-da18-f9e1-da77-b23027e47939/stream.ts?MediaSourceId=9be68357da18f9e1da77b23027e47939&VideoCodec=mpeg4&AudioCodec=aac&AudioStreamIndex=1&SubtitleStreamIndex=5&VideoBitrate=416000&AudioBitrate=384000&MaxFramerate=23.976025&MaxWidth=1280&MaxHeight=720&api_key=<token>&SubtitleMethod=Hls&EnableSubtitlesInManifest=true&EnableMpegtsM2TsMode=true&EstimateContentLength=true&CopyTimestamps=true&RequireAvc=false&Tag=0ca27e7eab252fc371dd039d2c1ed3f1&h264-level=41&h264-videobitdepth=8&h264-profile=main&TranscodeReasons=ContainerBitrateExceedsLimit" [2024-08-28 04:14:44.724 +00:00] [DBG] [17] Jellyfin.Plugin.Dlna.Main.DlnaHost: "XBMC: Media Renderer (192.168.10.113)" - Playlist created [2024-08-28 04:14:44.727 +00:00] [DBG] [17] Jellyfin.Plugin.Dlna.Main.DlnaHost: "XBMC: Media Renderer (192.168.10.113)" - Playing 1 items [2024-08-28 04:14:44.738 +00:00] [DBG] [17] Jellyfin.Plugin.Dlna.Main.DlnaHost: "XBMC: Media Renderer (192.168.10.113)" - SetAvTransport Uri: "https://jf.dylanru.sh/dlna/videos/9be68357-da18-f9e1-da77-b23027e47939/stream.ts?DeviceProfileId=a28d28be6544fa91f862212916b5019c&DeviceId=4499e804-1dd4-a50d-057e-fc8e85e97e15&MediaSourceId=9be68357da18f9e1da77b23027e47939&VideoCodec=mpeg4&AudioCodec=aac&AudioStreamIndex=1&SubtitleStreamIndex=5&VideoBitrate=416000&AudioBitrate=384000&MaxFramerate=23.976025&MaxWidth=1280&MaxHeight=720&StartTimeTicks=72460036040&SubtitleMethod=Hls&EnableSubtitlesInManifest=true&EnableMpegtsM2TsMode=true&EstimateContentLength=true&CopyTimestamps=true&RequireAvc=false&Tag=0ca27e7eab252fc371dd039d2c1ed3f1&h264-level=41&h264-videobitdepth=8&h264-profile=main&TranscodeReasons=ContainerBitrateExceedsLimit&dlnaheaders=true" DlnaHeaders: "DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=01D00000000000000000000000000000" [2024-08-28 04:14:44.740 +00:00] [INF] [17] System.Net.Http.HttpClient.Dlna.LogicalHandler: Start processing HTTP request "POST" "http://192.168.10.113:64070/AVTransport/4499e804-1dd4-a50d-057e-fc8e85e97e15/control.xml" I really wish there were some logs in Jellyfin that would say "I chose to skip transcoding video for XYZ reason" Quote Link to comment Share on other sites More sharing options...
randy Posted August 28, 2024 Report Share Posted August 28, 2024 I opened a topic in the jellyfin forum: https://forum.jellyfin.org/t-no-video-when-transcoding-to-dlna-device Quote Link to comment Share on other sites More sharing options...
randy Posted August 29, 2024 Report Share Posted August 29, 2024 Apparently there was a bug in the DLNA plugin. Someone submitted a PR to fix the bug, but that PR has not been merged yet. Github automatically builds the plugin for every PR that's submitted, so you can download the experimental plugin here which seems to fix it: https://github.com/jellyfin/jellyfin-plugin-dlna/actions/runs/10410418276 Well almost everything is fixed. It seems to be playing most of the video I'm giving it, but Jellyfin won't let me skip to the middle of an episode. Probably another Jellyfin bug. The video is also very choppy. I recommend bringing the bitrate down to say 4 megabits and setting a max resolution of say 720x480. Still really cool! 1 Quote Link to comment Share on other sites More sharing options...
GoTeamScotch Posted August 29, 2024 Author Report Share Posted August 29, 2024 Thanks for the info and testing, randy. I haven't updated my Jellyfin server in a while. I'll do that soon and check out the nightly build of that plugin. I think what would probably make sense is to make a couple copies of this profile and let the user pick between them. For example, a 720p version (with a lower bitrate) or a 480p version (with a higher bitrate) so people can choose. I tend to prefer resolution over bitrate personally, but I understand that's not everyone's preference. If you want to adjust the profile yourself, you can edit the XML file and change the "CodecProfiles" section. You'll see a height and a width there (currently 1280x720). Change them to 720 and 480 respectively. Change the "MaxStreamingBitrate" from 5000000 (5mbps) to 4000000 (4mbps) as well if you'd like. Quote Link to comment Share on other sites More sharing options...
RDRulez Posted November 26, 2024 Report Share Posted November 26, 2024 Hi all, hoping to get this working too but running into an issue if anyone had any ideas? Running XBMC on my OG Xbox. Out of the box I was able to play files over DLNA from my Jellyfin server however I was getting audio and no video as @Randy mentioned above. Following the advice on that thread I updated my Jellyfin server to the latest version to overcome the transcoding bug there that was recently fixed. But now that I'm running on the latest Jellyfin version for some reason my XBMC Media Renderer is no longer showing up under the "Play to" options in Jellyfin. I didn't change anything in XBMC or Jellyfin but I've tried turning off then on UPnP in XBMC but still no luck. No matter what I do XBMC no longer shows as a play as a playable device in Jellyfin since it was upgraded. Does anyone have any advice to resolve? Quote Link to comment Share on other sites More sharing options...
RDRulez Posted November 26, 2024 Report Share Posted November 26, 2024 4 hours ago, RDRulez said: Hi all, hoping to get this working too but running into an issue if anyone had any ideas? Running XBMC on my OG Xbox. Out of the box I was able to play files over DLNA from my Jellyfin server however I was getting audio and no video as @Randy mentioned above. Following the advice on that thread I updated my Jellyfin server to the latest version to overcome the transcoding bug there that was recently fixed. But now that I'm running on the latest Jellyfin version for some reason my XBMC Media Renderer is no longer showing up under the "Play to" options in Jellyfin. I didn't change anything in XBMC or Jellyfin but I've tried turning off then on UPnP in XBMC but still no luck. No matter what I do XBMC no longer shows as a play as a playable device in Jellyfin since it was upgraded. Does anyone have any advice to resolve? EDIT: I managed to self-resolve. I noticed that the DLNA section of Jellyfin which is now a plugin had 2 versions, v5 with "Status: Restart" and a lower version with "Status: Superceded". I uninstalled both, restarted, installed DLNA fresh, restarted again and now it works. I had to modify the profile XML a bit a more as mkv's were still direct playing with audio and no video. I removed the whole line around direct streaming for video and now everything is transcoded to 720p max and plays fine on the OG Xbox. 1 Quote Link to comment Share on other sites More sharing options...
GoTeamScotch Posted November 28, 2024 Author Report Share Posted November 28, 2024 (edited) That explains why I couldn't see my Xbox as a target player to cast to. I installed the plugin and copied the transcode profile over to its new home: /var/lib/jellyfin/plugins/configurations/dlna/user C:\Users\yourUsername\AppData\Local\jellyfin\plugins\configurations\dlna\user I dug into this for a couple hours this evening. I've learned a lot about how profiles are parsed. Jellyfin's documentation on making DLNA transcode profiles is abysmal, so it was a lot of trial and error and reading through their code. I added settings that should allow XBMC to play more files natively that it can play, without transcoding. It should also now avoid serving media that the Xbox definitely can't play more consistently. See if you still have the black screen issue with this one. XBMC4Xbox.xml Also including one for 1.4ghz CPU upgraded consoles. XBMC4Xbox-14ghz.xml Note: I'm testing these on a RAM upgraded console. Needs testing on stock RAM consoles. Oh and I can't get seeking to work. If anyone has ideas, let me know. Otherwise, workaround is to cue your video to your desired starting point, and THEN cast it to XBMC. Edited November 28, 2024 by GoTeamScotch Quote Link to comment Share on other sites More sharing options...
stubbs Posted June 9 Report Share Posted June 9 I got streaming to work on the latest version 10.10.7 server and 8.0 plugin but for whatever reason I cannot get the profile to work, anyone have any ideas? Quote Link to comment Share on other sites More sharing options...
GoTeamScotch Posted June 10 Author Report Share Posted June 10 Take a look at your Jellyfin logs. Admin > Dashboard > Logs > {click on your most recent log} Do a search (Ctrl+F) for "DLNA". See if Jellyfin is able to detect your Xbox on your network. If it is able to, it'll show up in the logs, even if it assigns the wrong profile to it. Also, what version of XBMC are you using? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.