muhpages v3.0
30Nov/100

Nur noch von 20:00 bis 6:00

Nahmd,
auf Grund der Neuerungen im JMStV werde ich eine Sendezeit für Verbindungen aus Deutschland einführen.

24Mrz/100

Neue xmlrpc.js Version

Nahmd,

hier gibt es die neue Version von xmlrpc.js. Dank einem Hinweis von Stephan Tetzel, konnte ich einen Bug entfernen.

Außerdem werden folgende Bibliotheken benötigt:

14Mrz/100

Navit auf dem Pre

Nahmd,
endlich ist es so weit. Der nächste Urlaub kann kommen. Wie man dem Precentral Forum entnehmen kann, portieren gerade mehrere Leute das Program Navit auf den Pre. Nachzulesen im Precentral Forum.

8Mrz/100

debian.r4w.de (updated)

Nahmd,

mal wieder neue Pakete :)

  • libzmq0_2.0~beta2-1_amd64.deb
  • libzmq-dbg_2.0~beta2-1_amd64.deb
  • libzmq-dev_2.0~beta2-1_amd64.deb
  • zeromq-utils_2.0~beta2-1_amd64.deb
  • libzmq0_2.0~beta2-1_i386.deb
  • libzmq-dbg_2.0~beta2-1_i386.deb
  • libzmq-dev_2.0~beta2-1_i386.deb
  • zeromq-utils_2.0~beta2-1_i386.deb
7Mrz/100

WMA stream zu OGG stream konvertieren

Nahmd,
ich brauchte eine Lösung um einen WMA stream "on the fly" zu einem OGG-Stream zu machen.

Das Skript in einen Pfad für ausführbare Programme legen, das Php Skript in den Webserver packen und den Mount in die Icecast2 Konfiguration hinzufügen. Die einzelnen Pfade müssen vieleicht angepasst werden.

Leider kann momentan nur ein Internerradio diesen Stream anhören. Eigentlich können es beliebig viele, aber leider beendet der 1., welcher den Stream nicht mehr empfängt, das Umwandeln ;)

Benötigt wird folgendes:

  • mplayer
  • icecast2
  • oggenc
  • oggfwd
  • php

Das Skript zum konvertieren

  1. #!/bin/sh
  2.  
  3. export PATH=$PATH:/usr/local/bin
  4.  
  5. STREAM="mms://your.radio.fm/stream.wma"
  6.  
  7. set -e
  8.  
  9. CLIENT=0
  10. if [ "$2" != "" ]; then
  11.     CLIENT=$2
  12. fi
  13.  
  14. if [ "$3" != "" ]
  15. then
  16.     STREAM=$3
  17. fi
  18.  
  19. MD5=$(echo $STREAM | md5sum | cut -d' ' -f1)
  20.  
  21. TEMP=/tmp/chumbybridge/$MD5
  22.  
  23. [ -d $TEMP ] || mkdir -p $TEMP
  24.  
  25. FIFO_MPLAYER=$TEMP/mplayer.fifo
  26. # FIFO_OGGENC=$TEMP/oggenc.fifo
  27.  
  28. LOG_MPLAYER=$TEMP/mplayer.log
  29. LOG_OGGENC=$TEMP/oggenc.log
  30. LOG_OGGFWD=$TEMP/oggfwd.log
  31.  
  32. PID_MPLAYER=$TEMP/mplayer.pid
  33. PID_OGGFWD=$TEMP/oggfwd.pid
  34.  
  35. if [ "$1" = "start" ]
  36. then
  37.     echo "connected $CLIENT" >> $LOG_MPLAYER
  38.  
  39.     [ -e $FIFO_MPLAYER ] && echo "Run $0 stop first!" && exit
  40.     mkfifo $FIFO_MPLAYER || exit 1
  41.  
  42.     mplayer $STREAM -nocache -quiet -ao pcm:file="$FIFO_MPLAYER" >> $LOG_MPLAYER 2>&1 < /dev/null &
  43.     echo $! > $PID_MPLAYER
  44.  
  45.     sleep 0.3
  46.  
  47.     oggenc -Q -q 1 $FIFO_MPLAYER -o - 2>> $LOG_OGGENC | oggfwd localhost 8000 hackme /radio1.ogg >> $LOG_OGGFWD 2>&1 &
  48.     echo $! > $PID_OGGFWD
  49.  
  50.     sleep 0.2
  51.  
  52. elif [ "$1" = "stop" ]
  53. then
  54.     echo ">>> Stopping chumstream player <<<"
  55.     kill $(cat $PID_MPLAYER) 2> /dev/null && \
  56.     kill $(cat $PID_OGGFWD) 2> /dev/null && \
  57.     rm -rf $TEMP || \
  58.     echo "Cannot stop all processes, please look into $TEMP and fix it manually"
  59. else
  60.     echo "Usage:"
  61.     echo "$0 start [CLIENT_ID] [URL]"
  62.     echo "$0 stop"
  63. fi

Die icecast Konfiguration

  1.    <mount>
  2.         <mount-name>/radio.ogg</mount-name>
  3.         <max-listeners>10</max-listeners>
  4.         <burst-size>65536</burst-size>
  5.         <hidden>0</hidden>
  6.         <authentication type="url">
  7.             <option name="mount_add"       value="http://localhost/radio.php"/>
  8.             <option name="mount_remove"    value="http://localhost/radio.php"/>
  9.             <option name="listener_add"    value="http://localhost/radio.php"/>
  10.             <option name="listener_remove" value="http://localhost/radio.php"/>
  11.         </authentication>
  12.     </mount>

Der Php Start/Stop Teil

  1. <?php
  2. if ( $_POST["action"] == 'listener_add' ) {
  3.   $tmp = exec("/usr/local/bin/chumstream.sh start ".$_POST["client"], $result);
  4. } else if ( $_POST["action"] == 'listener_remove' ) {
  5.   $tmp = exec("/usr/local/bin/chumstream.sh stop ".$_POST["client"],  $result);
  6. }
  7. header('icecast-auth-user: 1');
  8. header('icecast-auth-message: OK');
  9. ?>
7Mrz/100

debian.r4w.de (updated)

Nahmd,

mal wieder neue Pakete :)

  • libming1_0.4.3-1_amd64.deb
  • libming-dev_0.4.3-1_amd64.deb
  • libming-util_0.4.3-1_amd64.deb
  • php5-ming_0.4.3-1_amd64.deb
  • python-ming_0.4.3-1_amd64.deb
  • libming1_0.4.3-1_i386.deb
  • libming-dev_0.4.3-1_i386.deb
  • libming-util_0.4.3-1_i386.deb
  • php5-ming_0.4.3-1_i386.deb
  • python-ming_0.4.3-1_i386.deb
  • ming-fonts-dejavu_0.4.3-1_all.deb
  • ming-fonts-opensymbol_0.4.3-1_all.deb
25Feb/100

debian.r4w.de (updated)

Nahmd,

neue Pakete:

  • python-yaml_3.09-1_i386.deb
  • python-yaml-dbg_3.09-1_i386.deb
  • libyaml-dev_0.1.3-1_i386.deb
  • libyaml-0-2_0.1.3-1_i386.deb

Neue Versionen von PyYAML eingebunden.