Tool zur Entfernung von Stille bei MP3-Dateien

Status
Für weitere Antworten geschlossen.

Radio 14

Benutzer
Hallo,

ich bin auf der Suche nach einem Windows-Tool, mit dem ich Stille am Beginn und Ende von MP3-Dateien automatisch (Batch-Betrieb) entfernen kann. Ich benötige eigentlich keine komplette Audio-Suite, sondern bin eher auf der Suche nach einem kleinen Tool, das diese Arbeit unkompliziert erledigt. Ich habe schon einige Programm ausprobiert, bislang aber nichts vernünftiges gefunden. Wenn also jemand ein solchen Programm kennt, immer gerne her mit einem Tipp! Danke!
 
AW: Tool zur Entfernung von Stille bei MP3-Dateien

...hier ein Lösung für Linux.

Code:
#!/usr/bin/perl

sub framevol
{
        my $frame=$_[0];
        my $tmp="$$.cutmp3";
        `mpg123 -q -w /tmp/$tmp\.wav -k $frame -n 2 $datei 2>&1 >/dev/null`;  # aktuellen und
                                                              # folgenden Frame
                                                              # in WAV wandeln
        open SOX,"sox -t wav /tmp/$tmp\.wav -t wav /dev/null stat 2>&1|";
        while ($x=<SOX>)
        {
                #print "$x";
                if ($x=~/^Maximum.+amplitude:.*([0-9]\.[0-9].*)/)
                {
                        $vol=$1;
                }
        }
        close SOX;
        system("rm -f /tmp/$tmp\.wav");
        return $vol;
}

sub refvol
{
        my $tmp="$$.cutmp3";
        `mpg123 -q -w /tmp/$tmp\.wav $datei 2>&1 >/dev/null`;
        open SOX,"sox -t wav /tmp/$tmp\.wav -t wav /dev/null stat 2>&1|";
        while ($x=<SOX>)
        {
                #print "$x";
                if ($x=~/^Maximum.+amplitude:.*([0-9]\.[0-9].*)/)
                {
                        $vol=$1;
                }
        }
        close SOX;
        system("rm -f /tmp/$tmp\.wav");
        return $vol;
}

sub startframe
{
        $frame=0;
        while (framevol($frame)<($refwert/30)) # 1/30 des Maxwertes
        {
                $frame++;
                if ($frame > ($frames-10))
                {
                        die "Start nicht gefunden.";
                }
        }
        if ($frame == 0)
        {
                $frame=1;
        }
        return $frame;
}

sub endframe
{
        $backframes=0;
        while (framevol($frames-$backframes)<($refwert/30)) # 1/30 des  Maxwertes
        {
                $backframes++;
                if ($backframes > ($frames-10))
                {
                        die "Ending nicht gefunden.";
                }
        }
        if ($backframes > 0)
        {
                $backframes--;
        }
        return $frames-$backframes;
}

$realdatei=$ARGV[0];
$datei=$$.".cutmp3";

rename $realdatei,$datei; # Temporaerdatei ohne Sonderzeichen anlegen

$frames=`mp3info -p %u $datei`;
print "Datei hat $frames Frames.\n";
$refwert=refvol;
print "Maximale Lautstaerke (1 = 100%) $refwert\n";
$startframe=startframe;
print "Ermittelter Startframe: $startframe\n";
$endframe=endframe;
print "Ermittelter Endframe: $endframe\n";

if ($startframe >= $endframe)
{
        die "Es konnten keine sinnvollen Werte ermittelt werden.\n";
}

system("mp3asm -v -t -s $startframe -e $endframe -o $datei.final $datei ");
rename $datei.".final",$realdatei; # Temporaerdatei in endfueltige Datei umbennen
unlink $datei; # Temp.Datei wegraeumen

Gruss,

Christoph
 
AW: Tool zur Entfernung von Stille bei MP3-Dateien

Ich habe mal eine Zeit lang "dBPowerAmp" benutzt, das müsste auch die Stille entfernen können. Hat sehr viele nützliche Funktionen. Und ist Freeware.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben