Saya ingin menggabungkan beberapa file WAV menjadi satu file WAV menggunakan FFMPEG.
Saya telah menggunakan perintah berikut dan menghasilkan file yang diperlukan.
Perintah:
ffmpeg -f concat -i mylist.txt -c copy output.wav
File:
#mylist.txt
file '1.wav'
file '2.wav'
file '3.wav'
file '4.wav'
Tetapi seperti yang Anda lihat masalahnya adalah saya harus membuat file teks untuk menentukan daftar file WAV untuk digabungkan.
Saya dapat melakukan semua tugas ini, tetapi saya lebih suka perintah tunggal yang terlihat seperti
ffmpeg -i 1.wav -i 2.wav -i 3.wav -i 4.wav output.wav
atau
ffmpeg -i "concat:1.wav|2.wav|3.wav|4.wav" -c copy output.wav
Saya telah mencoba dua perintah sederhana ini tetapi hanya mengembalikan suara 1.wav
Tolong bantu saya menulis satu perintah (atau koreksi 2 perintah di atas) yang mencapai hasil yang diinginkan.
Tolong jangan menyarankan Media Encoders / Editor lainnya, saya ingin menggunakan FFMPEG saja, karena sudah diinstal dan digunakan di tempat lain.
sumber
[0:0][1:0][2:0][3:0]
untuk mencocokkan jumlah file. Gunakan itu persis seperti yang dikatakan. Satu-satunya hal yang harus Anda ubah adalah file input dann=4
.Too many inputs specified for the "concat" filter.
ketika saya mencoba memproses hanya 2 input dengan kode asli. Ini berfungsi meskipun ketika saya menghapus[2:0][3:0]
... yang masuk akal bagi saya karena dalam kasus ini tidak ada hal seperti stream2:0
dan3:0
...n
.Saya pikir pilihan terbaik adalah menggunakan sox, bukan ffmpeg:
Solusi berasal dari Bagaimana cara menambahkan sekelompok file .wav sambil mempertahankan (tidak-nol-empuk) pemesanan numerik?
sumber
.wav
, tetapisox
tampaknya tidak mendukung.mp3
..wav
The FFmpeg wiki menyebutkan menggunakan
concat
protokol ini tidak mungkin dengan semua jenis file. Ini berfungsi baik dengan sebagian besar wadah MPEG dan bitstream, tetapi jelas bukan file WAV dengan audio PCM.Anda tidak harus membuat file sementara dan menggunakannya. Dengan Bash (atau shell lain yang mendukung substitusi proses ), Anda dapat melakukan segalanya dalam satu perintah:
Substitusi proses
<( )
membuat file — atau, tepatnya, deskriptor file — dengan cepat, yangffmpeg
bisa dibaca. File ini akan berisi path ke setiap.wav
file di direktori saat ini. Kami harus mengawalnya dengan$(pwd)
untuk mendapatkan jalur yang benar relatif terhadap direktori Anda saat ini, dan tidak relatif terhadap deskriptor file.Tentu saja, perintah dalam substitusi dapat diubah menjadi sesuatu yang lain.
sumber
Unsafe file name
kesalahan, Anda perlu-safe 0
opsi sebelumnya-i
. ref. stackoverflow.com/q/38996925/297679Pilihan lain adalah menggunakan concat
sumber
Dalam skrip Cmd.EXE .BAT Win8:
Dengan cara ini, Anda tidak perlu repot-repot dengan nama file sumber atau parameter perhitungan jumlah.
sumber
Anda dapat menggunakan
shntool
file-file wav.sumber