Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

For help and support with Linux-specific issues
Forum rules
Please make sure you follow the Problem Reporting Guidelines before posting if you want a reply
boss
Posts: 202
Joined: Thu Jun 30, 2016 1:07 pm

Re: Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

Post by boss » Tue Jan 01, 2019 11:00 pm

UMS is meant to work with javs 7 but they recommend java 8.
I use java 8 and it wouldnt hurt to update your java version to 8.

What about your startup (init) script. Just a long shot but probably worth taking a look at.
I have my linux paths (inc /usr/bin) in my startup script for UMS.

Amadeus
Posts: 21
Joined: Fri Oct 09, 2015 10:06 pm

Re: Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

Post by Amadeus » Wed Jan 02, 2019 5:58 am

I'm using the start-up script that comes with UMS 7.7.1 with no modifications.

Also, I updated to java 8 and it's still giving the same warning about permissions. (However, as I mentioned before, it appears to be working as intended.)

Code: Select all

apollo::root:~> java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.18.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
I'm going to try compiling and running from source on this Linux box and see if I can track down what's causing the warning. Thanks.

Amadeus
Posts: 21
Joined: Fri Oct 09, 2015 10:06 pm

Re: Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

Post by Amadeus » Wed Jan 02, 2019 12:53 pm

OK, I dug around in the source and finally discovered the cause of the "permissions error" message. The reason is that custom paths set in the config file need to include the binary file name. So, for example:

Code: Select all

# Path to dcraw (absolute or relative from project.binaries.dir)
# Default:
# Win: win32/dcrawMS.exe
# Mac: osx/dcraw
# Linux: dcraw + system PATH
dcraw_path = /usr/bin/dcraw
In other words, the setting for dcraw_path (and all of the other binary paths) must end with the actual binary file. "/usr/bin" won't work -- it has to be "/usr/bin/dcraw", etc.

I created a pull request to add Examples to the UMS.conf file so that this is more obvious: https://github.com/UniversalMediaServer ... /pull/1740

boss
Posts: 202
Joined: Thu Jun 30, 2016 1:07 pm

Re: Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

Post by boss » Wed Jan 02, 2019 2:20 pm

Stupid me. My error about giving you the paths without the file name. I had to do that as well in a previous version when I had that problem.

I don't think UMS comes with a startup script. The startup script I'm talking about is one which would go in /etc/init.d. I don't use Ubuntu but I think the startup scripts are in the same place. If you name the startup script ums then /etc/init.d/ums would start UMS.

THIS IS MINE

#!/bin/bash
### BEGIN INIT INFO
# Provides: ums
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts UMS program.
# Description: Java Upnp Media Server dedicated to PS3
### END INIT INFO

#set -x

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Universal Media Server"
NAME=ums
UMS_PROFILE=/root/.config/UMS/UMS.conf You would change this to where your UMS.conf file is.
DAEMON=/opt/ums/ums/UMS.sh You would change this to where your UMS.sh file is.
DAEMON_OPTS="console"
LOGFILE=/var/log/UMS/root/debug.log You would change this to where your log file is.
SCRIPTNAME=/etc/init.d/ums
UMS_START=1 # Wether to start or not UMS ver at boot time.
DODTIME=30 # Time to wait for the server to die, in seconds.
# If this value is set too low you might not
# let the program to die gracefully and 'restart' will not work

test -x $DAEMON || exit 1

# Include ums defaults if available
if [ -f "/etc/default/$NAME" ] ; then
. /etc/default/$NAME
fi

# May we run the init.d script ?
[ $UMS_START = 1 ] || exit 1

