Est-ce que l'un d'entre vous connaît un moyen d'ajouter du silence d'une durée fixe à la fin d'un MP3, sous Linux? Par exemple, en utilisant MEncoder, FFmpeg, etc.?
Il doit être en ligne de commande car il sera scripté et exécuté sur notre serveur.
J'ai cherché sur Google et le mieux que je pouvais faire était d'utiliser la pad
fonction dans SoX , mais cela ne fonctionnerait pas avec les MP3.
Je pourrais le convertir en WAV, utiliser SoX, puis le reconvertir en MP3 et copier les métadonnées (moins la durée) de l'original vers le nouveau MP3. Mais, avant d'écrire un script pour cela, j'ai pensé voir s'il y avait une solution à un coup.
Réponses:
Vous pouvez le faire facilement avec l'
pad
argument de SoX et la syntaxe suivante:Exemple:
Ces silences sont en quelques secondes. (D'autres utilisations sont possibles en utilisant une syntaxe différente, afin d'insérer ces silences à des positions spécifiques. Voir la documentation SoX pour plus.)
la source
Avec ffmpeg, vous pouvez utiliser le filtre aevalsrc pour générer du silence, puis dans une seconde commande utiliser le protocole concat pour les combiner sans perte:
Vous pouvez contrôler la durée du silence en modifiant la durée
-t 10
en secondes que vous préférez. Bien sûr, vous n'avez besoin de générer le silence qu'une seule fois, puis vous pouvez conserver le fichier et l'utiliser pour remplir chacun des fichiers que vous souhaitez. Vous pouvez également rechercher le démultiplexeur concat - il est légèrement plus gourmand en processeur, mais il peut être plus facile de passer dans un script shell.Si vous souhaitez le faire en une seule commande, vous pouvez utiliser le filtre de concaténation - cela vous obligera à ré-encoder votre audio (car les diagrammes de filtre sont incompatibles avec
-codec copy
), donc l'option ci-dessus sera probablement la meilleure pour vous. Mais cela peut être utile pour toute personne travaillant avec du PCM brut, qui cherche à ajouter du silence à la fin avant d'encoder l'audio:Contrôlez la durée du silence en modifiant la durée
d=10
(en secondes) souhaitée. Si vous utilisez cette méthode, vous pouvez trouver ce guide d'encodage MP3 FFmpeg utile.la source
ffmpeg version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Nov 6 2012 16:51:33 with gcc 4.6.3 *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. Unrecognized option 'filter_complex' Failed to set value 'aevalsrc=0' for option 'filter_complex'
avconv
place - la syntaxe doit être la même, remplacez simplementffmpeg
paravconv
.