Comment couper des fichiers mp3 en utilisant `ffmpeg`?

10

Voici un puzzle MP3 audio Linux qui me dérange depuis un certain temps:

Comment couper les premières secondes d'un fichier audio MP3? (Je ne peux pas ffmpeg -sstravailler avec le format 00:01 ou 1.000)

Jusqu'à présent, pour faire ce que je veux, j'ai recours à une interface graphique qui est peut-être plus lente pour un seul fichier, et certainement plus lente pour un lot de fichiers.

Mark Hudson
la source
1
Une mise à jour. Plus tard, je suis tombé sur le fait que ffmpeg est très pointilleux sur le format d'heure --ss, et j'ai pu couper le plus facilement les 9 premières secondes par exemple en spécifiant -ss 00:00:09 (notez qu'il a besoin de tout 3 chiffres au format hh: mm: ss) La version que j'utilisais peut être ancienne ... FFmpeg version SVN-r18709, Copyright (c) 2000-2009 Fabrice Bellard, et al.
Mark Hudson

Réponses:

5

Pour éditer des mp3 sous linux, je recommanderais sox . Il a un effet simple à utiliser trimqui fera ce que vous demandez (voir man soxpour les données - recherchez (appuyez /) sur "trim start"). Exemple:

sox input.mp3 output.mp3 trim 1 5

Vous ne l'avez pas mentionné, mais si votre objectif est simplement de supprimer le silence au début des fichiers, vous trouverez l' silenceeffet beaucoup plus utile ( man sox, recherchez "au-dessus des périodes")

rozcietrzewiacz
la source
Merci, génial: cela a fonctionné. J'ai fini par utiliser le trimpour plus de simplicité. Le seul point sox FAIL formats: can't open output file 'blah.mp3': SoX was compiled without MP3 encoding supportnégatif était --so, rentrez ffmpeg: /
Mark Hudson
Cela semble inhabituel. Sur mon ordinateur, cela fonctionne sans problème avec les mp3. C'est une question de configuration au moment de la construction. Comment l'avez-vous installé?
rozcietrzewiacz
@rozcietrzewiacz, si vous installez sox à partir d'un référentiel de distribution, vous obtiendrez très probablement sox sans prise en charge MP3 (en raison de problèmes de licence). Par exemple sur Fedora 17:no handler for file extension mp3
maxschlepzig
4

Vous pouvez essayer d'utiliser mp3splt , qui peut diviser les fichiers MP3 et Ogg et a l'avantage de ne pas réencoder le fichier, évitant ainsi une perte de qualité.


la source
1
Je l'aime; Merci. C'est simple, et pourtant il a beaucoup d'options ... Par exemple: voici la commande que je viens d'utiliser, qui ajoute les temps intermédiaires au nom de fichier: mp3splt "$file" 4.12 27.55.7... Elle permet un formatage personnalisé du nom de sortie et plusieurs points de partage.
Peter.O
1

Assurez-vous que vos spécifications de temps commencent par des heures.

Pour citer la page de manuel ffmpeg :

la position peut être en secondes ou sous la forme "hh: mm: ss [.xxx]"

Cela signifie que lorsque vous choisissez la 2ème syntaxe, seule la .xxxpartie est facultative. Sinon, ffmpeg risque de mal analyser en secondes.

Il en va de même pour la durée:

la durée peut être un nombre en secondes ou en "hh: mm: ss [.xxx]"

Un autre piège est l'ordre des arguments ffmpeg (par exemple, les options -ss/ -tpour un fichier d'entrée doivent précéder l' -ioption).

Exemple

$ 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

Avec la spécification, -ss 1:05:59.3 -t 2:03.9vous obtiendriez un résultat différent (c'est-à-dire une pièce longue de 2 secondes).

(Testé sur Fedora 17 avec ffmpeg version 0.10.7.)

maxschlepzig
la source