Reply To: ssc: Cannot find any streams – ERROR message

#16550
fizze
Participant

Generally, I had a couple of ogg files that refused to play with oggdec, but worked fine through ogg123.
So i just reworked the mt-daapd-ssc.sh script to use ogg123 instead. And voila – they all play nicely.

Heres my version of the script, adapted for uNSLUng:


#!/opt/bin/bash
#
# script to facilitate server-side transcoding of ogg files
#
#
# Usage: mt-daapd-ssc.sh
#
# You may need to fix these paths:
#

WAVSTREAMER=/opt/bin/wavstreamer
#OGGDEC=/opt/bin/oggdec
OGGDEC=/opt/bin/ogg123
FLAC=/opt/bin/flac
ALAC=/opt/bin/alac
FFMPEG=/opt/bin/ffmpeg

alac_file() {
$ALAC "$FILE" | $WAVSTREAMER -o $OFFSET $FORGELEN
}

ogg_file() {
# $OGGDEC --quiet -o - "$FILE" | $WAVSTREAMER -o $OFFSET $FORGELEN
$OGGDEC -d wav -f - "$FILE" | $WAVSTREAMER -o $OFFSET $FORGELEN
}


flac_file() {
$FLAC --silent --decode --stdout "$FILE" | $WAVSTREAMER -o $OFFSET $FORGELE
}

ffmpeg_file() {
$FFMPEG -vn -i "$FILE" -f wav - | $WAVSTREAMER -o $OFFSET $FORGELEN
}

FILE=$1
OFFSET=0

if [ "$2" == "" ]; then
OFFSET=0
else
OFFSET=$2
fi


if [ "$3" != "" ]; then
FORGELEN="-l $3"
fi

if ( echo $1 | grep -i ".ogg$" > /dev/null 2>&1 ); then
ogg_file
exit;
fi

if ( echo $1 | grep -i ".flac$" > /dev/null 2>&1 ); then
flac_file
exit;
fi


if ( echo $1 | grep -i ".m4a$" > /dev/null 2>&1 ); then
alac_file
exit;
fi

if ( echo $1 | grep -i ".wma$" > /dev/null 2>&1 ); then
ffmpeg_file
exit;
fi

#
# here you could cat a generic "error" wav...
#
#
# cat /path/to/error.wav
#

I commented out the original stuff, the script itself is pretty generic, but the paths at the beginning have to be adjusted.