Concat demuxer'ı kullanma (başlangıç ve / veya sona sessizlik ekleyin)
Ana segmenti yeniden kodlamaktan kaçınmak istiyorsanız concat demuxer'ı kullanın. Bu yöntemler, başlangıca veya sona (veya her ikisine) sessizlik eklemek için çalışır.
Sessiz ses oluşturmak için anullsrc ses kaynağı filtresini kullanın . Ana ses dosyasının biçimini, kanal düzenini ve örnekleme hızını eşleştirmeniz gerekir. 5.1 kanal, 48000 Hz örnekleme hızı, 1 saniye sessiz AC3 ses dosyası yapmak için örnek (sorudaki biçim buydu):
ffmpeg -f lavfi -i anullsrc=channel_layout=5.1:sample_rate=48000 -t 1 silence.ac3
Şimdi, input.txtbirleştirilecek dosyaları listeleyen adlı bir metin dosyası oluşturun :
file 'silent.ac3'
file 'main.ac3'
Sessizliğin sonunda olmasını istiyorsanız dosyaların sırasını değiştirin input.txt.
Artık concat demuxer'ı kullanarak dosyaları birleştirebilirsiniz :
ffmpeg -f concat -i input.txt -codec copy output.ac3
Concat filtresini kullanma (başına ve / veya sonuna sessizlik ekleyin)
Her şeyi tek bir komutta yapmak istiyorsanız veya girişten farklı bir biçime çıktı vermek istiyorsanız (bu yöntem yine de yeniden kodladığından) concat filtresini kullanın. Bu yöntemler başlangıca, sonuna veya her ikisine de sessizlik eklemek için çalışır.
Bir stereo, 44100 Hz örnekleme hızı girişinin başına 1 saniyelik sessizlik ekleme örneği:
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
Filtre, concat demuxer yeniden kodlamaya neden olmaz.
Anullsrc'de kanal yerleşimi ve girişin örnekleme hızıyla eşleşmesi önerilir.
Sonuna kadar sessizliği eklemek isterseniz bunun yerine sadece concat filtresine verilen girdilerin sırasını değiştirmek: [1:a][0:a]concat=n=2:v=0:a=1.
Adelay filtresini kullanma (başlangıca sessizlik ekleyin)
Her şeyi tek bir komutta yapmak istiyorsanız veya girişten farklı bir formatta çıktı almak istiyorsanız (bu yöntem yine de yeniden kodladığından) adelay ses filtresini kullanın . Bu yalnızca dosyanın başına sessizlik eklemek için çalışır.
Bu örnek, bir stereo girişin başına 1 saniye sessizlik katacaktır:
ffmpeg -i input.flac -af "adelay=1000|1000" output.opus
- Filtre, concat demuxer yeniden kodlamaya neden olmaz.
- Değer milisaniye cinsindendir. Son sürümlerin kullanıcıları (geçerli git ustası veya FFmpeg 4.1'den daha yeni bir şey) bunun yerine
1sbir saniye kullanabilir .
- Her kanalın kendi gecikmesine ihtiyacı vardır. Örneğin, bir mono giriş kullanılırken
adelay=1000, 5.1 bir giriş kullanılır adelay=1000|1000|1000|1000|1000|1000.
Apad filtresini kullanma (sonuna sessizlik ekleyin)
Her şeyi tek bir komutta yapmak istiyorsanız veya girişten farklı bir formatta çıktı almak istiyorsanız (bu yöntem yine de yeniden kodladığı için) apad ses filtresini kullanın . Bu yalnızca dosyanın sonuna sessizlik eklemek için çalışır.
Bu örnek sonuna 1 saniye sessizlik katacaktır:
ffmpeg -i input.wav -af "apad=pad_dur=1" output.m4a
Filtre, concat demuxer yeniden kodlamaya neden olmaz.
pad_durEğer git ana daldan son yapı kullanma veya FFmpeg'den 4.2 beklemek gerekir böylece seçeneği FFmpeg'den 4.1 yayımlanmasından sonra eklendi.