Här är ett MP3-ljud-MP3-pussel som har bugat mig ett tag:
Hur man kan klippa början några sekunder av en MP3 ljudfil? (Jag kan inte få ffmpeg -ss
att arbeta med antingen 00:01 eller 1.000 format)
Hittills, för att göra vad jag vill, använder jag det i ett GUI-sätt som kanske är långsammare för en enda fil och definitivt långsammare för ett antal filer.
Kommentarer
- En uppdatering. Senare, jag snubblat över det faktum att ffmpeg är väldigt kräsen när det gäller –ss tidsformat, och jag kunde lättast klippa av de första 9 sekunderna till exempel genom att ange -ss 00:00:09 (notera att det behöver alla 3 siffrorna i hh: mm: ss-format) Den version jag använde kan vara gammal … FFmpeg version SVN-r18709, Copyright (c) 2000-2009 Fabrice Bellard, et al.
Svar
För att redigera mp3 under Linux, rekommenderar jag sox . en enkel att använda trim
-effekt som gör vad du ber om (se man sox
för datmeddelanden – sök (tryck /
) för” trim start ”). Exempel:
sox input.mp3 output.mp3 trim 1 5
Du nämnde det inte, men om ditt mål bara är att ta bort tystnaden i början av filer hittar du silence
effekt mycket mer användbar (man sox
, sök efter ”ovan-perioder” )
Kommentarer
- Tack, fantastiskt: det fungerade. Jag slutade använda
trim
för enkelhetens skull. Den enda downer varsox FAIL formats: can't open output file 'blah.mp3': SoX was compiled without MP3 encoding support
– så skriv in ffmpeg: / - Det verkar ovanligt. På min dator fungerar det utan problem med mp3-filer. Det är en fråga om byggtidskonfiguration. Hur installerade du det?
- @rozcietrzewiacz, om du installerar sox från ett distributionsförvar kommer du sannolikt att få sox utan MP3-stöd (på grund av licensproblem). Till exempel på Fedora 17:
no handler for file extension mp3
- Jag ' jag har svårt att förstå hur man kompilerar sox med mp3 Stöd. Ingen FAQ, ingen google, ingenting. Och frågan handlade om att trimma med ffmpeg …
Svar
Du kan försöka använda mp3splt , som kan dela MP3- och Ogg-filer och har fördelen att den inte kodar om filen och därmed undviker kvalitetsförlust.
Kommentarer
- Jag gillar det; tack. Det är enkelt och har ändå många alternativ … Till exempel: här är kommandot jag just använde, vilket lägger till delningstiderna i filnamnet:
mp3splt "$file" 4.12 27.55.7
… Det tillåter anpassad formatering av utskriftsnamn och flera splitpunkter.
Svar
Se till att dina tidsspecifikationer börjar med timmar.
Att citera ffmpeg mansida :
position kan vara antingen i sekunder eller i ”hh: mm: ss [.xxx]” -form
Det betyder att när du väljer den andra syntaxen bara .xxx
del är valfri. Annars kan ffmpeg analysera det som sekunder.
Samma sak gäller för varaktighet:
varaktigheten kan vara ett antal i sekunder, eller i ”hh: mm: ss [.xxx]”
En annan fallgrop är ordningen på ffmpeg-argument (t.ex. -ss
/ -t
alternativ för en inmatningsfil måste komma före alternativet -i
).
Exempel
$ 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
Med specifikationen -ss 1:05:59.3 -t 2:03.9
skulle du få ett annat resultat (dvs. en 2 sekund lång bit).
(Testat på Fedora 17 med ffmpeg version 0.10.7.)