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?
Antwort
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 ...
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.
Ein Programm, das bereits zu tun gibt:
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)
- 1. Wie teile ich die Ausgabe von mysqldump in kleinere Dateien?
- 2. Wie spalte ich eine große Tabelle in eine kleinere mehrere Tabellen mit mysql Kommandozeilen-Tool?
- 3. Bison-Grammatiken in kleinere Grammatik-Dateien aufteilen
- 4. Wie zeige ich langen Text in eine kleinere feste Spalte mit CSS an?
- 5. Wie spalte ich eine Spalte?
- 6. Splitting eine lange Zeichenfolge in kleinere Strings
- 7. Wie kopiert man eine kleinere Bitmap in eine größere?
- 8. Kann ich eine große HAProxy-Konfigurationsdatei in mehrere kleinere Dateien aufteilen?
- 9. Wie vermeide ich kleinere Änderungen an Git?
- 10. eine lange Tupel in kleinere Tupel
- 11. Wie kann ich Zahlen in kleinere Teile in Javascript "aufteilen"?
- 12. Optimieren für eine kleinere .cod (.jar) Datei
- 13. Wie unterteile ich eine sehr große OpenStreetMap-Datei in kleinere Dateien in R, ohne den Arbeitsspeicher zu verlieren?
- 14. Wie ich eine Spalte Datum in Excel
- 15. Wie kennzeichne ich eine Spalte in DataGridView
- 16. Wie summiere ich eine Spalte in numpy
- 17. Wie spalte ich ein .sql-Skript in mehrere Dateien?
- 18. Wie mache ich eine große URL in eine kleinere URL mit angehängten Parametern?
- 19. Wie spalte ich eine Datei in n keine Teile
- 20. Wie ziehe ich Dateien in eine JTable?
- 21. iPhone SDK Kleinere CAF-Dateien: geringere Aufnahmequalität mit Audio-Warteschlangen?
- 22. Splitting eine conftest.py Datei in mehrere kleinere conftest artige Teile
- 23. Verwenden von MySQL Wie kann ich eine große Gruppe auswählen, die eine kleinere Gruppe enthalten muss?
- 24. FFmpeg: Wie spalte ich eine 100GB MP4-Datei in mehrere 1GB-Dateien?
- 25. SQL Server: ALTER COLUMN nur, wenn die vorhandene Spalte eine kleinere Länge hat
- 26. Wie sortiere ich automatisch eine QTreeWidget-Spalte?
- 27. Array in kleinere Teile teilen
- 28. Für jeden Wert, der bestimmt, ob eine andere Spalte größere oder kleinere Nummer enthält
- 29. Ignoriere kleinere Fehler mit Javadoc
- 30. Wie entferne ich eine Spalte mit Daten?
haben Sie versucht, mit ffmpeg? –
Muss das wirklich programmatisch gemacht werden? Ich könnte mir vorstellen, dass es eine Art existierende Software dafür gibt. –
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