Korzystanie z demultipleksera konkat (dodaj ciszę do początku i / lub końca)
Użyj demuxera konkat, jeśli chcesz uniknąć ponownego kodowania głównego segmentu. Ta metoda działa w celu dodania ciszy na początku lub na końcu (lub obu).
Użyj filtra źródła dźwięku anullsrc, aby utworzyć cichy dźwięk. Musisz dopasować format, układ kanału i częstotliwość próbkowania głównego pliku audio. Przykład wykonania 5.1-kanałowego, częstotliwości próbkowania 48000 Hz, 1-sekundowego cichego pliku audio AC3 (ponieważ taki był format pytania):
ffmpeg -f lavfi -i anullsrc=channel_layout=5.1:sample_rate=48000 -t 1 silence.ac3
Teraz utwórz plik tekstowy o nazwie, input.txt
który zawiera listę plików do połączenia:
file 'silent.ac3'
file 'main.ac3'
Jeśli chcesz na końcu ciszy, po prostu zmień kolejność plików input.txt
.
Teraz możesz połączyć pliki za pomocą demuxera concat :
ffmpeg -f concat -i input.txt -codec copy output.ac3
Korzystanie z filtra konkat (dodaj ciszę na początku i / lub końcu)
Użyj filtru konkat, jeśli chcesz zrobić wszystko za pomocą jednego polecenia lub jeśli chcesz wyprowadzać dane w innym formacie niż dane wejściowe (ponieważ ta metoda i tak jest ponownie kodowana). Ta metoda działa w celu dodania ciszy na początku, na końcu lub w obu.
Przykład dodania 1 sekundy ciszy na początku wejścia stereo o częstotliwości próbkowania 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
Filtrowanie spowoduje ponowne kodowanie, a demuxer konkat nie.
W anullsrc zaleca się dopasowanie układu kanału i częstotliwości próbkowania wejścia.
Jeśli chcesz dodać ciszę do końca, zamiast po prostu zmienić kolejność wejść podanych do filtra concat: [1:a][0:a]concat=n=2:v=0:a=1
.
Korzystanie z filtra Adelay (dodaj ciszę na początku)
Użyj filtru audio Adelay, jeśli chcesz zrobić wszystko za pomocą jednego polecenia lub jeśli chcesz wyprowadzić sygnał w innym formacie niż wejście (ponieważ ta metoda i tak jest ponownie kodowana). Działa to tylko w celu dodania ciszy na początku pliku.
Ten przykład doda 1 sekundę ciszy na początku wejścia stereo:
ffmpeg -i input.flac -af "adelay=1000|1000" output.opus
- Filtrowanie spowoduje ponowne kodowanie, a demuxer konkat nie.
- Wartość jest w milisekundach. Użytkownicy najnowszych wersji (bieżący git master lub cokolwiek nowszego niż FFmpeg 4.1) mogą zamiast tego używać
1s
przez jedną sekundę.
- Każdy kanał potrzebuje własnego opóźnienia. Na przykład skorzystałoby z wejścia mono
adelay=1000
, podczas gdy z wejścia 5.1 adelay=1000|1000|1000|1000|1000|1000
.
Korzystanie z filtra apad (dodaj ciszę na końcu)
Użyj filtra audio apad, jeśli chcesz zrobić wszystko za pomocą jednego polecenia lub jeśli chcesz wyprowadzić sygnał w innym formacie niż wejście (ponieważ ta metoda i tak jest ponownie kodowana). Działa to tylko w celu dodania ciszy na końcu pliku.
Ten przykład doda 1 sekundę ciszy do końca:
ffmpeg -i input.wav -af "apad=pad_dur=1" output.m4a
Filtrowanie spowoduje ponowne kodowanie, a demuxer konkat nie.
pad_dur
Opcja dodano po wydaniu FFmpeg 4.1, więc trzeba będzie użyć najnowszej kompilacji z git głównego oddziału lub czekać na FFmpeg 4.2.