SVXLink goes Internetradio ?

  • Hallo zusammen,

    da mich nun schon einige OM's darauf angesprochen haben die ab und zu auch nur mal so dem Relais-Treiben zuhören möchten,
    wollte ich hier mal fragen ob es eine Möglichkeit gibt die Audio von SVXLink über z.B. einen Shoutcast oder Icecast Server zu übertragen.

    Ein fertiges Modul o.ä. habe ich derzeit nicht gefunden, es wäre natürlich schön wenn SVXLink direkt mit dem Broadcast-Server kommunizieren könnte.


    Die Variante die Audio(Analog) abzugreifen und dann mit einem 2.Rechner zu Streamen finde ich, kurz und knapp,
    uncool :| und steht desshalb nicht zur Diskussion :mrgreen:

  • Hallo svxlink user ;)

    Gibt es auf dem Gebiet hier etwas neues, eine Mithörfunktion würden wir auch gerne auf DL0RI nutzen ;)

    Wir haben einige OMs die von weiterweg gerne auf der OV-Freuquenz lauschen würden.

    73 de Ralf, DH1FR

  • Hallo Adi,

    ja so eine "Shoutcast-Schnittstelle" wäre schon etwas schönes. :arrow: "anstubs"

    Mit diesem PulseAudio-Kram hab ich es auch schon versucht aber irgendwie will das nicht funktionieren, wäre schön wenn du da mal ein paar minuten für über hättest.
    Im Prinzip würde es mir ja schon reichen wenn ich ein Audio-Device hätte was nicht blockiert wird. Svxlink muss ja nicht unbedingt selber streamen, auch wenn das die perfekte methode wäre, nur muss man dann ja auch das ganze Shoutcast-Handling ins SVXLink einbauen.

    Habe Icecast übrigens verworfen, da mein I-Net Radio kein OGG-Codec kann :cry: , und Shoutcast funktioniert sofort out of the box.


    73, de do6ep

  • Moin moin,

    na ja so richtig gibt es da leider nix neues. Ich behalte es mal im Hinterkopf, besser wäre es allerdings, wenn Ihr es mal als Ticket hinterlegt, damit es nicht in Vergessenheit gerät.
    http://sourceforge.net/apps/trac/svxlink/report
    Die Umsetzung ist auch nicht ganz trivial und die Anzahl der Programmierer bei diesem Projekt ist leider auch sehr übersichtlich.
    Momentan bin ich noch beim Linking, dann will jemand FMS, meine Phone-Logic muß ich noch nachziehen und vorher eine globale Authentifizierung einführen, damit das auch alles abgesichert werden kann, eine Codec2-Implementierung wäre noch sehr interessant (zumindest für mich)....
    Es tut sich schon was, nur halt etwas langsam.

    73's de Adi, DL1HRC

  • Malzeit,

    so habe nun wie gewünscht schonmal ein Ticket angelegt: https://sourceforge.net/apps/trac/svxlink/ticket/22

    Hoffe nur das man mir mein exotisches Englisch vergibt und überhaupt versteht was ich da will. :oops:

    Ich werde mich auch nochmal an der PulseAudio-Variante versuchen und wenn ich da etwas brauchbares zum laufen bekomme könnte ich hier vorübergehend mal eine Anleitung verfassen.

    73, de do6ep

  • Hi,

    also am Anfang habe ich mir da auch immer 'nen Kopp gemacht nur sollte doch in unseren Kreisen der Inhalt doch wichtiger sein als die Sprachperfektion. Ich lerne es eh nicht mehr in meinem Alter. Und was nützt bei einem konkreten Problem eine in perfektem Oxford-Englisch formulierte nichtssagende Phrase ;)

    Dieses Streaming ist schon interessant und ich denke auch wichtig. Aber da habe ich definitiv keine Erfahrungen.
    Nur so eine Idee: Ich hatte mal vor einiger Zeit was mit Pseudo-tty's gemacht, das war recht einfach. Man hatte einen daemon, der einfach die Daten von /dev/ttyS0 nach /dev/pty0 umgeleitet hat. Wenn man so was 1:1 auf Audiodaten/-streams übertragen könnte, dann müßte SvxLink eigentlich nur dieses Device erzeugen und parallel zur internen Verarbeitung die Daten dahin senden. Dort könntest Du Deinen Icecast oder was auch immer drauf ansetzen. So was geht doch sicher auch mit Audiodaten, oder? Dann muß man kein pulseaudio-Kram etc installieren usw. Hat da jemand Ahnung von Euch?

    vy 73's de Adi, DL1HRC

  • jaja, ich sehe schon, alles muß man selber machen....
    So, ich habe jetzt eine Lösung, ist allerdings noch nicht optimal. Ich verwende hier Ices und Icecast. Zur Konfiguration beider Apps siehe Internet.

    Das Problem ist, dass Ices leider nur das Capture-Device anspricht und nicht das Playback-Device. Die Lösung hierfür ist, eine zweite Soundkarte (es reicht eine 4.95€-USB Soundkarte von eBay), bei der man den Lautsprecher- mit dem Mikrofoneingang verbindet.

    In der svxlink.conf definiert man nun einen Multi-TX und konfiguriert einmal einen Sounkartenausgang für den TX des Repeaters und den anderen Soundkartenausgang (der USB-Karte) als LocalTX. Auf Letztern setzt man nun den Ices an, der vom Capture-Device der zweiten Soundkarte die Audiodaten liest.

    Diese Variante funktioniert zwar, sie gefällt mir persönlich aber nicht. Eine bessere Variante wäre das snd_aloop-Modul zu verwenden, welches eine virtuelle Soundkarte kreiert. Das gibt es aber offenbar erst ab Kernelversion 2.6.37. Ich werde sicher mittelfristig mal das System upgraden und dann mal probieren ob es so eleganter (ohne zweite Karte) funktioniert.
    Momentan teste ich noch etwas mit dieser Zwischenlösung und wenn es dann sicher funktioniert stelle ich was unter Tips+Tricks

    73's de Adi, DL1HRC

  • Hallo Adi,

    ja, bei mir bisher auch ähnlich, habe zwa diesen Pulse-Audio Kram zum laufen gebracht, war eigendlich auch garnicht so schwehr. Da bei uns openSuSE 11.3 leuft wo Pulse-Audio schon mit Installiert wird brauchte ich halt nur das tolle "setup-pulseaudio" Script ausführen und dann Svxlink sowie den Shoutcast-Transcoder per "padsp" starten.
    Jedoch kann ich dann halt auch nur das Capture-Device und nicht das Playback-Device wählen.

    Desshalb war ich vorerst noch der Meinung solange da nix funzt warte ich halt noch mit dem Bericht.

    Momentan habe ich auch nur so eine Behelfslösung mit nem zusätzlichen Alix3d3 PC :cry: , mit einer Sound-Karte wäre schon cool.

    73, do6ep

  • Hi Mathias,

    gibt's im Duisburger Hafen eigentlich diesen leckeren Spanier noch?
    BTW: Habe was bzgl. Streaming online gestellt. Ist nur als 'ne Zwischenlösung anzusehen, nicht perfekt.

    73's de Adi, DL1HRC

  • Hi Adi,

    hmmm, keine Ahnung obs den Spanier noch gibt, leider kenne ich den nicht, komme ja aus Oberhausen und kenne mich in Duisburg nur begrenzt aus.

    Hab mir das ganze nochmal durch den Kopf gehen lassen, aber da ich es halt nicht so mit C und/oder TCL habe komme ich da irgendwie nicht so ganz weiter hoffe du kannst das vielleicht (leicht(er ?) ?) umsetzen.

    Ich hatte gerade folgende Idee zu unserem Problem:

    In SvxLink gibt es ja bisher 2 audio device typen "alsa" und "oss", wenn man hier noch ein weiteren Typ hinzufügt z.B. "file" oder "stream" wie auch immer, dann hätte man die Möglichkeit dieses z.B. beim 2.TX zu wählen:

    [STREAM-Tx]
    TYPE=Local
    AUDIO_DEV=file:/tmp/svx-stream
    ...

    Vorzugsweise sollte die entstehende Datei dann wie ein ringbuffer funktionieren
    (vielleicht mit passender ring_buffer_size Variable in der Config), damit die Datei nicht ins unendliche anwächst.
    Möglicherweise braucht man dann noch zusätzliche Variablen in der Config um das Ausgabe-Format der datei einzustellen,
    z.B. RAW, oder was die Streaming-Clients dann halt verarbeiten können.

    Dann sollte es doch eigendlich möglich sein, die Ausgabe-Datei per Streaming-Client (bei mir halt vorzugsweise sc_trans) zu streamen.

    Habe da auch noch etwas anderes gefunden was vielleicht helfen könnte:
    http://stackoverflow.com/questions/6841…d-card-in-linux
    Wenn ich das soweit richtig verstanden habe dann soll das ein virtueller OSS-Device Treiber sein.


    So, das muss nun erstmal an Inspiration reichen, ich muss langsam ins Bett habe Morgen(ehm Nacher) in Neukirchen-Vluyn noch nen Lehrgang bei TROX (Brandschutzklappen), :? , nicht das ich da noch einschlafe bei den tollen Videos :)

    73, de do6ep

  • Hi Mathias,

    das geht auch irgendwie mit Alsa (asound.conf):

    Code
    pcm.writeFile {
        type file
        format "raw"
        slave {
            pcm card0
        }
        file "/tmp/alsafile.raw"
    }

    Hab's aber noch nicht probiert. Das gefällt mir auch nicht so richtig, Schließlich kratzt er dann ja ständig auf der Platte rum und in einigen Geräten habe ich nur CF-Cards. Werde wohl doch mal was neues zum Test aufsetzen.

    73's de Adi, DL1HRC

  • Den schnipsel in die fstab rein und schon kratzt er nicht mehr auf der Platte rum sondern in der ramdisk. Selbige wird dann max. 25% des verfügbaren Rams einnehmen.

    Code
    none /tmp tmpfs defaults,size=25% 0 0

    Grüße Martin, DF1AMB

  • Hallo zusammen,

    habe diese alsa-Lösung auch schon im WWW entdeckt, allerdings entsteht dann doch eine stetig anwachsende Datei die womöglich auch noch konvertiert werden muß bevor sie von Ices/sc_trans gefressen wird.

    Oder hab ich da etwas falsch verstanden ?

    Ich würde daher falls realisierbar z.B. die ring-buffer-Variante vorziehen.

    Die dauernden Lese- /Schreibzugriffe in den Ram zu verlagern bin ich noch garnicht drauf gekommen.

    Was ich vielleicht noch in meinem Fall vergessen habe, es wäre natürlich schön wenn eine in SvxLink integrierte Lösung auch an einem Net-Trx anzuwenden wäre, dann muss ich nicht unbedingt den Haupt-Relais-Rechner belasten (Strom/Rechenleistung/Ausfallrisiko) bzw. ich "Bastle" dann auch lieber am heimischen "Sekundär-System" als am "Produktiv-System".

    73, de do6ep