#!/bin/sh . /etc/rc.config ## by Christian ## ## show in /etc/rc.config ## # DSL (DSL1000; DSL2000; DSL3000; DSL6000; LAN; WLAN11; WLAN54) #STREAMDEV_EXTERN_STREAMQUALITY="WLAN11" # Quality of Mp3 Stream (32bit; 64bit) #STREAMDEV_EXTERN_AUDIO="64" # Cache default 4096 (4096; 8192) #STREAMDEV_EXTERN_CACHE="8192" # Codec lavc, xvid #STREAMDEV_EXTERN_CODEC="xvid" # Frames per second #STREAMDEV_EXTERN_FPS="15" # Aspect (4/3; 16/9) #STREAMDEV_EXTERN_ASPECT="16/9" # Debug (0;1) #STREAMDEV_EXTERN_LOG="1" case "${REMUX_PARAM_QUALITY-$STREAMDEV_EXTERN_STREAMQUALITY}" in "DSL1000") bitrate=75 vbitrate=100 height=104 ;; "DSL2000") bitrate=85 vbitrate=128 height=104 ;; "DSL3000") bitrate=100 vbitrate=250 height=208 ;; "DSL6000") bitrate=150 vbitrate=400 height=320 ;; "WLAN11") bitrate=350 vbitrate=768 height=480 ;; "WLAN54") bitrate=400 vbitrate=2048 height=480 ;; "LAN") bitrate=600 vbitrate=4096 height=600 ;; *) bitrate=600 vbitrate=4096 height=600 ;; esac if [ "$STREAMDEV_EXTERN_ASPECT" = "auto" ]; then width=$(($height*4/3)) scale="scale -zoom -xy $width" else width=$(($height*$STREAMDEV_EXTERN_ASPECT)) scale="scale=$width:$height" fi if [ ! -e /usr/bin/$STREAMDEV_EXTERN_TOOL ]; then echo -ne "Content-type: text/plain\r\n" echo -ne '\r\n' echo "'$STREAMDEV_EXTERN_TOOL' missing! Please install the $STREAMDEV_EXTERN_TOOL addon" exit fi echo -ne 'Content-type: video/mpeg\r\n' echo -ne '\r\n' if [ "$STREAMDEV_EXTERN_LOG" = 1 ]; then LOG="/var/log/externremux.log" else LOG="/dev/null" fi FIFO=/tmp/extremux.$$ mkfifo $FIFO (trap "rm -f $FIFO; kill -9 \$(ps -ww | grep -v grep | grep $FIFO | cut -d ' ' -f 1)" EXIT HUP INT TERM ABRT; cat $FIFO) & command="$(grep "^$REMUX_CHANNEL_NAME" /etc/vdr/plugins/streamdev/externremux_cmd.conf 2>/dev/null | sed "s/.*\t//")" if [ -n "$command" ]; then if [ -z "${command##*#transcode*}" ]; then eval su mlduser -c \"vlc - $command --intf dummy\" &>$LOG else eval mencoder - $command -o $FIFO &>$LOG fi else if [ "$STREAMDEV_EXTERN_TOOL" = "vlc" ]; then STREAMDEV_EXTERN_CODEC=$(test "$STREAMDEV_EXTERN_CODEC" = "h264" && echo "h264" || echo "mpgv") su mlduser -c "vlc - --http-caching='$STREAMDEV_EXTERN_CACHE' --sout='#transcode{vcodec=$STREAMDEV_EXTERN_CODEC,vb=$vbitrate,acodec=mpga,ab=$STREAMDEV_EXTERN_AUDIO,width=$width,height=$height}:duplicate{dst=std{access=file,mux=ps,dst=$FIFO}' --intf dummy" &>$LOG else if [ "$STREAMDEV_EXTERN_CODEC" = "h264" ]; then exec mencoder - -cache $STREAMDEV_EXTERN_CACHE -ovc x264 -srate 22050 -x264encopts bitrate=$bitrate:vbv_maxrate=$vbitrate:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=$STREAMDEV_EXTERN_AUDIO:q=2:mode=3 -vf pp=ci,$scale -ofps $STREAMDEV_EXTERN_FPS -o $FIFO &>$LOG else exec mencoder - -cache $STREAMDEV_EXTERN_CACHE -ovc $STREAMDEV_EXTERN_CODEC -xvidencopts bitrate=$bitrate -lavcopts vcodec=mpeg4:vbitrate=$vbitrate:vhq:keyint=250 -oac mp3lame -lameopts cbr:br=$STREAMDEV_EXTERN_AUDIO -vf $scale -ofps $STREAMDEV_EXTERN_FPS -o $FIFO &>$LOG fi fi fi rm -f $FIFO