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.


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")


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é.


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.