#--------------------------------------------------------------------------
# Some color codes
txtred=$'\e[0;31m' # Red
txtylw=$'\e[0;33m' # Yellow
txtrst=$'\e[0m' # Text Reset
#--------------------------------------------------------------------------
warnout(){
echo >&2 -e ""$txtylw"Warning:$txtrst $1"
}
#--------------------------------------------------------------------------
running(){
pid=`pgrep -f 'java .*ums.jar.*'`
}
#--------------------------------------------------------------------------
do_start(){
running && { warnout "$NAME is already running !"; exit 0; }
echo "Starting $DESC : $NAME"
UMS_PROFILE="$UMS_PROFILE" start-stop-daemon --start --quiet --background --oknodo \
--exec $DAEMON -- $DAEMON_OPTS

}
#--------------------------------------------------------------------------
do_stop(){
running || { warnout "$DESC is NOT running !"; exit 0; }
local countdown="$DODTIME"
echo -e "Stopping $DESC : $NAME \c "
kill -9 $pid
while running; do
if (($countdown >= 0)); then
sleep 1; echo -n .;
((--countdown))
else
break;
fi
done
echo
# If still running, then try to send SIGINT signal
running && { \
echo >&2 "Using kill -s SIGINT instead"; \
echo >&2 "If you see this message again, then you should increase the value of DODTIME in '$0'."; \
kill -2 $pid; \
}

if [ -e "$LOGFILE" ]; then
count=7
while [ $count -ge 1 ]
do
if [ -e "$LOGFILE.$count" ]; then
plus=$((count+1))
mv "$LOGFILE.$count" "$LOGFILE.$plus"
fi
count=$((count-1))
done
if [ -e "$LOGFILE" ]; then
mv "$LOGFILE" "$LOGFILE.1"
fi
fi

return 0
}
#--------------------------------------------------------------------------
do_force-stop(){
running || { warnout "$NAME is NOT running !"; exit 0; }
echo "Stopping $DESC : $NAME"
kill -9 $pid
if [ -e "$LOGFILE" ]; then
count=8
while [ $count -ge 1 ]
do
if [ -e "$LOGFILE.$count" ]; then
plus=$((count+1))
mv "$LOGFILE.$count" "$LOGFILE.$plus"
fi
count=$((count-1))
done
if [ -e "$LOGFILE" ]; then
mv "$LOGFILE" "$LOGFILE.1"
fi
fi
}
#--------------------------------------------------------------------------
do_status(){
echo -n " * $DESC : $NAME is "
( running || { echo "NOT running "; exit 0; } )
( running && { echo "running (PID -> $(echo $pid))"; exit 0; } )
}
#--------------------------------------------------------------------------
case "$1" in

start|stop|force-stop|status)
do_${1}
;;
restart|reload)
do_stop
do_start
;;
force-restart|force-reload)
do_force-stop
do_start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|force-stop|restart|force-restart|reload|force-reload|status}"
exit 1
;;
esac


Cheers.

Amadeus
Posts: 21
Joined: Fri Oct 09, 2015 10:06 pm

Re: Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

Post by Amadeus » Wed Jan 02, 2019 3:07 pm

Oh yea, that's a nice script ..I'll use that.

Honestly, I had just been using the shell script that comes with UMS:

Code: Select all

UMS.sh &

boss
Posts: 202
Joined: Thu Jun 30, 2016 1:07 pm

Re: Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

Post by boss » Wed Jan 02, 2019 3:15 pm

Sorry, it shound have been:
/etc/init.d/ums start to start UMS
/etc/init.d/ums stop to stop UMS
/etc/init.d/ums restart to restart UMS

These are the commands which are available with the script:
echo "Usage: $SCRIPTNAME {start|stop|force-stop|restart|force-restart|reload|force-reload|status}"

Patch
Posts: 13
Joined: Sat Aug 25, 2012 1:50 pm

Re: Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

Post by Patch » Fri Jan 04, 2019 7:27 am

Just a note to add.

I have noticed that during the installation of UMS depending on how you run it, either as a sudo user or as the root, it is looking for the .conf file in different places.
You can see this by running the script not as SUDO and it will give you an error about where it is looking for the .conf file.
When I would run it local user I would get differing configurations.

Indeed after inspection I found that there were seperate configuration files in 3 locations:
/usr/ums/UMS.conf
/usr/$user/.config/UMS/UMS.conf
/root/.config/UMS/UMS.conf

I ended up looking at the second two which only had the entries in them created by the wizard. I transferred those settings to the one in the install folder so that I only need to manage one .CONF and make a backup of it.
If you run this make sure you backup your files if you setup different configurations there.
If you use separate configurations when running locally than when you run as a service you will NOT want to do this.

Code: Select all

sudo rm /root/.config/UMS/UMS.conf
rm /home/$user/.config/UMS/UMS.conf
sudo ln -s /usr/ums/UMS.conf /root/.config/UMS/UMS.conf
sudo ln -s /usr/ums/UMS.conf /home/$user/.config/UMS/UMS.conf

