Ushare - UPnP Media Server for Linux
From NAS-Central Buffalo - The Linkstation Wiki
(initial article creation) |
m (→Usage) |
||
| Line 57: | Line 57: | ||
ushare -c /shares | ushare -c /shares | ||
ushare -c /shares1 --content=/shares2 | ushare -c /shares1 --content=/shares2 | ||
| + | |||
| + | ===/etc/ushare.conf=== | ||
| + | <pre> | ||
| + | # Configuration file for uShare | ||
| + | |||
| + | # uShare UPnP Friendly Name (default is 'uShare'). | ||
| + | USHARE_NAME=uShare | ||
| + | |||
| + | # Interface to listen to (default is eth0). | ||
| + | # Ex : USHARE_IFACE=eth1 | ||
| + | USHARE_IFACE=eth0 | ||
| + | |||
| + | # Port to listen to (default is random from IANA Dynamic Ports range) | ||
| + | # Ex : USHARE_PORT=49200 | ||
| + | USHARE_PORT=49200 | ||
| + | |||
| + | # Directories to be shared (space or CSV list). | ||
| + | # Ex: USHARE_DIR=/dir1,/dir2 | ||
| + | USHARE_DIR=/mnt/share/storage | ||
| + | </pre> | ||
| + | |||
| + | ===/etc/init.d/S99ushare=== | ||
| + | <pre> | ||
| + | #!/bin/sh | ||
| + | ### BEGIN INIT INFO | ||
| + | # Required-Start: $local_fs $syslog | ||
| + | # Required-Stop: | ||
| + | # Default-Start: 2 3 4 5 | ||
| + | # Default-Stop: 0 1 6 | ||
| + | # Short-Description: start and stop ushare | ||
| + | # Description: | ||
| + | ### END INIT INFO | ||
| + | |||
| + | PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | ||
| + | DAEMON=/usr/bin/ushare | ||
| + | NAME=ushare | ||
| + | DESC="uShare UPnP A/V Media Server" | ||
| + | PIDFILE=/var/run/ushare.pid | ||
| + | |||
| + | [ -r "/etc/ushare.conf" ] && . /etc/ushare.conf | ||
| + | |||
| + | # abort if no executable exists | ||
| + | [ -x $DAEMON ] || exit 0 | ||
| + | |||
| + | # abort if no shared directory is defined | ||
| + | [ -z "$USHARE_DIR" ] && exit 0 | ||
| + | |||
| + | set -e | ||
| + | |||
| + | checkpid() { | ||
| + | [ -e $PIDFILE ] || touch $PIDFILE | ||
| + | } | ||
| + | case "$1" in | ||
| + | start) | ||
| + | echo -n "Starting $DESC: $NAME" | ||
| + | checkpid | ||
| + | start-stop-daemon --start --quiet --background --oknodo \ | ||
| + | --make-pidfile --pidfile $PIDFILE \ | ||
| + | --exec $DAEMON -- $USHARE_OPTIONS | ||
| + | echo "." | ||
| + | ;; | ||
| + | stop) | ||
| + | echo -n "Stopping $DESC: $NAME" | ||
| + | start-stop-daemon --stop --signal 2 --quiet --oknodo --pidfile $PIDFILE | ||
| + | echo "." | ||
| + | ;; | ||
| + | reload|force-reload) | ||
| + | echo -n "Reloading $DESC: $NAME" | ||
| + | start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile $PIDFILE --e$ | ||
| + | echo "." | ||
| + | ;; | ||
| + | reload|force-reload) | ||
| + | echo -n "Reloading $DESC: $NAME" | ||
| + | start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile $PIDFILE --e$ | ||
| + | echo "." | ||
| + | ;; | ||
| + | restart) | ||
| + | $0 stop | ||
| + | $1 start | ||
| + | ;; | ||
| + | *) | ||
| + | N=/etc/init.d/$NAME | ||
| + | echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 | ||
| + | exit 2 | ||
| + | ;; | ||
| + | esac | ||
| + | |||
| + | exit 0 | ||
| + | |||
| + | </pre> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
{{stubs}} | {{stubs}} | ||
Revision as of 06:57, 30 October 2006
Contents |
Introduction
uShare (http://ushare.geexbox.org/) is a Upnp (TM) A/V Media Server. It implements the server component that provides UPnP media devices with information on available multimedia files. uShare uses the built-in http server of libupnp to stream the files to clients. uShare is written for the GeeXboX project. It is designed to provide access to multimedia contents to GeeXboX but can of course be used by any other UPnP client device. It should compile and run on any modern POSIX compatible system such as Linux uShare is free software - it is licensed under the terms of the GNU General Public License (GPL).
Supported File Formats List
- Video files : asf, avi, dv, divx, wmv, mjpg, mjpeg, mpeg, mpg, mpe, mp2p, vob, mp2t, m1v, m2v, m4v, m4p, mp4ps, ts, ogm, mkv, rmvb, mov, qt
- Audio files : aac, ac3, aif, aiff, at3p, au, snd, dts, rmi, mp1, mp2, mp3, mp4, mpa, ogg, wav, pcm, lpcm, l16, wma, mka, ra, rm, ram
- Image files : bmp, ico, gif, jpeg, jpg, jpe, pcd, png, pnm, ppm, qti, qtf, qtif, tif, tiff
- Playlist files : pls, m3u, asx
- Subtitle files : dks, idx, mpl, pjs, psb, scr, srt, ssa, stl, sub, tts, vsf, zeg
- Various text files : bup, ifo
If you want uShare to support more file formats, simply add its properties in the src/mime.c table. Do not forget to send a patch to update uShare.
Installation
Ipkg (PowerPC)
OpenLink PowerPC only
- Install Ipkg on the Linkstation (for end-users) and enable the NSLU2 Feed: Ipkg Package List: PowerPC
- Install ushare
ipkg install ushare
Compile from Source
- Install the Precompiled C development environment, running on the LS
- Then get the source files install them
wget http://ushare.geexbox.org/releases/ushare-0.9.7.tar.bz2 wget http://ovh.dl.sourceforge.net/sourceforge/upnp/libupnp-1.3.1.tar.gz
Configure, make and install libupnp1.3.1
tar -xvzf libupnp-1.3.1.tar.gz cd libupnp-1.3.1 ./configure make make install
Then configure, make and install ushare
tar -xvjf ushare-0.9.7.tar.bz2 cd ushare-0.9.7 ./configure make make install
Usage
At first you need to be sure that you have setup a multicast route for UPnP messages. If you don't but have a default route attributed, then this later will be used. Otherwise, simply declare a new route for UPnP multicasts (for example using eth0 interface) :
route add -net 239.0.0.0 netmask 255.0.0.0 eth0
uShare runs from the console only. It supports the usual --help option which displays usage and option information.
Options: -n, --name=NAME Set UPnP Friendly Name (default is 'uShare') -i, --interface=IFACE Use IFACE Network Interface (default is 'eth0') -p, --port=PORT Forces the HTTP server to run on PORT -c, --content=DIR Share the content of DIR directory (default is './') -w, --no-web Disable the control web page (enabled by default) -v, --verbose Set verbose display. -D, --daemon Run as a daemon. -V, --version Display the version of uShare and exit -h, --help Display this help
uShare expects at least one directory argument (-c argument), specifying where multimedia files are stored. You should probably also use the -i option to specify which interface uShare should listen on.
ushare -c /shares ushare -c /shares1 --content=/shares2
/etc/ushare.conf
# Configuration file for uShare # uShare UPnP Friendly Name (default is 'uShare'). USHARE_NAME=uShare # Interface to listen to (default is eth0). # Ex : USHARE_IFACE=eth1 USHARE_IFACE=eth0 # Port to listen to (default is random from IANA Dynamic Ports range) # Ex : USHARE_PORT=49200 USHARE_PORT=49200 # Directories to be shared (space or CSV list). # Ex: USHARE_DIR=/dir1,/dir2 USHARE_DIR=/mnt/share/storage
/etc/init.d/S99ushare
#!/bin/sh
### BEGIN INIT INFO
# Required-Start: $local_fs $syslog
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop ushare
# Description:
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/ushare
NAME=ushare
DESC="uShare UPnP A/V Media Server"
PIDFILE=/var/run/ushare.pid
[ -r "/etc/ushare.conf" ] && . /etc/ushare.conf
# abort if no executable exists
[ -x $DAEMON ] || exit 0
# abort if no shared directory is defined
[ -z "$USHARE_DIR" ] && exit 0
set -e
checkpid() {
[ -e $PIDFILE ] || touch $PIDFILE
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
checkpid
start-stop-daemon --start --quiet --background --oknodo \
--make-pidfile --pidfile $PIDFILE \
--exec $DAEMON -- $USHARE_OPTIONS
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
start-stop-daemon --stop --signal 2 --quiet --oknodo --pidfile $PIDFILE
echo "."
;;
reload|force-reload)
echo -n "Reloading $DESC: $NAME"
start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile $PIDFILE --e$
echo "."
;;
reload|force-reload)
echo -n "Reloading $DESC: $NAME"
start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile $PIDFILE --e$
echo "."
;;
restart)
$0 stop
$1 start
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
exit 2
;;
esac
exit 0
| This article is currently a stub. You can help this Wiki by expanding it . This template will categorize articles that include it into Category:Stubs. |

