Configure edcast and get things running at boot

This commit is contained in:
dave 2014-12-13 19:58:32 -08:00
parent 453443bcae
commit d9f63fdacc
5 changed files with 112 additions and 20 deletions

View File

@ -22,6 +22,7 @@ RUN tar zxvf /tmp/edcast-jack-3.1.7.tar.gz ; \
cd edcast-jack-3.1.7/ ; ./configure ; \
cd edcast-jack-3.1.7/ ; make ; \
cd edcast-jack-3.1.7/ ; make install
COPY edcast.cfg /home/rduser/edcast.cfg
# Configure icecast
@ -50,6 +51,7 @@ RUN apt-get update ; \
apt-get -y install rivendell rivendell-server rivendell-doc mysql-server jack-rack jamin jackd qjackctl
COPY rd.conf /etc/rd.conf
COPY init.sh /home/rduser/init.sh
# Install Alsa (is this necessary?)
@ -85,22 +87,3 @@ EXPOSE 8000
# Set boot command
CMD /start
vncserver -geometry 1280x800 :0
#docker build -t rivendell2 .
# TODO: cleanup extra packages like g++, make, etc

46
edcast.cfg Normal file
View File

@ -0,0 +1,46 @@
# Destination server details (to where you are encoding). Valid server types : Shoutcast, Icecast, Icecast2
ServerType=Icecast2
Server=127.0.0.1
Port=8000
ServerPassword=source
ServerMountpoint=/stream
# YP (Stream Directory) Settings
ServerPublic=0
ServerIRC=
ServerAIM=
ServerICQ=
ServerStreamURL=
ServerName=Docker Rivendell Test Stream
ServerDescription=
ServerGenre=Genre
AutomaticReconnectSecs=1
AutoConnect=0
# Output codec selection (Valid selections : MP3, OggVorbis, Ogg FLAC, AAC, AAC Plus)
Encode=MP3
# General settings (non-codec related). Note : NumberChannels = 1 for MONO, 2 for STEREO
BitrateNominal=128
BitrateMin=128
BitrateMax=128
NumberChannels=2
Samplerate=48000
# Ogg Vorbis specific settings. Note: Valid settings for BitrateQuality flag are (Quality, Bitrate Management)
OggQuality=0
OggBitrateQualityFlag=Quality
# LAME specific settings. Note: Setting the low/highpass freq to 0 will disable them.
LameCBRFlag=1
LameQuality=1
LameCopywrite=0
LameOriginal=0
LameStrictISO=0
LameDisableReservior=0
LameVBRMode=vbr_abr
LameLowpassfreq=0
LameHighpassfreq=0
LAMEPreset=0
# AAC (FAAC) specific settings.
AACQuality=100
AACCutoff=
# Log Level 1 = LOG_ERROR, 2 = LOG_ERROR+LOG_WARNING, 3 = LOG_ERROR+LOG_WARNING+LOG_DEBUG
LogLevel=1
# Log File
LogFile=/dev/null

38
init.sh Normal file
View File

@ -0,0 +1,38 @@
#!/bin/bash
sleep 5
/etc/init.d/apache2 start
# Wait for mysql to come online
while [ "`ps aux | grep mysqld_safe | grep -v grep | wc -l`" -eq 0 ] ; do
sleep 1
done
# Create rivendell database if it doesn't exist
DBS=`echo "show databases ; " | mysql -u root -proot | grep Rivendell | wc -l`
if [ $DBS -eq 0 ] ; then
# Assume this is a first run and do some other stuff
chmod 777 /var/run/rivendell/
chown -R rduser /var/snd
DISPLAY=:0 rdadmin --check-db --mysql-admin-user=root --mysql-admin-password=root --mysql-admin-hostname=127.0.0.1 --mysql-admin-dbname=Rivendell
fi
rdadmin --check-db
# Start gui apps
su -c "DISPLAY=:0 rdairplay &" rduser
su -c "DISPLAY=:0 jamin &" rduser
sleep 5
# Disconnect jamin from system audio
su -c "jack_disconnect jamin:out_L system:playback_1" rduser
su -c "jack_disconnect jamin:out_R system:playback_2" rduser
# Connect rivendell to jamin
su -c "jack_connect rivendell_0:playout_0R jamin:in_R" rduser
su -c "jack_connect rivendell_0:playout_0L jamin:in_L" rduser

13
start
View File

@ -1,3 +1,14 @@
#!/bin/bash
supervisord
# Clear any stranded lock files
rm -rf /tmp/.X*
rm -f /home/rduser/.rdairplaylock
# start vnc
su -c "vncserver -geometry 1280x800 :0" rduser
# Rivendel init
/home/rduser/init.sh &
# start services
supervisord

View File

@ -9,3 +9,17 @@ autorestart=true
[program:sshd]
command=/usr/sbin/sshd -D
autorestart=true
[program:mysql]
command=/usr/bin/mysqld_safe
autorestart=true
[program:jackd]
command=/usr/bin/jackd -r -t2000 -ddummy -r48000 -p1024
user=rduser
autorestart=true
[program:edcast]
command=/usr/local/bin/edcast_jack -c /home/rduser/edcast.cfg -n stream -p jamin:out_
user=rduser
autorestart=true