Come puoi tagliare i file mp3 usando `ffmpeg`?


10

Ecco un puzzle MP3 audio Linux che mi ha infastidito per un po ':

Come tagliare l'inizio pochi secondi di un file audio MP3? (Non riesco ffmpeg -ssa lavorare con il formato 00:01 o 1.000)

Finora, per fare quello che voglio, ricorro a farlo in un modo GUI che è forse più lento per un singolo file e sicuramente più lento per un batch di file.


1
Un aggiornamento. Più tardi, mi sono imbattuto nel fatto che ffmpeg è molto esigente riguardo al formato dell'ora --ss, e sono stato in grado di tagliare più facilmente i primi 9 secondi, ad esempio specificando -ss 00:00:09 (nota che ha bisogno di tutto 3 numeri in formato hh: mm: ss) La versione che stavo usando potrebbe essere vecchia ... FFmpeg versione SVN-r18709, Copyright (c) 2000-2009 Fabrice Bellard, et al.
Mark Hudson,

Risposte:


5

Per la modifica di mp3 su Linux, consiglierei sox . Ha un trimeffetto semplice da usare che farà quello che chiedi (vedi man soxdatails - cerca (premi /) per "tagliare l'inizio"). Esempio:

sox input.mp3 output.mp3 trim 1 5

Non lo hai menzionato, ma se il tuo obiettivo è solo quello di rimuovere il silenzio all'inizio dei file, troverai l' silenceeffetto molto più utile ( man sox, cerca "sopra i periodi")


Grazie, fantastico: ha funzionato. Ho finito per usare il trimper semplicità. L'unico lato sox FAIL formats: can't open output file 'blah.mp3': SoX was compiled without MP3 encoding supportnegativo era - quindi, rientro in ffmpeg: /
Mark Hudson il

Sembra insolito. Sul mio computer funziona senza problemi con gli mp3. È una questione di configurazione in fase di build. Come lo hai installato?
rozcietrzewiacz,

@rozcietrzewiacz, se installi sox da un repository di distribuzione molto probabilmente otterrai sox senza supporto MP3 (a causa di problemi di licenza). Ad esempio su Fedora 17:no handler for file extension mp3
maxschlepzig

4

Puoi provare a usare mp3splt , che può dividere i file MP3 e Ogg e ha il vantaggio di non ricodificare il file, evitando così la perdita di qualità.


1
Mi piace; Grazie. È semplice, eppure ha molte opzioni ... Ad esempio: ecco il comando che ho appena usato, che aggiunge i tempi intermedi al nome file: mp3splt "$file" 4.12 27.55.7... Permette la formattazione personalizzata del nome di output e più punti di divisione.
Peter

1

Assicurati che le specifiche del tuo tempo inizino con le ore.

Per citare la pagina man di ffmpeg :

la posizione può essere in secondi o nella forma "hh: mm: ss [.xxx]"

Ciò significa che quando si sceglie la seconda sintassi, solo la .xxxparte è facoltativa. Altrimenti ffmpeg potrebbe analizzarlo erroneamente come secondi.

Lo stesso vale per la durata:

la durata può essere un numero in secondi o in "hh: mm: ss [.xxx]"

Un altro inconveniente è l'ordinamento degli argomenti di ffmpeg (ad es -ss. Le -topzioni / per un file di input devono precedere l' -iopzione).

Esempio

$ 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

Con la specifica -ss 1:05:59.3 -t 2:03.9otterrai un risultato diverso (cioè un pezzo lungo di 2 secondi).

(Testato su Fedora 17 con ffmpeg versione 0.10.7.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.