J'ai un fichier audio AC3 5.1 dans lequel j'aimerais insérer x secondes d'audio silencieux au début. Cela n'a rien à voir avec le multiplexage vidéo, donc son décalage est inutile car il semble ne fonctionner qu'avec un flux audio accompagnant un flux vidéo. Je voudrais y parvenir avec ffmpeg. Des idées?
14
Réponses:
Utilisation du démultiplexeur concat (ajouter du silence au début et / ou à la fin)
Utilisez le démultiplexeur concat si vous voulez éviter de ré-encoder le segment principal. Cette méthode fonctionne pour ajouter du silence au début ou à la fin (ou aux deux).
Utilisez le filtre de source audio anullsrc pour créer l'audio silencieux. Vous devrez faire correspondre le format, la disposition des canaux et la fréquence d'échantillonnage du fichier audio principal. Exemple pour faire un 5.1 canaux, 48000 Hz d'échantillonnage, 1 seconde de fichier audio AC3 silencieux (car c'était le format dans la question):
Maintenant, créez un fichier texte nommé
input.txt
qui répertorie les fichiers à concaténer:Si vous voulez le silence à la fin, changez simplement l'ordre des fichiers
input.txt
.Vous pouvez maintenant concaténer les fichiers à l'aide du démultiplexeur concat :
Utilisation du filtre concat (ajouter du silence au début et / ou à la fin)
Utilisez le filtre concat si vous voulez tout faire en une seule commande, ou si vous voulez sortir dans un format différent de l'entrée (puisque cette méthode recode de toute façon). Cette méthode fonctionne pour ajouter du silence au début ou à la fin ou aux deux.
Exemple pour ajouter 1 seconde de silence au début d'une entrée de fréquence d'échantillonnage stéréo à 44100 Hz:
Le filtrage entraînera un ré-encodage, contrairement au démultiplexeur concat.
Dans anullsrc, il est recommandé de faire correspondre la disposition des canaux et la fréquence d'échantillonnage de l'entrée.
Si vous voulez ajouter le silence à la fin au lieu simplement changer l'ordre des entrées données au filtre concat:
[1:a][0:a]concat=n=2:v=0:a=1
.Utilisation du filtre Adelay (ajoutez du silence au début)
Utilisez le filtre audio adelay si vous voulez tout faire en une seule commande, ou si vous voulez sortir en un format différent de l'entrée (puisque cette méthode recode de toute façon). Cela ne fonctionne que pour ajouter du silence au début d'un fichier.
Cet exemple ajoutera 1 seconde de silence au début d'une entrée stéréo:
1s
pendant une seconde.adelay=1000
, tandis qu'une entrée 5.1 utiliseraitadelay=1000|1000|1000|1000|1000|1000
.Utilisation du filtre apad (ajoutez du silence à la fin)
Utilisez le filtre audio apad si vous souhaitez tout faire en une seule commande, ou si vous souhaitez sortir vers un format différent de celui de l'entrée (puisque cette méthode recode de toute façon). Cela ne fonctionne que pour ajouter du silence à la fin d'un fichier.
Cet exemple ajoutera 1 seconde de silence à la fin:
Le filtrage entraînera un ré-encodage, contrairement au démultiplexeur concat.
L'
pad_dur
option a été ajoutée après la sortie de FFmpeg 4.1, vous devrez donc utiliser une version récente de la branche git master ou attendre FFmpeg 4.2.la source
[Parsed_aevalsrc_0 @ 000000000195fec0] This syntax is deprecated. Use '|' to sep arate the list items.
La nouvelle syntaxe est-i "aevalsrc=0|0|0|0|0|0:d=1"