Die Stille bei MP3 - Streams mit mp3DirectCut automatisch entfernen

  • Hallo zusammen,

    ich habe nach einer Lösung gesucht, die bei meinen aus dem Webradio gestreamten MP3s die Stille am Anfang bzw. am Ende entfernt. Mit mp3DirectCut habe ich eine gute Lösung gefunden. Jedoch ist eine Korrektur mehrerer Dateien sehr mühsam.

    Das nachfolgende Skript entfernt die Stille jeder einzelnen MP3-Datei die in einem zuvor angegebenen Ordner liegt.

    Spoiler anzeigen
    [autoit]


    Opt("TrayIconDebug", 1)
    Opt("WinTitleMatchMode",2)
    Opt("PixelCoordMode", 0)

    [/autoit] [autoit][/autoit] [autoit]

    #include "color.au3"

    [/autoit] [autoit][/autoit] [autoit]

    $Ordner = FileSelectFolder("Ordner auswählen", "")

    [/autoit] [autoit][/autoit] [autoit]

    $Suche = FileFindFirstFile($Ordner & "\*.mp3")

    [/autoit] [autoit][/autoit] [autoit]

    If $Suche = -1 Then
    MsgBox(0, "Fehler", "Keine Dateien oder Ordner gefunden")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    While 1

    [/autoit] [autoit][/autoit] [autoit]

    $Datei = FileFindNextFile($Suche)
    If @error Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    ; mp3DirectCut starten

    [/autoit] [autoit][/autoit] [autoit]

    Run("C:\Programme\mp3DirectCut\mp3DirectCut.exe " & $Ordner & "\" & $Datei)

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("- mp3DirectCut","Anfang setzen")
    If Not WinActive("- mp3DirectCut","Anfang setzen") Then WinActivate("- mp3DirectCut","Anfang setzen")
    WinWaitActive("- mp3DirectCut","Anfang setzen")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("- mp3DirectCut","Navigieren")
    WinMenuSelectItem("- mp3DirectCut","Navigieren","S&pezial","&Pausen suchen...")
    WinWait("Pausen suchen","Diese Funktion setzt Indexmark")

    [/autoit] [autoit][/autoit] [autoit]

    ; Mindestdauer auf >0,5 Sekunden festlegen

    [/autoit] [autoit][/autoit] [autoit]

    ControlSend("Pausen suchen","Diese Funktion setzt Indexmark", "msctls_trackbar322", "{HOME}{RIGHT}")

    [/autoit] [autoit][/autoit] [autoit]

    ; Ganze Pause schneiden auswählen

    [/autoit] [autoit][/autoit] [autoit]

    ControlCommand("Pausen suchen","Diese Funktion setzt Indexmark", "Button5", "Check", "")

    [/autoit] [autoit][/autoit] [autoit]

    ; Pausen suchen und warten bis Suche abgeschlossen

    [/autoit] [autoit][/autoit] [autoit]

    ControlClick("Pausen suchen","Diese Funktion setzt Indexmark", "Button1")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Pausen suchen","Diese Funktion setzt")
    If Not WinActive("Pausen suchen","Diese Funktion setzt") Then WinActivate("Pausen suchen","Diese Funktion setzt")
    WinWaitActive("Pausen suchen","Diese Funktion setzt")

    [/autoit] [autoit][/autoit] [autoit]

    $X = "176"
    $Y = "287"
    $Wert = PixelGetColor($X, $Y)

    [/autoit] [autoit][/autoit] [autoit]

    While Hex($Wert, 6) = "FFFFFF"

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Pausen suchen","Diese Funktion setzt")
    If Not WinActive("Pausen suchen","Diese Funktion setzt") Then WinActivate("Pausen suchen","Diese Funktion setzt")
    WinWaitActive("Pausen suchen","Diese Funktion setzt")

    [/autoit] [autoit][/autoit] [autoit]

    $Wert = PixelGetColor($X, $Y)

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ; Fenster "Pausen suchen" schließen

    [/autoit] [autoit][/autoit] [autoit]

    ControlClick("Pausen suchen","Diese Funktion setzt Indexmark", "Button3")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("- mp3DirectCut","Navigieren")

    [/autoit] [autoit][/autoit] [autoit]

    ; geschnittenes MP3-File speichern

    [/autoit] [autoit][/autoit] [autoit]

    WinMenuSelectItem("- mp3DirectCut","Navigieren","&Datei","Alles &speichern... Strg+W")
    WinWait("Audiodatei erzeugen","")
    ControlClick("Audiodatei erzeugen","","Button2")

    [/autoit] [autoit][/autoit] [autoit]

    ; vorhandene Datei ersetzen

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Audiodatei erzeugen","Möchten Sie sie ersetzen", 5)

    [/autoit] [autoit][/autoit] [autoit]

    If WinExists("Audiodatei erzeugen","Möchten Sie sie ersetzen") Then
    ControlClick("Audiodatei erzeugen","Möchten Sie sie ersetzen","Button1")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Quelldatei schließen und überschreiben

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Warnhinweis","", 5)

    [/autoit] [autoit][/autoit] [autoit]

    If WinExists("Warnhinweis","") Then
    ControlClick("Warnhinweis","","Button1")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; mp3DirectCut beenden

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("mp3DirectCut","Anfang setzen")
    If Not WinActive("mp3DirectCut","Anfang setzen") Then WinActivate("mp3DirectCut","Anfang setzen")
    WinWaitActive("mp3DirectCut","Anfang setzen")
    Send("{ALTDOWN}{F4}{ALTUP}")

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(2000)

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    FileClose($Suche)

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "", "Fertig")

    [/autoit]


    Vielleicht kanns ja jemand brauchen. ;)

    Gruß

    speedy08

  • Hallo, habe deinen Script für MP3 Pausen entfernen gefunden. Bitte wie starte ich genau das Programm mit deinen Script zusammen.

    Wäre sehr dankbar für deine Hilfe !

    MFG

    Ralph Kaufmann Edit: alpines E-Mail/Tel zensiert

    Einmal editiert, zuletzt von alpines (5. Oktober 2020 um 23:24)

    • Offizieller Beitrag

    Bitte wie starte ich genau das Programm mit deinen Script zusammen.

    Das Skript ist von 2007. Da dürfte der Zahn der Zeit dran genagt haben, habe nicht näher reingesehen - aber es arbeitet mit dem Programm "mp3DirectCut" (musst du also installieren) und steuert dieses mit ControlCommand/Send und auch mit Pixel-Gedöns. Ich denke, dafür gibt es mittlerweise andere Programme/Bibliotheken, die auch entsprechend in AutoIt angesteuert werden können.

  • soundralle wie BugFix schon angesprochen hat ist das Script sehr alt, und dass der ursprüngliche Autor sich hier meldet ist extrem unwahrscheinlich.

    Dir zu liebe habe ich deine E-Mail und Tel.-Nr. zensiert, da es keine gute Idee ist diese öffentlich zu posten. Crawler werden sie finden und du wirst dann mit Werbung zugespammt werden.

    Ich lasse mich natürlich eines besseren belehren wenn der Threadersteller sich zu Wort meldet, aber wenn du wirklich deine Daten posten möchtest, dann kannst du gerne den Beitrag editieren und sie wieder einfügen.

    Das ist nur eine reine Vorsichtsmaßnahme gewesen. Nichts für ungut!