Ecco un puzzle audio MP3 di Linux che mi ha infastidito per un po :
Come ritagliare i primi secondi di un MP3 file audio? (Non riesco a far funzionare ffmpeg -ss
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 decisamente più lento per un batch di file.
Commenti
- Un aggiornamento. Più tardi, ho sono incappato nel fatto che ffmpeg è molto esigente riguardo al formato dellora –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 tutti e 3 i numeri in hh: mm: formato ss) La versione che stavo usando potrebbe essere vecchia … Versione FFmpeg SVN-r18709, Copyright (c) 2000-2009 Fabrice Bellard, et al.
Risposta
Per modificare mp3 “s sotto Linux, io” d consiglio sox . Ha un effetto trim
semplice da usare che farà ciò che chiedi (vedi man sox
per datails – cerca (premi /
) per” inizio taglio “). Esempio:
sox input.mp3 output.mp3 trim 1 5
Non lhai menzionato, ma se il tuo scopo è solo quello di rimuovere il silenzio allinizio dei file, troverai leffetto silence
molto più utile (man sox
, cerca “above-points” )
Commenti
- Grazie, fantastico: ha funzionato. Ho finito per utilizzare
trim
per semplicità. Lunico inconveniente erasox FAIL formats: can't open output file 'blah.mp3': SoX was compiled without MP3 encoding support
– quindi, reinserisci ffmpeg: / - Sembra insolito. Sul mio computer funziona senza problemi con gli mp3. È una questione di configurazione in fase di compilazione. Come lhai installato?
- @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
- I ' ho difficoltà a capire come compilare sox con mp3 supporto. Nessuna FAQ, no google, niente. E la domanda riguardava il taglio utilizzando ffmpeg …
Risposta
Potresti provare a utilizzare mp3splt , che può dividere file MP3 e Ogg e ha il vantaggio di non ricodificare il file, evitando così la perdita di qualità.
Commenti
- Mi piace; Grazie. È semplice, eppure ha molte opzioni … Ad esempio: ecco il comando che ho appena usato, che aggiunge i tempi intermedi al nome del file:
mp3splt "$file" 4.12 27.55.7
… Permette formattazione del nome di output personalizzato e più punti di divisione.
Risposta
Assicurati che le tue specifiche temporali inizino con le ore.
Per citare la pagina man di ffmpeg :
posizione può essere espresso in secondi o in formato “hh: mm: ss [.xxx]”
Ciò significa che quando scegli la seconda sintassi solo il .xxx
parte è facoltativa. Altrimenti ffmpeg potrebbe interpretarlo erroneamente in secondi.
Lo stesso vale per la durata:
la durata può essere un numero in secondi, oppure in “hh: mm: ss [.xxx]”
Unaltra trappola è lordinamento degli argomenti ffmpeg (ad es. -ss
/ -t
le opzioni per un file di input devono precedere lopzione -i
).
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.9
otterrai un risultato diverso (cioè un pezzo lungo 2 secondi).
(Testato su Fedora 17 con ffmpeg versione 0.10.7.)