2009-07-24 7 views
5

Chcę zrobić program, który pobiera plik MP3 i dzieli go na wiele mniejszych plików mp3 na podstawie 1-2 sekund bez dźwięku (ciszy). Jaki jest najprostszy sposób to zrobić w języku C#?Jak podzielić plik mp3 na mniejsze pliki?

+1

czy próbowałeś używać ffmpeg? –

+0

Czy naprawdę trzeba to zrobić programowo? Wyobrażam sobie, że istnieje jakiś rodzaj istniejącego oprogramowania. –

+0

Widziałem sporadyczny album, który został zgrany w taki sposób, że wszystkie utwory tworzyły jeden, masywny plik; Przypuszczam, że Rhein ma kilka plików skonfigurowanych w ten sposób i chce je wyczyścić w partiach, co ułatwia uporządkowanie biblioteki. Pomimo tego, co powiedziałem poniżej, prawdopodobnie zasugerowałbym ponowne skopiowanie odpowiednich albumów. Masz do nich prawa, prawda? – Adrien

Odpowiedz

1

Posiadanie solidnej wiedzy o formacie binarnym pliku byłoby dobrym miejscem do rozpoczęcia. Dzięki temu będziesz wiedział, jaka cisza wygląda w pliku. Być może będziesz musiał dokładnie określić, czym jest cisza. Przypuszczając, że podobnie jak większość audio, zaczęło się od analogowego źródła, prawie na pewno jest jakiś hałas zakopany w "ciszy". Jaka będzie Twoja tolerancja na hałas otoczenia/tła?

Gdy już wiesz, czego szukasz, po prostu zeskanuj plik, szukając "go".

Proste ...

4

Bass library. Bas ma wszystko, czego potrzebujesz. Może uzyskiwać dostęp, nagrywać i edytować strumienie multimedialne, takie jak pliki mp3, co umożliwia próbkowanie woluminu w różnych punktach czasowych. Ma api .net, więc można go używać w języku C#. Niestety, to nie kosztuje, jeśli używasz go do komercyjnego zastosowania, ale zapewniają bezpłatną niekomercyjną licencję.

Sox to narzędzie wiersza poleceń, które ma opcję podziału pliku mp3 na n sekund ciszy. Zawsze możesz użyć polecenia systemowego, aby wywołać sox z C#.

Inne powiązane linki.

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#

Kod ten pokazuje sposób, aby płyta CD Ripper w C#. Istnieją interfejsy API od niektórych dostawców , które umożliwiają odczytywanie ścieżek audio CD , ale możliwe jest również wykonanie za pomocą interfejsów API, które umożliwiają niski poziom dostępu do napędów CD, takich jak ASPI z Adaptec lub kodów sterujących IOCTL. W tym przypadku używana jest ostatnia metoda: , ponieważ nie ma potrzeby instalowania żadnego oprogramowania innej firmy, jest ona całkowicie objęta funkcjami Win32 API przez funkcje Win32 API .

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

2

Dzielenie strumienia MP3 będzie trudne do czynienia z jakimkolwiek stopniem dokładności. Skompresowane dane MP3 istnieją jako sekwencyjne fragmenty danych audio składających się z wielu próbek. Najprostszym sposobem wykonania tego byłoby dekodowanie strumienia w sposób progresywny lub w całości, wykonanie manipulacji, a następnie ponowne jego kodowanie (co, jak rozumiem, jest to, jak robi to większość oprogramowania Jukebox).