MovieFrek
Posts: 9
Joined: Mon Jan 07, 2019 11:12 am

Linux Mint 19.1 tsmuxer

Post by MovieFrek » Mon Jan 07, 2019 11:44 am

I have same problem. Installed this yesterday and error comes that TSMUXER 32 bits cannot be found and is red.
Well I run 64 bits and the tsmuxer 64bits is in the Linux folder as a binary, so I am confused.....................
Also I had to install Java 11 as this was not mentioned in the documentation..............missing info...................half the info.
Menconder had to install manually.

I then tried to send 2 films to the Sony TV, one 9 gigs the other is 4 gigs, both in same folder, both H264 in a Matroska container.
The 9 gigs one comes with error cannot connect, the other works.

Tried under Windows 10, both work from a laptop in much inferiors conditions......

Any ideas?

MovieFrek
Posts: 9
Joined: Mon Jan 07, 2019 11:12 am

Re: Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

Post by MovieFrek » Mon Jan 07, 2019 12:29 pm

YES !, it is an issue with 7.7.1 ! Put it yesterday in Ubuntu Mint 19.1 and same story plus other things.

Sorry, but is a reality. It also looks for tsMuxer 32 bits...............why?

Install instructions contained in the download are extremely poor.



Amadeus wrote:
Tue Jan 01, 2019 8:08 pm
Thanks!! I'm definately using 7.7.1 and UMS was not automatically finding the binaries. However, I removed the symbolic links and edited the configuration file as you mentioned and it fixed all of them except VLC. There were some warnings, which I'll mention below, but at least UMS is finding most of the binaries now.

I have three bits of information to share:

ONE:
I made the adjustments to UMS.conf that you mentioned. It helped with most of the applications (other than VLC, which I'll mention below); however, I'm now getting these warnings (I'm not sure if it's something to worry about or not):

Code: Select all

WARN  01:57:05.537 [main] Insufficient permission to execute "/usr/bin" for transcoding engine VLC Video
WARN  01:57:05.539 [main] Transcoding engine "VLC Video" is not available
WARN  01:57:05.543 [main] Insufficient permission to execute "/usr/ums/linux" for transcoding engine tsMuxeR Video
INFO  01:57:05.550 [main] Transcoding engine "tsMuxeR Video" is available
WARN  01:57:05.553 [main] Insufficient permission to execute "/usr/bin" for transcoding engine DCRaw
INFO  01:57:05.554 [main] Transcoding engine "DCRaw" is available
Please note that all of my directory permissions for /usr/bin and /usr/ums/linux are the defaults. I am currently logged in as root though -- could running it as root cause problems?

TWO:
I have VLC installed (/usr/bin/vlc and /usr/bin/vlc-wrapper both exist), and I have this setting in my UMS.conf:

Code: Select all

# Path to VideoLAN (absolute or relative from project.binaries.dir)
# Default:
#     Win: videolan/vlc.exe
#     Mac: /Applications/VLC.app/Contents/MacOS/VLC
#     Linux: vlc + system PATH
vlc_path = /usr/bin
However, it's showing as not available:

Code: Select all

WARN  01:57:05.539 [main] Transcoding engine "VLC Video" is not available
WARN  01:57:05.542 [main] Transcoding engine "VLC Web Video" is not available
WARN  01:57:05.551 [main] Transcoding engine "VLC Web Audio (Legacy)" is not available
WARN  01:57:05.551 [main] Transcoding engine "VLC Web Video (Legacy)" is not available
THREE:
Since you mentioned that UMS comes with txmuxer, I went to that directory and tried running the binary. I got the following error, which is presumably because it's a 32-bit binary: "error while loading shared libraries: libfreetype.so". Anyway, I googled around and found the following solution (which worked) and I thought you might want to include it in your installation documentation. Or, if there is another or better solution, feel free to correct me!

Code: Select all

sudo apt-get install libgtk2.0-0:i386 libidn11:i386 libglu1-mesa:i386

boss
Posts: 202
Joined: Thu Jun 30, 2016 1:07 pm

Re: Ubuntu 18.04 -> 'tsmuxer' (and others) is not available

Post by boss » Mon Jan 07, 2019 12:42 pm

@MovieFrek
Can you follow the instructions here:
https://www.universalmediaserver.com/fo ... ?f=9&t=556
and post your log file.

Post Reply