Ergebnis 1 bis 15 von 20

Thema: [@rec] im MP3-Format

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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.

  2. #2
    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

  3. #3
    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

  4. #4
    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.

  5. #5
    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

  6. #6
    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.

  7. #7
    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 :-)

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
  •