UMS on Ubuntu 24.10
Forum rules
Please make sure you follow the Problem Reporting Guidelines before posting if you want a reply
Please make sure you follow the Problem Reporting Guidelines before posting if you want a reply
UMS on Ubuntu 24.10
Hi everyone, new member but long-time UMS user here. I made the switch to Ubuntu more than a year ago, but have been having nothing but issues with UMS - mainly in relation to transcoding. What probably doesn't help, is it is a Nvidia RTX 4070 - and Nvidia has traditionally been against "Open" software drivers.
Has anyone managed to get UMS transcoding to work at all on Linux? It's straightforward on Windows and largely automatic - but on Linux, I have tried many things and can't get it operating with anywhere near reliability - especially the ability to resume.
From my research, it seems:
1. Install Nvidia drivers using "Additional Drivers" feature in Ubuntu
2. Install Nvidia CUDA toolkit
3. Compile ffmpeg from source with the relevant Nvidia flags
4. Replace the ffmpeg binary in the UMS folder
5. Enable HW acceleration config in UMS
Even with all the above, transcoding fails on resume 100% of the time, with no specific errors. I don't have log files due to long ago giving up getting UMS running on Linux, but thought I might give this a crack again.
Anyone been successful in getting this to work?
Has anyone managed to get UMS transcoding to work at all on Linux? It's straightforward on Windows and largely automatic - but on Linux, I have tried many things and can't get it operating with anywhere near reliability - especially the ability to resume.
From my research, it seems:
1. Install Nvidia drivers using "Additional Drivers" feature in Ubuntu
2. Install Nvidia CUDA toolkit
3. Compile ffmpeg from source with the relevant Nvidia flags
4. Replace the ffmpeg binary in the UMS folder
5. Enable HW acceleration config in UMS
Even with all the above, transcoding fails on resume 100% of the time, with no specific errors. I don't have log files due to long ago giving up getting UMS running on Linux, but thought I might give this a crack again.
Anyone been successful in getting this to work?
Re: UMS on Ubuntu 24.10
I know next to nothing about Linux so can't help you much with setting up drivers etc. @boss is the Linux guy.
If you post your logs (see the section in red above) I could check and see if it gives any clues on why it it is not working.
Did you set it the GPU encoding acceleration method?
If you post your logs (see the section in red above) I could check and see if it gives any clues on why it it is not working.
Did you set it the GPU encoding acceleration method?
Logs are important for us to help, Please follow This Link before asking for support. Just a forum cleaner, Will help if I can but no expert.
Re: UMS on Ubuntu 24.10
I have been using UMS on a Gentoo Linux system for many years and it works fine.
In a standard linux install, UMS does not use ffmpeg in the UMS folder but uses the linux system ffmpeg.
In UMS.conf, see:
You could change that to use the ffmpeg supplied with UMS by adding the UMS supplied ffmpeg path to: ffmpeg_path =
If you want to confirm if UMS is using your server ffmpeg or the UMS supplied ffmpeg, you can view your UMS log file and look at this:
Also in the UMS log file, you will see the entry (it will probably be much longer as I just pasted a few lines:
Or better still, upload your log file here.
Have you tried: Keeping the UMS ffmpeg unmodified and then editing UMS.conf so that UMS uses the UMS supplied ffmpeg.
In UMS.conf add the UMS supplied ffmpeg path to this: ffmpeg_path =
This is a copy of my ffmpeg. You could also check your ffmpeg and make sure all the flags are enabled. You may not need them all for UMS but I know my configuration works.
In a standard linux install, UMS does not use ffmpeg in the UMS folder but uses the linux system ffmpeg.
In UMS.conf, see:
Code: Select all
# Path to ffmpeg (absolute or relative from project.binaries.dir)
# Example: /usr/bin/ffmpeg
# Default:
# Win: win32/ffmpeg.exe
# Mac: osx/ffmpeg
# Linux: ffmpeg + system PATH
ffmpeg_path =
If you want to confirm if UMS is using your server ffmpeg or the UMS supplied ffmpeg, you can view your UMS log file and look at this:
Code: Select all
DEBUG 2025-03-15 09:22:04.981 [main] Starting /usr/bin/ffmpeg -hwaccels
DEBUG 2025-03-15 09:22:04.982 [main] Process ID (/usr/bin/ffmpeg): 21491
Code: Select all
[ffmpeg-1-2] configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --docdir=/usr/share/doc/ffmpeg-6.1.2/html --mandir=/usr/share/man --enable-shared --cc=i686-pc-linux-gnu-gcc --cxx=i686-pc-linux-gnu-g++ --ar=i686-pc-linux-gnu-ar --nm=i686-pc-linux-gnu-nm --strip=i686-pc-linux-gnu-strip --ranlib=i686-pc-linux-gnu-ranlib --pkg-config=i686-pc-linux-gnu-pkg-config --optflags='-O2 -march=i686 -pipe -fomit-frame-pointer' --disable-static --disable-libaribcaption --enable-avfilter --disable-strip
Have you tried: Keeping the UMS ffmpeg unmodified and then editing UMS.conf so that UMS uses the UMS supplied ffmpeg.
In UMS.conf add the UMS supplied ffmpeg path to this: ffmpeg_path =
This is a copy of my ffmpeg. You could also check your ffmpeg and make sure all the flags are enabled. You may not need them all for UMS but I know my configuration works.
Code: Select all
satan ~ # ffmpeg
ffmpeg version 6.1.2 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 14 (Gentoo 14.2.1_p20241116 p3)
configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --docdir=/usr/share/doc/ffmpeg-6.1.2/html --mandir=/usr/share/man --enable-shared --cc=i686-pc-linux-gnu-gcc --cxx=i686-pc-linux-gnu-g++ --ar=i686-pc-linux-gnu-ar --nm=i686-pc-linux-gnu-nm --strip=i686-pc-linux-gnu-strip --ranlib=i686-pc-linux-gnu-ranlib --pkg-config=i686-pc-linux-gnu-pkg-config --optflags='-O2 -march=i686 -pipe -fomit-frame-pointer' --disable-static --disable-libaribcaption --enable-avfilter --disable-stripping --disable-optimizations --disable-libcelt --disable-indev=v4l2 --disable-outdev=v4l2 --disable-indev=oss --disable-indev=jack --disable-indev=sndio --disable-outdev=oss --disable-outdev=sndio --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-gcrypt --enable-gnutls --disable-gmp --enable-gpl --disable-hardcoded-tables --enable-iconv --disable-libxml2 --disable-lzma --enable-network --disable-opencl --disable-openssl --enable-postproc --disable-libsmbclient --disable-ffplay --disable-sdl2 --disable-vaapi --disable-vdpau --disable-vulkan --disable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-zlib --disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --disable-opengl --disable-libv4l2 --disable-libpulse --disable-libdrm --disable-libjack --disable-libopencore-amrwb --disable-libopencore-amrnb --disable-libcodec2 --enable-libdav1d --disable-libfdk-aac --disable-libopenjpeg --disable-libjxl --disable-libbluray --disable-libgme --disable-libgsm --disable-libaribb24 --disable-libmodplug --disable-libopus --disable-libvpl --disable-libilbc --disable-librtmp --disable-libssh --disable-libspeex --disable-libsrt --disable-librsvg --disable-ffnvcodec --disable-libvorbis --disable-libvpx --disable-libzvbi --disable-appkit --disable-libbs2b --disable-chromaprint --disable-cuda-llvm --disable-libflite --disable-fontconfig --disable-frei0r --disable-libfribidi --disable-libglslang --disable-ladspa --disable-lcms2 --disable-libass --disable-libplacebo --disable-libtesseract --disable-lv2 --disable-librubberband --disable-libshaderc --disable-libfreetype --disable-libharfbuzz --disable-libvidstab --disable-libvmaf --disable-libzmq --disable-libzimg --disable-libsoxr --enable-pthreads --disable-amf --disable-libvo-amrwbenc --disable-libkvazaar --disable-libaom --enable-libmp3lame --disable-libopenh264 --disable-librav1e --disable-libsnappy --disable-libsvtav1 --disable-libtheora --disable-libtwolame --disable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-vfpv3 --disable-armv8 --disable-dotprod --disable-i8mm --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-altivec --disable-vsx --disable-power8 --disable-amd3dnow --disable-amd3dnowext --disable-fma4 --disable-xop --enable-pic --disable-asm --cpu=i686 --disable-doc --disable-htmlpages --enable-manpages
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100
Hyper fast Audio and Video encoder
Re: UMS on Ubuntu 24.10
Thanks all for the replies, and glad to see at least someone has it working. All hope is not lost! @boss Is your GPU Nvidia or AMD?
I couldn't put all the detail I had hoped into this reply as it kept being marked as spam frustratingly. The log files have it all though.
Have just gone through the complete "refresh" of UMS on my machine (and upgrade to UMS 14.10.1) to revert to a fresh configuration, with only a basic initial config applied.
As usual, ffmpeg fails to execute in the out-of-box config . I have attached the debug output from the trace.
Just after this, I see mention of supported HW methods including cuda (which I believe is the method used in linux for hwaccel) - so at least the config seems to suggest it is available?
ffmpeg and tsmuxer seem to be terminating and relaunching repeatedly upon trying to play the video too (I am testing with big buck bunny 2160p) - but the video never launches on the device (my Android mobile in this case, playing via bubbleUPNP and MX Player. VLC is no different, but is very clunky to use so I avoid it usually).
I couldn't put all the detail I had hoped into this reply as it kept being marked as spam frustratingly. The log files have it all though.
Have just gone through the complete "refresh" of UMS on my machine (and upgrade to UMS 14.10.1) to revert to a fresh configuration, with only a basic initial config applied.
As usual, ffmpeg fails to execute in the out-of-box config . I have attached the debug output from the trace.
I believe I have set this correctly? Refer to below attachments:
It is using the system supplied version it appears, an Ubuntu-compiled version slightly older than your version.
Just after this, I see mention of supported HW methods including cuda (which I believe is the method used in linux for hwaccel) - so at least the config seems to suggest it is available?
ffmpeg and tsmuxer seem to be terminating and relaunching repeatedly upon trying to play the video too (I am testing with big buck bunny 2160p) - but the video never launches on the device (my Android mobile in this case, playing via bubbleUPNP and MX Player. VLC is no different, but is very clunky to use so I avoid it usually).
Re: UMS on Ubuntu 24.10
Your FFmpeg is working correctly and is able to use the GPU.
I think the reason why it is not being used is that the Google-Android-BubbleUPnP-MXPlayer.conf has not set a transcoding profile so it is using the default (MPEGPS-MPEG2-AC3)
Some of the GPU will be used by FFmpeg but if it was encoding to h264 or h265 then the GPU has dedicated HW for this.
That conf is very old as it was written for UMS V5.2.3 and android 5.1.1 going from the notes in that conf.
If you add this to the conf it should use the GPU properly.
I'm assuming BubbleUPnP/MXplayer supports this now.
That video may not need to be transcoded at all, the only reason why it is transcoding is the resolution has not been set in the conf so anything over 1080p is transcoded.
You can set this by adding
although that video is in a strange resolution to normal 4K so may actually need to be transcoded.
It may also be able to play h265 depending on the device so this may need to be added to the supported formats.
Normally I would say try playing from the #--TRANSCODE--# folder and select "no transcoding" to see if it is able to be streamed, but there is a bug in 14.10.1 where this folder is empty. This has been fixed in 14.11.0
You could disable all transcoding in the settings in the meantime for testing but will be a bit of a pain to keep changing it for each video to see if it works, or you could go back a few versions before this bug crept in.
Another reason why it is not playing at all is there are some exception errors where the duration is negative
This is probably a bug as I have seen similar messages when playing on my PS4 after UMS changed the streaming library, but the video would still play as it would run FFmpeg again.
It may be that instead of reading this a a range between the 2 numbers
it is interpreting this as take one from the other which results in -11
I'll mention this on github.
Have you got any other devices to try playing on? Does the web player work properly and use the GPU?
Code: Select all
net.pms.io.OutputTextLogger configuration: --prefix=/usr --extra-version=3ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-libmfx --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared
net.pms.io.OutputTextLogger libavutil 59. 8.100 / 59. 8.100
net.pms.io.OutputTextLogger libavcodec 61. 3.100 / 61. 3.100
net.pms.io.OutputTextLogger libavformat 61. 1.100 / 61. 1.100
net.pms.io.OutputTextLogger libavdevice 61. 1.100 / 61. 1.100
net.pms.io.OutputTextLogger libavfilter 10. 1.100 / 10. 1.100
net.pms.io.OutputTextLogger libswscale 8. 1.100 / 8. 1.100
net.pms.io.OutputTextLogger libswresample 5. 1.100 / 5. 1.100
net.pms.io.OutputTextLogger libpostproc 58. 1.100 / 58. 1.100
net.pms.io.OutputTextConsumer Hardware acceleration methods:
net.pms.io.OutputTextConsumer vdpau
net.pms.io.OutputTextConsumer cuda
net.pms.io.OutputTextConsumer vaapi
net.pms.io.OutputTextConsumer qsv
net.pms.io.OutputTextConsumer drm
net.pms.io.OutputTextConsumer opencl
net.pms.io.OutputTextConsumer vulkan
Some of the GPU will be used by FFmpeg but if it was encoding to h264 or h265 then the GPU has dedicated HW for this.
That conf is very old as it was written for UMS V5.2.3 and android 5.1.1 going from the notes in that conf.
If you add this to the conf it should use the GPU properly.
Code: Select all
TranscodeVideo = MPEGTS-H264-AC3
That video may not need to be transcoded at all, the only reason why it is transcoding is the resolution has not been set in the conf so anything over 1080p is transcoded.
Code: Select all
net.pms.configuration.RendererConfiguration Resolution 3840x4320 is too high for this renderer, which supports up to 1920x1080
Code: Select all
MaxVideoWidth = 3840
MaxVideoHeight = 2160
It may also be able to play h265 depending on the device so this may need to be added to the supported formats.
Normally I would say try playing from the #--TRANSCODE--# folder and select "no transcoding" to see if it is able to be streamed, but there is a bug in 14.10.1 where this folder is empty. This has been fixed in 14.11.0
You could disable all transcoding in the settings in the meantime for testing but will be a bit of a pain to keep changing it for each video to see if it works, or you could go back a few versions before this bug crept in.
Another reason why it is not playing at all is there are some exception errors where the duration is negative
Code: Select all
TRACE 2025-03-17 00:04:09.258 [jupnp-stream-server-112] net.pms.network.HttpServletHelper Received a request from BubbleUPnP (192.168.50.10:59544):
============================= MEDIA HTTP SERVER REQUEST BEGIN ================================
GET /ums/media/b3688e82-2c9e-3a0e-9f32-a0f2987d7139/196/bbb_sunflower_2160p_30fps_stereo_abl.mp4_transcoded_to.mpg HTTP/1.1
HEADER:
User-Agent: MXPlayer/1.86.0 (Linux; Android 14; en-AU; SM-S908E Build/UP1A.231005.007.S908EXXSCEYB1)
Accept: */*
Range: bytes=9223372034707292147-
Connection: close
Host: 192.168.100.102:50011
Icy-MetaData: 1
============================= MEDIA HTTP SERVER REQUEST END ==================================
TRACE 2025-03-17 00:04:09.259 [jupnp-stream-server-112] net.pms.store.StoreItem Asked stream chunk: ByteRange [start=9223372034707292147, end=9223372034707292158] of bbb_sunflower_2160p_30fps_stereo_abl.mp4 and engine FFmpeg Video (MPEGPS-MPEG2-AC3)
...
...
TRACE 2025-03-17 00:04:09.260 [jupnp-stream-server-112] net.pms.network.mediaserver.servlets.MediaServerServlet Sending 12 bytes.
TRACE 2025-03-17 00:04:09.261 [jupnp-stream-server-112] net.pms.network.HttpServletHelper Transfer response sent to BubbleUPnP (192.168.50.10:59544):
============================= MEDIA HTTP SERVER RESPONSE BEGIN ===============================
HTTP/1.1 206 (non-chunked)
HEADER:
Server: Linux-amd64-6.11.0-19-generic, UPnP/1.0 DLNADOC/1.50, UMS/14.10.1
Date: Sun, 16 Mar 2025 13:04:09 GMT
Content-Type: video/mpeg
Content-Range: bytes 9223372034707292147-9223372034707292158/9223372034707292159
Accept-Ranges: bytes
Connection: keep-alive
Content-Length: 12
============================= MEDIA HTTP SERVER RESPONSE END =================================
TRACE 2025-03-17 00:04:09.261 [jupnp-stream-server-112] net.pms.io.BufferedOutputFileImpl Suspend Read: readCount=9223372034707292147 / writeCount=1425408
INFO 2025-03-17 00:04:09.741 [Thread-66] net.pms.util.SystemErrWrapper Exception in thread "Thread-66" java.lang.IllegalArgumentException: durationMillis must not be negative
INFO 2025-03-17 00:04:09.742 [Thread-66] net.pms.util.SystemErrWrapper at org.apache.commons.lang3.Validate.inclusiveBetween(Validate.java:337)
INFO 2025-03-17 00:04:09.742 [Thread-66] net.pms.util.SystemErrWrapper at org.apache.commons.lang3.time.DurationFormatUtils.formatDuration(DurationFormatUtils.java:358)
INFO 2025-03-17 00:04:09.742 [Thread-66] net.pms.util.SystemErrWrapper at org.apache.commons.lang3.time.DurationFormatUtils.formatDuration(DurationFormatUtils.java:341)
INFO 2025-03-17 00:04:09.742 [Thread-66] net.pms.util.SystemErrWrapper at net.pms.renderers.devices.players.PlayerState.setPosition(PlayerState.java:100)
INFO 2025-03-17 00:04:09.743 [Thread-66] net.pms.util.SystemErrWrapper at net.pms.renderers.devices.players.PlaybackTimer.lambda$start$0(PlaybackTimer.java:54)
INFO 2025-03-17 00:04:09.743 [Thread-66] net.pms.util.SystemErrWrapper at java.base/java.lang.Thread.run(Unknown Source)
TRACE 2025-03-17 00:04:16.762 [jupnp-stream-server-112] net.pms.io.BufferedOutputFileImpl Resume Read: readCount=9223372034707292147 / writeCount=203001856
DEBUG 2025-03-17 00:04:16.763 [jupnp-stream-server-112] net.pms.network.HttpServletHelper Sending stream with premature end: 0 bytes. Reason: written 32768 > 12 content-length
TRACE 2025-03-17 00:04:16.763 [jupnp-stream-server-112] net.pms.network.UmsAsyncListener Stream Async Premature end: written 32768 > 12 content-length, duration: 7502 ms
TRACE 2025-03-17 00:04:16.764 [jupnp-stream-server-112] net.pms.io.ProcessWrapperImpl Ready to Stop: true
TRACE 2025-03-17 00:04:16.764 [jupnp-stream-server-112] net.pms.network.UmsAsyncListener Stream Async Complete, uri: /ums/media/b3688e82-2c9e-3a0e-9f32-a0f2987d7139/196/bbb_sunflower_2160p_30fps_stereo_abl.mp4_transcoded_to.mpg, duration: 7503 ms
WARN 2025-03-17 00:04:16.765 [jupnp-stream-server-112] org.eclipse.jetty.server.Response writeError: status=500, message=java.io.IOException: content-length 12 != 0 written, response=ErrorResponse@6c34bb14{500,GET@986df07 http://192.168.100.102:50011/ums/media/b3688e82-2c9e-3a0e-9f32-a0f2987d7139/196/bbb_sunflower_2160p_30fps_stereo_abl.mp4_transcoded_to.mpg HTTP/1.1}
java.io.IOException: content-length 12 != 0 written
at org.eclipse.jetty.server.internal.HttpChannelState$ChannelCallback.succeeded(HttpChannelState.java:1532)
at org.eclipse.jetty.ee10.servlet.ServletChannel.onCompleted(ServletChannel.java:760)
at org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:426)
at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1507)
at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1500)
at org.eclipse.jetty.ee10.servlet.ServletChannelState.runInContext(ServletChannelState.java:1308)
at org.eclipse.jetty.ee10.servlet.ServletChannelState.complete(ServletChannelState.java:828)
at org.eclipse.jetty.ee10.servlet.AsyncContextState.complete(AsyncContextState.java:61)
at net.pms.network.HttpServletHelper.copyStream(HttpServletHelper.java:295)
at net.pms.network.HttpServletHelper.lambda$copyStreamAsync$0(HttpServletHelper.java:305)
at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1507)
at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1500)
at org.eclipse.jetty.ee10.servlet.AsyncContextState.lambda$start$0(AsyncContextState.java:138)
at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1513)
at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.lambda$execute$0(ContextHandler.java:1530)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
at java.base/java.lang.Thread.run(Unknown Source)
It may be that instead of reading this a a range between the 2 numbers
Code: Select all
Content-Range: bytes 9223372034707292147-9223372034707292158/9223372034707292159
I'll mention this on github.
Have you got any other devices to try playing on? Does the web player work properly and use the GPU?
Logs are important for us to help, Please follow This Link before asking for support. Just a forum cleaner, Will help if I can but no expert.
Re: UMS on Ubuntu 24.10
I only run my Linux Server in headless mode and am just using the onboard GPU which is an Intel UHD Graphics 630.
Re: UMS on Ubuntu 24.10
Legendary response @mik_s! I have updated the BubbleUPNP as you have suggested, but still have errors being reported. I've attached the config file for reference:
What I find very strange, is this same config file works on Windows. No idea why the behaviour changes so much just by a switch to Linux? Looking at the FFMPEG codecs in the UMS package, I didn't see any difference between the system and the included variant - which really just leaves it to HW, which as you suggest is actually working?
I'll test out the web player and try on a different device, with and without transcoding (I had noticed the empty #--TRANSCODE--# folder, I thought this was just due to the video - glad to know this is a known bug that is resolved once 14.11 is out!).
Unfortunately, still unable to play - error code 234, also the negative duration, which makes me wonder if it is somehow involved in this issue? Looking at your comment, it seem the calculation just needs brackets...
Code: Select all
INFO 22:03:20.326 [StartPlaying Event] Started playing bbb_sunflower_2160p_30fps_stereo_abl.mp4 (FFmpeg Video) on your BubbleUPnP
INFO 22:03:21.291 [ffmpeg-3] Process /usr/bin/ffmpeg has a return code of 234! Maybe an error occurred... check the log file
INFO 22:03:22.328 [Thread-71] Exception in thread "Thread-71" java.lang.IllegalArgumentException: durationMillis must not be negative
INFO 22:03:22.328 [Thread-71] at org.apache.commons.lang3.Validate.inclusiveBetween(Validate.java:337)
INFO 22:03:22.328 [Thread-71] at org.apache.commons.lang3.time.DurationFormatUtils.formatDuration(DurationFormatUtils.java:358)
INFO 22:03:22.328 [Thread-71] at org.apache.commons.lang3.time.DurationFormatUtils.formatDuration(DurationFormatUtils.java:341)
INFO 22:03:22.328 [Thread-71] at net.pms.renderers.devices.players.PlayerState.setPosition(PlayerState.java:100)
INFO 22:03:22.328 [Thread-71] at net.pms.renderers.devices.players.PlaybackTimer.lambda$start$0(PlaybackTimer.java:54)
INFO 22:03:22.328 [Thread-71] at java.base/java.lang.Thread.run(Unknown Source)
INFO 22:03:27.019 [ffmpeg-5] Process /usr/bin/ffmpeg has a return code of 234! Maybe an error occurred... check the log file
INFO 22:03:35.646 [ffmpeg-7] Process /usr/bin/ffmpeg has a return code of 234! Maybe an error occurred... check the log file
INFO 22:03:41.295 [ffmpeg-9] Process /usr/bin/ffmpeg has a return code of 234! Maybe an error occurred... check the log file
I just use this video as a kinda "worst case" scenario for this exact reason, since it is in such a weird resolution and is also a little challenging due to 4K.
That explains it... I've heard that both Intel and AMD are MUCH friendlier with Linux than Nvidia! I only went Nvidia due to software requirements for some of the apps I use, but issues like this are usually the result (in Linux at least).
I'll test out the web player and try on a different device, with and without transcoding (I had noticed the empty #--TRANSCODE--# folder, I thought this was just due to the video - glad to know this is a known bug that is resolved once 14.11 is out!).
Re: UMS on Ubuntu 24.10
Web player works, but seems to be using the ffmpeg HLS transcoding, so is using software transcoding on the CPU (FFMPEG HLS Video is reported in the logs, and consumes about 450% CPU during the process with 0% GPU), rendering via Firefox on Android (which is detected properly in UMS also).
I can also confirm, disabling transcoding works in this particular case (I have the codec pack installed and my test phone (Galaxy S22 Ultra) seems to have a good level of HW native decoding support, so this probably helps!). I forgot to mention, weird resolution of the video is due to it being a 3D video. I'm not playing it like this though, I just want to see transcoding work properly for formats that aren't natively supported or on other devices with less capability.
I've attached another trace with the error 234.
I can also confirm, disabling transcoding works in this particular case (I have the codec pack installed and my test phone (Galaxy S22 Ultra) seems to have a good level of HW native decoding support, so this probably helps!). I forgot to mention, weird resolution of the video is due to it being a 3D video. I'm not playing it like this though, I just want to see transcoding work properly for formats that aren't natively supported or on other devices with less capability.
I've attached another trace with the error 234.
Re: UMS on Ubuntu 24.10
Did you try to configure "UMS.conf" to use ffmpeg which is included with UMS.
If not, it would be worth trying that just to check.
It would just be a matter of changing the line in "UMS.conf" from:
ffmpeg_path =
TO
ffmpeg_path = /opt/ums-14.10.1/linux/ffmpeg
** making sure that the "UMS.conf" you are editing is the one at /home/dave/.config/UMS/UMS.conf and NOT the one in /opt/ums/ums-14.10.1.
And restarting UMS.
Or I could sent you a copy of my ffmpeg (which configuration is working) for you to try
If not, it would be worth trying that just to check.
It would just be a matter of changing the line in "UMS.conf" from:
ffmpeg_path =
TO
ffmpeg_path = /opt/ums-14.10.1/linux/ffmpeg
** making sure that the "UMS.conf" you are editing is the one at /home/dave/.config/UMS/UMS.conf and NOT the one in /opt/ums/ums-14.10.1.
And restarting UMS.
Or I could sent you a copy of my ffmpeg (which configuration is working) for you to try
Re: UMS on Ubuntu 24.10
Yes, I forgot to mention - I did try that, but it also didn't work - the below is the result:boss wrote: ↑Tue Mar 18, 2025 12:28 am Did you try to configure "UMS.conf" to use ffmpeg which is included with UMS.
If not, it would be worth trying that just to check.
It would just be a matter of changing the line in "UMS.conf" from:
ffmpeg_path =
TO
ffmpeg_path = /opt/ums-14.10.1/linux/ffmpeg
** making sure that the "UMS.conf" you are editing is the one at /home/dave/.config/UMS/UMS.conf and NOT the one in /opt/ums/ums-14.10.1.
And restarting UMS.
Or I could sent you a copy of my ffmpeg (which configuration is working) for you to try
Code: Select all
ERROR 22:25:46.974 [jupnp-stream-server-106] No Hls configuration to transcode.
ERROR 22:25:52.974 [jupnp-stream-server-106] There is no inputstream to return for bbb_sunflower_2160p_30fps_stereo_abl [FFmpeg HLS Video]