Ursprüngliche Frage
Ich möchte in der Lage sein, eine neue (vollständig gültige) MP3-Datei aus einer vorhandenen MP3-Datei zu generieren, die als Vorschau verwendet werden soll - versuchen Sie es vor dem Kauf. Die neue Datei sollte nur die ersten n Sekunden des Tracks enthalten.
Jetzt weiß ich, dass ich bei der Übermittlung der Datei den Stream in n Sekunden (berechnet aus Bitrate und Header-Größe) "zerhacken" könnte , aber das ist ein bisschen schmutzig und eine echte PITA auf einer VBR-Spur. Ich möchte in der Lage sein, eine richtige MP3-Datei zu generieren.
Hat jemand irgendwelche Ideen?
Antworten
Beides mp3split
und ffmpeg
beides sind gute Lösungen. Ich habe mich für ffmpeg entschieden, da es üblicherweise auf Linux-Servern installiert ist und auch für Windows leicht verfügbar ist . Hier sind einige weitere gute Befehlszeilenparameter zum Generieren von Vorschauen mit ffmpeg
-t <seconds>
nach der angegebenen Anzahl von Sekunden hacken-y
Datei überschreiben erzwingen-ab <bitrate>
Bitrate einstellen zB -ab 96k-ar <rate Hz>
Stellen Sie die Abtastrate ein, z. B. -ar 22050 für 22,05 kHz-map_meta_data <outfile>:<infile>
Kopieren Sie Track-Metadaten von Infile nach Outfile
Anstatt -ab und -ar zu setzen, können Sie die ursprünglichen Spureinstellungen kopieren, wie Tim Farley vorschlägt, mit:
-acodec copy
Antworten:
Ich empfehle auch ffmpeg, aber die von John Boker vorgeschlagene Befehlszeile hat einen unbeabsichtigten Nebeneffekt: Sie codiert die Datei auf die Standardbitrate neu (die in der Version, die ich hier mindestens habe, 64 kb / s beträgt). Dies kann Ihren Kunden einen falschen Eindruck von der Qualität Ihrer Sounddateien vermitteln und dauert auch länger.
Hier ist eine Befehlszeile, die ohne Transcodierung auf 30 Sekunden aufgeteilt wird:
Der Schalter -acodec weist ffmpeg an, den speziellen "Kopier" -Codec zu verwenden, der nicht transkodiert. Es ist blitzschnell.
HINWEIS: Der Befehl wurde basierend auf dem Kommentar von Oben Sonne aktualisiert
quelle
ffmpeg
Versionen (mindestens seit 0.10.6) interpretieren Optionen je nach Position unterschiedlich. Eingabebezogene Optionen müssen vor-i ...
und ausgabebezogene Optionen müssen nach angezeigt werden-i ...
. Dieses Mittelffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3
wäre jetzt die richtige Antwort sein.-ss hh:mm:ss[.xxx]
. Beispiel:ffmpeg -t 30 -ss 00:00:15.500 -i inputfile.mp3 -acodec copy outputfile.mp3
wird ab 00h 00m 15s 500ms auf 30 Sekunden geschnitten .ffmpeg -i inputfile.mp3 -t 30 -acodec copy outputfile.mp3
dann funktioniert er perfektWenn Sie die ersten 30 Sekunden ENTFERNEN möchten (und den Rest behalten möchten), verwenden Sie Folgendes:
quelle
Versuchen:
quelle
Dieser Befehl funktioniert auch einwandfrei. Ich habe meine Musikdateien von 20 auf 40 Sekunden zugeschnitten.
quelle
Sie können mp3cut verwenden:
Es ist in Ubuntu Repo, also nur :
sudo apt-get install cutmp3
.quelle
Vielleicht möchten Sie Mp3Splt ausprobieren .
Ich habe es zuvor in einem C # -Dienst verwendet, der einfach den win3-Prozess mp3splt.exe umschlossen hat. Ich gehe davon aus, dass in Ihrem Linux / PHP-Szenario etwas Ähnliches getan werden könnte.
quelle
Ich habe dabei einen Fehler erhalten
Fix für mich war:
quelle
medipack ist eine sehr einfache Befehlszeilen-App als Wrapper
ffmpeg
.Mit den folgenden Befehlen können Sie Ihr Video zuschneiden:
Sie können die Optionen des Unterbefehls "Trimmen" wie folgt anzeigen:
Sie können auch andere Optionen mit erkunden
medipack -h
Sie können https://github.com/srbcheema1/medipack besuchen und Beispiele in README auschecken.
quelle
ffmpeg -i input -ss <start time> -to <end time> output
-t
, die alternativ verwendet werden kann,-e
was bedeutet, dass ich das nächste 4-minütige 36-sekündige Video zuschneiden soll. Ich muss mir keine Sorgen machen, diese Zeiten manuell hinzuzufügen. Außerdem habe ich beim Zuschneiden der Videos eine ähnliche Leichtigkeit bereitgestellt, siehe Beispiele In README erfahren Sie, warum die CLI einfacher ist als das einfache ffmpeg. Ich bin damit einverstanden, dass es nicht so mächtig ist, aber für normale Menschen sein handliches Werkzeug.ffmpeg
hat die-to
Option, was Ihr-t
wahrscheinlich tut.-vf "crop=iw*0.1:ih*0.1:0:0"