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łosox 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.)