Skip to content

Audiolänge ...

Vielleicht kann ja einer von Euch auch etwas damit anfangen. Das Skript berechnet die Summe der Längen aller Audiodateien in einem Verzeichnis, dazu muss der absolute Pfad angegeben werden. Zusätzlich zu Perl muss noch das Schweizer Taschenmesser der Audiobearbeitung, SoX, installiert sein. Es gibt kaum ein Audioformat, dass SoX nicht versteht. Wenn sox, oder vielmehr das Tool soxi im Pfad ist, funktioniert das Skript auch unter allen gängigen Betriebssystemen, Windows inklusive.

Es ist für den Eigenbedarf entstanden und macht keinerlei Prüfungen oder Fehlermeldungen.

#!/usr/bin/perl -w
use strict;

use File::Find;

my $playtimesec = 0;
my $playtimetme = "";

my @directories = @ARGV;

sub audiolength {
        my $len = `soxi -D "$File::Find::name" 2>/dev/null`;
        $playtimesec += $len if ((defined $len) && ($len ne ""));
}
                                               
sub seconds2time( $ ) {
        my ($ss) = @_;
        my ($hh,$mm);
        $mm = int($ss / 60);
        $ss = int($ss) - ($mm * 60);
        $ss = "0${ss}" if (length($ss) == 1);
        $hh = int($mm / 60);
        $mm = $mm - ($hh * 60);
        $mm = "0${mm}" if (length($mm) == 1);
        return "$hh:$mm:$ss";
}

find(\&audiolength, @directories);

$playtimetme = seconds2time($playtimesec);
print "$playtimetme";

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Patrick am :

*> "... funktioniert das Skript auch unter allen gängigen Betriebssystemen, Windows *inklusive*. ..."
:-D LOL -> Hört sich lustigerweise an, als ob der Exot unter den Betriebssystemen Windows sogar ausßnahmsweise auch unterstützt wird. Zukunftsvisionen?! ;-)

Claus am :

*nein in den richtigen Kreisen schon lange gänige Praxis...

Dirk Deimeke am :

*Es ist ja nicht so üblich, dass man Perl unter Windows benutzt und ausserdem sind die Laufwerk und Pfadangaben in der Regel nicht kompatibel.

Daher wollte ich schon darauf hinweisen.

Pa_trick17 am :

*Sorry, da hast du mein Post total in den falschen Hals bekommen! Es sollte keinerlei Kritik an deiner Ausdrucksweise oder dem Inhalt sein, sondern dich und die anderen Leser der Kommentare vielleicht etwas an meiner lustigen Interpretation teilhaben zu lassen um (m)ein Schmunzeln weiterzugeben.

Ich bin ein absoluter Freund von Plattformunabhängigkeit!!! (... und auch gelegentlicher Windows-User duck vor den "richtigen Kreisen" ;-) )
Cool, dass dein Skript das leistet!!!

Patrick am :

*omg. Wer benutzt hier meinen Namen? ^^ Dieb .. :-D

Um etwas zu dem Theard auch noch zu sagen : Sieht gut aus das Skript ;-) Werd mal ausprobieren :-)

Pa_trick17 am :

*Vorsicht OT-Kommentare! ;-)
@Patrick: Ich glaube es gibt wohl sehr sehr viele Diebe von unserem Vornamen (z.B. Die Vornamen, die seit 1890 in Deutschland am häufigsten vergeben worden sind: http://www.beliebte-vornamen.de/760-alle_jahre.htm -> Patrick: Platz 69) :-D .

@Dirk: Die Benachrichtigung bei Aktualisierung der Kommentare per E-Mail klappt bei mir trotz angegebener Adresse und aktivieren der Checkbox unten nicht :-(

Dirk Deimeke am :

*Hier gibt es kein OT.

Patrick, Du solltest eine Nachricht bekommen, die Du bestätigen musst, um Kommentarbenachrichtigungen zu bekommen. Guck mal in Deinem Spam-Ordner. Vielleicht ist sie dort gelandet.

Pa_trick17 am :

*Das war das Problem. Danke.

Kommentar schreiben

Gravatar, Favatar, Pavatar, Identica, Twitter, MyBlogLog Autoren-Bilder werden unterstützt.
BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Formular-Optionen