Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 20

Thema: [@rec] im MP3-Format

  1. #1
    Registriert seit
    21.08.2005
    Beiträge
    251

    [@rec] im MP3-Format

    Kann man unter Monitor die sox-Parameter ändern, so dass die [@rec]-Anweisung nicht wav, sondern mp3 aufzeichnet ?

    Hintergrund:
    Ich will eine Zeit lang alle eingehende ZVIE-Alarmierungen aufzeichnen, um später anhand der gesprochenen Meldung die jeweilige Feuerwehr zu einer Schleife zuordenen zu können. (die Arbeit könnte ich mit ersparen, wenn jemand die Schleifennummern der Feuerwehren im Landkreis Ebersberg hat. Auf dieser Site sind sie jedenfalls nicht hinterlegt)

    Leider braucht die Aufzeichnung im WAV-Format recht viel Speicher. Ich würde daher gerne die Meldungen als MP3 aufzeichnen.

    Ich habe auf meinem Testrechner zuerst lame und dann sox eingerichtet. Damit kann sox auch mp3s erstellen, allerdings müßte man dazu Parameter übergeben.

    Danke für Tipps.
    System: Toshiba Satelite Pro 4300, Ubuntu 5.04,

  2. #2
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Es gibt noch die Parameter:

    REC_COMD = Programm, das gestartet wird
    REC_SUFF = Dateisuffix, der Datei, die geschrieben wird
    REC_ARGS = Programmargumente für sox

    Vorbelegungen der Werte:

    REC_COMD= sox
    REC_SUFF = .wav
    REC_ARGS= -c 1

  3. #3
    Registriert seit
    14.07.2002
    Beiträge
    188
    Ich hatte das damals einfach gebaut, dass ein Script jede 5 Minuten in das Verzeichnis hineinschaut und wenn es eine Wave-Datei findet, diese über Lame in mp3 umwandelt und wegsortiert.

  4. #4
    Registriert seit
    18.08.2003
    Beiträge
    629
    hast du das script noch?
    Wer Engel aus der Hölle holt, braucht Teuflisch gute Schuhe

    HAIX FireFlash -PRO- mit dem neuen patentiertem Schnürsystem

  5. #5
    Registriert seit
    10.12.2003
    Beiträge
    3.902
    Original geschrieben von testman
    hast du das script noch?
    Ich hätte es als Batchdatei ;-)

    Wenns dir was hilft, kann ichs dir gerne schicken.
    Felix
    felix[null][null][null]@funkmeldesystem.de

  6. #6
    Registriert seit
    07.09.2003
    Beiträge
    694
    Hallo,

    pack es doch bitte hier hinein. Wäre vielleicht für mehrere von Vorteil.

    Danke,
    Funkwart

  7. #7
    Registriert seit
    19.02.2006
    Beiträge
    1.092
    Zitat Zitat von funkwart
    Hallo,

    pack es doch bitte hier hinein. Wäre vielleicht für mehrere von Vorteil.

    Danke,
    Funkwart
    Hi,

    ich hab auch so ein ähnliches, kleines Script geschrieben.. (ziemlich unschön, aber erfüllt seinen zweck ;))

    Code:
    #!/bin/bash
    
    for i in /home/max/fme-logs/record-current/*wav; do
    if [ -f $i ] ; then
    	lame -b 96 -m m $i /home/max/fme-logs/record-archiv/`basename $i .wav`.mp3
    	rm -f $i
    fi
    done
    Das ganze am besten "convert" nennen..
    Dann in die /etc/crontab:

    Code:
    */5 * * * * username /home/max/fme-logs/convert
    Pfade müssen natüllich angepasst werden..

    Mfg.
    Geändert von Max K. (23.03.2006 um 17:47 Uhr)
    hallo :E

    Erkläre mir, und ich vergesse.
    Zeige mir, und ich erinnere.
    Lass es mich tun, und ich verstehe.

  8. #8
    Registriert seit
    28.04.2003
    Beiträge
    75
    Ich muss den alten Thread nochmal rauskramen. Ist es auch möglich nach Ende der Aufnahme ein ganzes Skript auszuführen?
    Ich hab schon bissl mit den Parametern rumexperimentiert, leider war dann keine Aufzeichnung mehr da.

    Mit REC_COMD 'skriptname' startet das Skript findet dann aber keine Audiodatei mehr im Verzeichnis.
    Alternativ wäre natürlich die Version mit dem Cronjob möglich, aber den würd ich mir gerne sparen. Wieviel Last hat eigentlich so n minütlicher Cronjob?

    Gruß Stoepf

  9. #9
    LukeFirewalker Gast
    Das ist alles relativ. Wenn die Kiste rechenstark ist und das Skript nur kurz ist, dann fällt das nicht so ins gewicht. Wenn die Kiste eher schwach auf der Brust ist und das Skript sehr umfangreich, dann kanns schon anders aussehen.

    Aber warum alle Minute? Für die Umwandlung in MP3 sollte doch alle Stunde locker reichen. Wenn doch früher reinhören möchtest, dann nimm dafür halt die wav-Datei.

    Luke

  10. #10
    Registriert seit
    28.04.2003
    Beiträge
    75
    Ich will aber nicht das gesamte WAV vom Server abholen.
    MP3 geht halt wesentlich schneller, da ich nur normale DSL1000-Upload-Geschwindigkeit zur Verfügung habe.

  11. #11
    LukeFirewalker Gast
    Ok, wenn Du keinen direkten Zugriff auf den Server sondern nur via DSL hast...

    Läuft noch mehr auf der Kiste oder nur die Auswertung?

    Du könntest ja auch einen stündlichen Cronjob machen und wenn Du das Zeug dann doch mal früer brauchst, das Skript von Hand ausführen.

    Luke

  12. #12
    Registriert seit
    28.04.2003
    Beiträge
    75
    Momentan lass ich das Skript alle 5 Minuten laufen, wenn nicht gerade eine Aufzeichnung stattgefunden hat, hat es ja nichts zu tun.
    Falls doch noch jemand einen Tipp hat, wie man bestimmte Aktionen nach Ende der Aufzeichung ausführen kann würd ich mich freuen.

    @Luke: Momentan läuft nur die Auswertung, soll auch nicht groß erweitert werden.

  13. #13
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Man konnte jetzt natürlich das Skripte in der unixinout.c starten.

    So sieht der Originalaufruf für sox aus:

    Code:
      sprintf(cmdline, "%s -v%f %s %s %s %s%s avg -%c", rec.cmd, (float)rec.volume / 100, rec.in_args, rec.file,
                            rec.out_args, rec.file, rec.suff, rec.chan);
      system(cmdline);
      sprintf(cmdline, "rm %s", rec.file);
      system(cmdline);
    cmdline wird also zum Programmaufruf für REC_COMD (in rec.cmd gespeichert) zusammengesetzt. Das ergibt in etwa:

    sox -v1.0 -u -b -r %d -c 2 -t raw aufnahme -c 1 aufnahme.wav 1

    Du könntest jetzt als system("/home/max/...") nach der letzten Zeile deine Batch starten. Dann sollte der die Aufnahmen direkt am Ende konvertieren.

    Also etwa so:
    Code:
      sprintf(cmdline, "%s -v%f %s %s %s %s%s avg -%c", rec.cmd, (float)rec.volume / 100, rec.in_args, rec.file,
                            rec.out_args, rec.file, rec.suff, rec.chan);
      system(cmdline);
      sprintf(cmdline, "rm %s", rec.file);
      system(cmdline);
      system("/home/max/...") ;
    Natürlich total ungetestet :-)

  14. #14
    Registriert seit
    28.04.2003
    Beiträge
    75
    @Buebchen:
    Danke für den Tipp. Ich hab das jetzt soweit eingebaut, hab zwar bei der Verarbeitung noch ein kleines Rechteproblem aber das bekomm ich jetzt auch noch hin.

    Hier noch der von mir eingefügte Code, vielleicht braucht es mal jemand,

    Code:
    sprintf(cmdline, "lame -f -V 5 %s%s %s.mp3", rec.file, rec.suff, rec.file);
    system(cmdline);
    sprintf(cmdline, "rm %s%s", rec.file, rec.suff);
    system(cmdline);
    Gruß Stoepf

  15. #15
    Registriert seit
    07.08.2003
    Beiträge
    161
    Also ich habe mein monitor zur Zeit so eingerichtet:

    Zitat Zitat von .monrc
    ...
    REC_COMD sox
    REC_SUFF .mp3
    REC_ARGS -c 1
    ...
    Zum konvertieren nehme ich auch Lame, welches aber automatisch durch SOX aufgerufen wird, somit entfällt das WAV-File als Zwischendatei, da es direkt von RAW in MP3 umgewandelt wird. Es läuft somit auch kein Cron-Job dafür und eine Anpassung des Quellcodes ist damit auch nicht notwendig.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •