2008-09-04 15 views
73

Original QuestionCrop MP3 ersten 30 Sekunden

Ich mag generieren können, neu (vollwertig) MP3-Datei aus einer vorhandenen MP3-Datei als Vorschau verwendet werden - Try-before-you -kaufen Stil. Die neue Datei sollte nur die ersten n Sekunden der Spur enthalten.

Nun, ich weiß, ich könnte einfach "den Strom" bei Sekunden (Berechnung aus der Bitrate und Header-Größe) bei der Lieferung der Datei, 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 erzeugen.

Wer irgendwelche Ideen?

Antworten

Sowohl mp3split und ffmpeg beide gute Lösungen. Ich wählte ffmpeg, wie es häufig auf Linux-Servern installiert ist und ist auch easily available for windows. Hier einige weitere gute Kommandozeilenparameter für die Vorschau mit ffmpeg

  • -t <seconds> Kotelett nach bestimmten Anzahl von Sekunden zu erzeugen
  • -y Kraft Datei
  • -ab <bitrate> Satz Bitrate überschreiben z.B. -ab 96k
  • -ar <rate Hz> eingestellte Abtastrate z.B. -ar 22050 für 22,05 kHz
  • -map_meta_data <outfile>:<infile> Kopie Spur Metadaten aus infile nach outfile

statt -ab und -ar der Einstellung können Sie die Original-Track-Einstellungen kopieren, wie Tim Farley schon sagt, mit :

  • -acodec copy
+0

Ich wusste nicht, ffmpeg könnte das tun. Vielen Dank. –

Antwort

99

Ich empfehle auch ffmpeg, aber die von John Boker vorgeschlagene Befehlszeile hat eine unbeabsichtigte Nebenwirkung: Es re-codiert die Datei auf die Standard-Bitrate (das ist 64 KB/s in der Version, die ich hier mindestens habe). Dies kann Ihren Kunden einen falschen Eindruck von der Qualität Ihrer Audiodateien geben und es dauert auch länger.

Hier ist eine Befehlszeile, die bis 30 Sekunden ohne Umcodierung in Scheiben schneiden wird:

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3 

Der -acodec Schalter ffmpeg erzählt die speziellen „Kopie“ Codec zu verwenden, die umcodieren nicht. Es ist blitzschnell.

HINWEIS: Es wurde der Befehl basierend auf Kommentar von Oben Sonne aktualisiert

+18

Die letzten 'ffmpeg' Versionen (mindestens seit 0.10.6) interpretieren Optionen je nach Position unterschiedlich. Eingabe-bezogene Optionen müssen vor '-i ... 'erscheinen und Ausgabe-relatierte Optionen müssen nach' -i ...' erscheinen. Dies bedeutet, dass 'ffmpeg -t 30 -i Eingabedatei.mp3 -acodec copy Ausgabedatei.mp3' * jetzt * die richtige Antwort wäre. –

+0

Kann ich 30 Sekunden Audio aus 15 Sekunden Eingabedatei extrahieren, es bedeutet, wenn Datei reibe dann 30 Sekunden dann extrahieren 30 Sekunden aber wenn Datei 15 Sekunden dann wiederholen und extrahieren komplette 30 Sekunden. –

+2

Wenn Sie die Startzeit (Offset) einstellen möchten, können Sie ['-ss hh: mm: ss [.xxx]'] (https://ffmpeg.org/ffmpeg.html#Main-options) verwenden. Beispiel: 'ffmpeg -t 30 -ss 00: 00: 15.500 -i Eingabedatei.mp3 -acodec Kopie Ausgabedatei.mp3 'wird in * 30 Sekunden * geschnitten * ab * 00h 00m 15s 500ms *. –

2

Ich habe es nicht für diesen speziellen Zweck verwendet, aber ich wette ffmpeg kann es tun.

15

Versuch:

ffmpeg -t 30 -i inputfile.mp3 outputfile.mp3 
5

Vielleicht möchten Mp3Splt versuchen.

Ich habe es zuvor in einem C# -Dienst verwendet, der den mp3splt.exe-win32-Prozess einfach umschloss. Ich nehme an, dass etwas ähnliches in Ihrem Linux/PHP-Szenario getan werden könnte.

+2

Verwendet MP3Split mit Erfolg für MP3-Schnitt – Freshblood

5

nur ein Gedanke: Sie können den Beginn des Original-Song überspringen wollen. Sprich, du kannst 30 Sekunden Stück verwenden, beginnend mit der dritten des Liedes.
In einigen Liedern erzählen die ersten 30 Sekunden nicht viel, da es nur ein "Einrichten der Szene" Teil ist - zum Beispiel Pink FloydShine On You Crazy Diamond.

+4

+1 großes Lied! – alex

+0

up für pink floyd –

42

Wenn Sie die ersten 30 Sekunden (und halten den Rest) dann diese entfernen möchten verwenden:

ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3 
8

Sie mp3cut verwenden können :

cutmp3 -i foo.mp3 -O 30s.mp3 -a 0:00.0 -b 0:30.0 

Es ist in ubuntu Repo, so einfach: sudo apt-get install cutmp3.

1

Wie gesagt, ich hatte eine sehr schlimme Zeit mit ffmpeg, mptsplit und mp3cutter auf CentOS, die alle "Header Missing" melden. Also musste ich mit der MP3-Klasse und etwas Mathe nach der Dateigröße suchen.

0

ich einen Fehler bekommen haben, während das gleiche zu tun

Invalid audio stream. Exactly one MP3 audio stream is required. 
Could not write header for output file #0 (incorrect codec parameters  ?): Invalid argumentStream mapping: 

Fix für mich war: ffmpeg -ss 00: 02: 43.00 -t 00.00.10 -i input.mp3-Codecs: a libmp3lame out.mp3

2

Dieser Befehl funktioniert auch perfekt. Ich habe meine Musik von 20 Sekunden auf 40 Sekunden abgeschnitten.

-y: Erzwingt das Überschreiben der Ausgabedatei.

ffmpeg -i test.mp3 -ss 00:00:20 -to 00:00:40 -c copy -y temp.mp3 
Verwandte Themen