StreamTranscoderV3 linux aac patch

I managed to get aac encoding working with StreamTranscoder V3 in Linux!

I tried to send this information directly to the developer but I didn't got an answer. Also I have problems to get an account for his forum, so I post my stuff here and hope that people find it.

_Installation Manual for aac support for StreamTranscoderV3_

For debian based distributions.

Add the following repository to your /etc/apt/sources.list file:

deb http://www.debian-multimedia.org stable main

Install all the necessary libraries and there HEADER files too:

apt-get install libogg0 libogg-dev libvorbis0a libvorbis-dev liblame0
liblame-dev libfaac0 libfaac-dev libfaad0 libfaad-dev libmad0 
libmad0-dev libflac8 libflac-dev automake libtool

Now we have to patch the StreamTranscoder configure.in file: the patch was produced with this command:

diff -u old/configure.in new/configure.in

Save the following patch to a file called “streamTranscoder-aac.patch”:

--- old/configure.in	2006-08-09 06:17:39.000000000 +0200
+++ new/configure.in	2009-10-24 19:26:40.000000000 +0200
@@ -5,9 +5,10 @@
 AM_INIT_AUTOMAKE

 AC_PROG_CC
-#AC_PROG_CXX
+AC_PROG_CXX
 AC_CANONICAL_HOST
 AM_PROG_LIBTOOL
+AC_PROG_RANLIB

 dnl Set some options based on environment
 
@@ -100,6 +101,7 @@
   FAAC_CFLAGS=""
 else
   FAAC_CFLAGS="-DHAVE_FAAC"
+  AC_DEFINE(HAVE_FAAC)
 fi

 CFLAGS="$OLDCFLAGS"

Extract the sources:

tar -xzf streamtranscoderv3-3.1.11.tar.gz

Change directory to the extracted streamTranscoder sources:

cd streamtranscoderv3-3.1.11

Apply the patch:

patch -p1 < ../streamTranscoder-aac.patch

Regenerate the build files:

aclocal -I m4/
autoconf
automake

Compile and install in the normal way:

./configure
make
make install

Change the encoder setting in your config file (in my case /etc/streamTranscoder/streamTranscoder_3.cfg): Encode=AAC

Restart streamtranscoderv3 and check the logfiles for errors.

Finished!

I post here also a nice init script written by me, changes the UID/GID and sets a the nice level to a higher priority than default: /etc/init.d/streamTranscoder restart

Here is my /etc/init.d/streamTranscoder

#! /bin/sh
#
# streamTranscoder
#
#               Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#               Modified for Debian 
#               by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
#               Further modified by Keegan Quinn <ice@thebasement.org>
#               for use with Icecast 2
#               
#               adopted to use with streamTranscoder v3 from oddsock
#               by christoph zimmermann <christoph@bigbeat.ch>
#
### BEGIN INIT INFO
# Provides:          streamTranscoder
# Required-Start:    $net $syslog
# Required-Stop:     $net $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starting StreamTranscoder
# Description:       StreamTranscoder is the swiss army knife of the
streaming server user. ### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/streamTranscoderv3
CONF=/etc/streamTranscoder
NAME=streamTranscoderv3
DESC=streamTranscoderv3

test -x $DAEMON || exit 0

# Defaults
USERID=transcoder
GROUPID=transcoder

#set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \
                --background --chdir $CONF --nicelevel -3 --exec $DAEMON
        echo "$NAME."
        ;;
  stop)
      echo -n "Stopping $DESC: "
        start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
        echo "$NAME."
        ;;
  restart)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \
                 --background --chdir $CONF --nicelevel -3 --exec
$DAEMON echo "$NAME."
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}" >&2
        exit 1
        ;;
esac

exit 0