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):
ffmpeg -f lavfi -i anullsrc=channel_layout=5.1:sample_rate=48000 -t 1 silence.ac3
Maintenant, créez un fichier texte nommé input.txt
qui répertorie les fichiers à concaténer:
file 'silent.ac3'
file 'main.ac3'
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 :
ffmpeg -f concat -i input.txt -codec copy output.ac3
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:
ffmpeg -f lavfi -t 1 -i anullsrc=channel_layout=stereo:sample_rate=44100 -i audio.oga -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" output.m4a
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:
ffmpeg -i input.flac -af "adelay=1000|1000" output.opus
- Le filtrage entraînera un ré-encodage, contrairement au démultiplexeur concat.
- La valeur est en millisecondes. Les utilisateurs de versions récentes (git master actuel ou quelque chose de plus récent que FFmpeg 4.1) peuvent à la place utiliser
1s
pendant une seconde.
- Chaque canal a besoin de son propre retard. Par exemple, une entrée mono utiliserait
adelay=1000
, tandis qu'une entrée 5.1 utiliserait adelay=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:
ffmpeg -i input.wav -af "apad=pad_dur=1" output.m4a
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.