Saya memiliki file audio AC3 5.1 yang ingin saya masukkan x detik audio diam di awal. Ini tidak ada hubungannya dengan muxing video, jadi pengaturannya tidak berguna karena tampaknya hanya bekerja dengan aliran audio yang menyertai video. Saya ingin mencapai ini dengan ffmpeg. Ada ide?
14
Jawaban:
Menggunakan concat demuxer (tambahkan diam ke awal dan / atau akhir)
Gunakan pendamai concat jika Anda ingin menghindari pengkodean ulang segmen utama. Metode ini berfungsi untuk menambahkan keheningan ke awal atau akhir (atau keduanya).
Gunakan filter sumber audio anullsrc untuk membuat audio diam. Anda harus mencocokkan format, tata letak saluran, dan laju sampel file audio utama. Contoh untuk membuat saluran 5.1, laju sampel 48000 Hz, file audio AC3 diam 1 detik (seperti ini format dalam pertanyaan):
Sekarang buat file teks bernama
input.txt
yang mencantumkan file yang akan digabungkan:Jika Anda ingin keheningan di akhir, alih-alih ganti saja urutan file
input.txt
.Sekarang Anda dapat menggabungkan file menggunakan demuxer concat :
Menggunakan filter concat (tambahkan keheningan ke awal dan / atau akhir)
Gunakan filter concat jika Anda ingin melakukan semuanya dalam satu perintah, atau jika Anda ingin output ke format yang berbeda dari input (karena metode ini tetap mengenkode ulang). Metode ini berfungsi untuk menambahkan keheningan ke awal atau akhir atau keduanya.
Contoh untuk menambahkan 1 detik keheningan ke awal stereo, input rate sampel 44100 Hz:
Pemfilteran akan menghasilkan pengkodean ulang sedangkan demuxer concat tidak.
Dalam anullsrc disarankan untuk mencocokkan tata letak saluran dan laju sampel input.
Jika Anda ingin menambahkan diam ke akhir bukan hanya beralih urutan input yang diberikan ke filter concat:
[1:a][0:a]concat=n=2:v=0:a=1
.Menggunakan filter adelay (tambahkan diam ke awal)
Gunakan filter audio adelay jika Anda ingin melakukan semuanya dalam satu perintah, atau jika Anda ingin output ke format yang berbeda dari input (karena metode ini tetap mengenkode ulang). Ini hanya berfungsi untuk menambahkan keheningan ke awal file.
Contoh ini akan menambahkan 1 detik keheningan ke awal input stereo:
1s
untuk satu detik.adelay=1000
, sedangkan input 5.1 akan digunakanadelay=1000|1000|1000|1000|1000|1000
.Menggunakan filter apad (tambahkan keheningan sampai akhir)
Gunakan filter audio apad jika Anda ingin melakukan semuanya dalam satu perintah, atau jika Anda ingin output ke format yang berbeda dari input (karena metode ini tetap mengenkode ulang). Ini hanya berfungsi untuk menambahkan keheningan di akhir file.
Contoh ini akan menambahkan 1 detik keheningan sampai akhir:
Pemfilteran akan menghasilkan pengkodean ulang sedangkan demuxer concat tidak.
The
pad_dur
pilihan yang ditambahkan setelah rilis FFmpeg 4.1, sehingga Anda akan perlu menggunakan membangun terbaru dari cabang master git atau menunggu FFmpeg 4.2.sumber
[Parsed_aevalsrc_0 @ 000000000195fec0] This syntax is deprecated. Use '|' to sep arate the list items.
Sintaks baru adalah-i "aevalsrc=0|0|0|0|0|0:d=1"