2009-07-24 2 views
5

Ich möchte ein Programm erstellen, das eine MP3-Datei aufnimmt und sie in viele kleinere MP3-Dateien zerlegt, basierend auf 1-2 Sekunden ohne Ton (Stille). Was ist der einfachste Weg, dies in C# zu tun?Wie spalte ich eine MP3-Datei in kleinere Dateien?

+1

haben Sie versucht, mit ffmpeg? –

+0

Muss das wirklich programmatisch gemacht werden? Ich könnte mir vorstellen, dass es eine Art existierende Software dafür gibt. –

+0

Ich habe das gelegentliche Album gesehen, das so gerippt wurde, dass alle Tracks eine massive Datei machten; Ich würde vermuten, dass Rhein mehrere Dateien auf diese Weise konfiguriert hat und in der Lage sein möchte, sie in Stapeln aufzuräumen, wodurch die Organisation der Bibliothek erleichtert wird. Trotz allem, was ich unten gesagt habe, würde ich wahrscheinlich vorschlagen, die betreffenden Alben einfach richtig zu kopieren. Sie haben Rechte an ihnen, richtig? – Adrien

Antwort

1

Ein fundiertes Wissen über das binäre Format der Datei wäre ein guter Anfang. Dann wissen Sie, wie die Stille in der Datei aussieht. Sie müssen möglicherweise genau definieren, was Stille ist. Wenn man annimmt, dass es wie bei den meisten Audiosignalen von einer analogen Quelle ausgeht, ist mit einiger Sicherheit Rauschen in der "Stille" enthalten. Was ist Ihre Toleranz gegenüber Umgebungsgeräuschen?

Sobald Sie wissen, was Sie suchen, scannen Sie einfach durch die Datei und suchen Sie nach "it".

Einfache ...

4

Bass library. Bass hat alles, was Sie brauchen. Es kann auf Medienströme wie MP3s zugreifen, diese aufzeichnen und bearbeiten, so dass Sie die Lautstärke zu verschiedenen Zeitpunkten abtasten können. Es hat eine .net API, so dass Sie es in C# verwenden können. Leider kostet es Geld, wenn Sie es für eine kommerzielle Anwendung verwenden, aber sie bieten eine kostenlose nichtkommerzielle Lizenz.

Sox ist ein Befehlszeilentool, das die Möglichkeit bietet, ein mp3 in Sekunden Stille zu teilen. Sie könnten immer den Systembefehl verwenden, um sox von C# anzurufen.

Andere verwandte Links.

Ripping a CD to mp3 in C# - third party component or api out there?

Audio Libraries for MP3 editing

How do I merge/join mp3 files with c#

Dieser Code zeigt eine Möglichkeit, eine CD-Ripper in C# zu machen. Es gibt APIs von einigen Anbietern, die Audio-CD Tracks zu lesen, aber es ist auch möglich, es mit APIs, die Low-Level- Zugriff auf CD-Laufwerke wie ASPI von Adaptec oder IOCTL Steuercodes ermöglichen. Die letztere Methode wird in diesem Fall verwendet, , da keine Software von Drittanbietern installiert werden muss, ist es komplett von Win32 API Funktionen abgedeckt.

http://www.codeproject.com/KB/cs/csharpripper.aspx

2

Splitting des MP3-Stream schwierig sein wird, mit einem gewissen Grad an Genauigkeit zu tun. Die komprimierten MP3-Daten existieren als sequentielle Chunks von Audiodaten, die aus vielen Samples bestehen. Der einfachste Weg, dies zu tun wäre, den Stream entweder progressiv oder in seiner Gesamtheit zu dekodieren, Ihre Manipulation durchzuführen und dann neu zu codieren (was ich verstehe, ist, wie die meisten Jukebox-Software es tut)

Verwandte Themen