QR Code

Veröffentlicht heute in Blogosphere von muhgatus

Nahmd,

QR-Codes sind schon was tolles und nun auch hier zu bewundern. Hier gibt es die Software für das Handy, um sie zu lesen!

Neue xmlrpc.js Version

Veröffentlicht am 24. März 2010 in Computer,Programmiersprachen von muhgatus

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:

Navit auf dem Pre

Veröffentlicht am 14. März 2010 in Blogosphere,Computer von muhgatus

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.

debian.r4w.de (updated)

Veröffentlicht am 8. März 2010 in Computer,Linux von muhgatus

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

WMA stream zu OGG stream konvertieren

Veröffentlicht am 7. März 2010 in Computer,Linux,PHP,Programmiersprachen von muhgatus

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. ?>

debian.r4w.de (updated)

Veröffentlicht am 7. März 2010 in Computer,Linux,PHP,Programmiersprachen,Python von muhgatus

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