Oto zagadka z dźwiękiem MP3 w systemie Linux, która od jakiegoś czasu mnie dręczy:

Jak skrócić początek o kilka sekund z MP3 plik audio? (Nie mogę zmusić ffmpeg -ss do pracy z formatem 00:01 lub 1.000)

Jak dotąd, aby robić to, co chcę, robię to w GUI, który może być wolniejszy dla pojedynczego pliku i zdecydowanie wolniejszy dla partii plików.

Komentarze

  • Aktualizacja. Później ja natknąłem się na fakt, że ffmpeg jest bardzo wybredny, jeśli chodzi o format czasu –ss, i mogłem najłatwiej skrócić pierwsze 9 sekund, na przykład, podając -ss 00:00:09 (zwróć uwagę, że potrzebuje wszystkich 3 liczb w hh: mm: ss) Wersja, której używałem, może być stara … Wersja FFmpeg SVN-r18709, Copyright (c) 2000-2009 Fabrice Bellard, et al.

Odpowiedź

Aby edytować pliki mp3 pod Linuksem, polecam sox . Ma prosty w użyciu trim efekt, który zrobi to, o co prosisz (patrz man sox dla danych – szukaj (naciśnij /) dla” trim start „). Przykład:

sox input.mp3 output.mp3 trim 1 5 

Nie wspomniałeś o tym, ale jeśli Twoim celem jest tylko usunięcie ciszy na początku plików znajdziesz silence efekt o wiele bardziej przydatny (man sox, wyszukaj „powyżej-okresy” )

Komentarze

  • Dzięki, super: zadziałało. Skończyło się na użyciu trim dla uproszczenia. Jedynym minusem było sox FAIL formats: can't open output file 'blah.mp3': SoX was compiled without MP3 encoding support – więc, wprowadź ponownie ffmpeg: /
  • To wydaje się niezwykłe. Na moim komputerze działa bez problemu z plikami mp3. Jest to kwestia konfiguracji w czasie kompilacji. Jak to zainstalowałeś?
  • @rozcietrzewiacz, jeśli zainstalujesz sox z repozytorium dystrybucyjnego, najprawdopodobniej otrzymasz sox bez obsługi MP3 (z powodu problemów z licencją). Na przykład w Fedorze 17: no handler for file extension mp3
  • Nie ' mam problem ze zrozumieniem, jak skompilować sox z plikiem mp3 wsparcie. Bez FAQ, bez Google, nic. A pytanie dotyczyło przycinania za pomocą ffmpeg …

Odpowiedź

Możesz spróbować użyć mp3splt , który może dzielić pliki MP3 i Ogg i ma tę zaletę, że nie koduje ponownie pliku, co pozwala uniknąć utraty jakości.

Komentarze

  • Podoba mi się; dzięki. Jest proste, a mimo to ma wiele opcji … Na przykład: oto polecenie, którego właśnie użyłem, które dodaje czasy podziału do nazwy pliku: mp3splt "$file" 4.12 27.55.7 … Pozwala niestandardowe formatowanie nazwy wyjściowej i wiele punktów podziału.

Odpowiedź

Upewnij się, że podane godziny zaczynają się od godzin.

Aby zacytować stronę podręcznika ffmpeg :

pozycja może być w sekundach lub w formie „hh: mm: ss [.xxx]”

Oznacza to, że po wybraniu drugiej składni tylko .xxx część jest opcjonalna. W przeciwnym razie ffmpeg może błędnie przeanalizować go jako sekundy.

To samo dotyczy czasu trwania:

czas trwania może być liczbą w sekundach lub in „hh: mm: ss [.xxx]”

Kolejną pułapką jest kolejność argumentów ffmpeg (np. -ss / -t opcje pliku wejściowego muszą znajdować się przed opcją -i).

Przykład

$ wget http://traffic.libsyn.com/twiv/TWiV179.mp3 $ ffmpeg -ss 1:05:59.3 -t 00:02:03.9 -i TWiV179.mp3 -acodec copy \ what_is_a_hmm_twiv179.mp3 

Ze specyfikacją -ss 1:05:59.3 -t 2:03.9 uzyskałbyś inny wynik (tj. 2-sekundowy fragment).

(Testowane w Fedorze 17 z ffmpeg w wersji 0.10.7.)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *