Jawaban atas pertanyaan ini telah menjadi sedikit berantakan, dengan banyak berisi informasi yang berlebihan dan yang lainnya tidak akurat. Jawaban ini merupakan upaya untuk merampingkan informasi dalam jawaban ini sambil menghilangkan masalah di dalamnya.
Yang paling penting, perlu diingat bahwa jawaban Gregory, yang saat ini merupakan jawaban terpilih untuk pertanyaan ini, tidak berbeda dengan menggunakan -ac 2
saklar - lebih lanjut tentang ini di bawah ini.
Downmixing aliran audio saluran 5.1 ke stereo dengan -ac 2
FFmpeg hadir dengan kemampuan bawaan untuk downmixing trek 5.1 ke stereo, dan ini juga solusi yang direkomendasikan oleh dokumentasi FFmpeg :
Catatan: ffmpeg mengintegrasikan sistem down-mix (dan up-mix) default yang lebih disukai ( -ac
opsi) di atas filter pan kecuali Anda memiliki kebutuhan yang sangat spesifik.
The -ac 2
beralih bekerja dengan mencampur proporsi yang pertama 5 saluran dari sungai 6-channel sumber ini - Kembali Kiri, Kanan Kembali, Front Kiri, Front Kanan dan Front Center - dalam Front Kiri dan Kanan depan saluran output stream stereo:
Saat melakukannya, audio dari saluran LFE ( .1 in 5.1, disediakan untuk subwoofer dan digunakan untuk efek frekuensi rendah yang dalam) dibuang sepenuhnya ketika menggunakan opsi ini.
Sayangnya, dalam pengujian saya -ac 2
menghasilkan tingkat keseluruhan musik dan dialog yang paling berbeda dengan sumbernya, menjadikannya formula downmix yang memberikan output terburuk dari semua formula yang saya uji, meskipun Anda dapat mengujinya dan menemukan bahwa itu memberi Anda downmix yang cukup memadai untuk kebutuhan Anda, dalam hal ini menggunakan formula lain akan berlebihan bagi Anda.
Untuk downmix track DTS dengan -ac 2
tanpa transcoding (yaitu untuk menjaga codec dan ekstensinya tetap sama):
ffmpeg -i "sourcetrack.dts" -c:a dca -ac 2 "stereotrack.dts"
Seperti yang ditunjukkan oleh Mephisto dalam jawabannya, jika dialog dan musik terdengar seimbang antara satu sama lain untuk Anda tetapi tidak memiliki volume, Anda dapat mengurangi aliran sementara juga meningkatkan volumenya:
ffmpeg -i "sourcetrack.dts" -c:a dca -ac 2 -vol 425 "stereotrack.dts"
Untuk -vol
sakelar, volume 100% di sumber setara dengan nilai integer 256, dan menggunakan nilai lebih besar dari ini akan meningkatkan volume keseluruhan aliran audio. Namun, perhatikan bahwa melakukan terlalu banyak dapat mengakibatkan distorsi atau artefak, terutama selama bagian yang lebih keras.
Untukmengurangi aliran audio ke stereo dan transkode ke AC3 codec, misalnya:
ffmpeg -i "sourcetrack.dts" -c:a ac3 -ac 2 "stereotrack.ac3"
Downmixing aliran audio saluran 5.1 ke stereo dengan algoritme campuran khusus
Jika Anda ingin downmix berkualitas lebih tinggi, atau Anda benar-benar harus memasukkan aliran LFE ke dalam output Anda, Anda dapat menggunakan saklar filter audio FFmpeg ( -af
) untuk downmix audio menggunakan formula campuran khusus.
Downmixing dengan rumus ATSC (jawaban Gregory)
Pada saat memposting jawaban ini, jawaban pilihan teratas untuk pertanyaan ini adalah milik Gregory , yang menempatkan formula dari spesifikasi ATSC (lihat bagian 7.8.2, Menurunkan ke Dua Saluran ) ke dalam filter audio FFmpeg. Spesifikasi ini sendiri langsung terkait dengan dengan dokumentasi FFmpeg pada topik , menunjukkan itu sangat mungkin menjadi rumus yang sama yang FFmpeg sudah menerapkan untuk perusahaan -ac 2
switch. Jika ini benar, maka mengetik seluruh rumus dalam jawaban Gregory tidak akan berbeda dengan menggunakan -ac 2
sakelar, dan karenanya membuang-buang waktu.
Saya memutuskan untuk menguji hal ini dengan mengkode ulang input audio yang sama menggunakan keduanya -ac 2
dan -af
filter dari jawaban Gregory (perintah persis yang digunakan dapat dilihat pada catatan kaki untuk jawaban ini).
Saya kemudian membandingkan ukuran file output yang dihasilkan dan menemukan mereka, byte-untuk-byte, ukuran yang sama:
Akhirnya, saya membuka kedua file output di Audacity, dan membandingkan bentuk gelombang mereka untuk mengkonfirmasi mereka identik (klik untuk memperbesar):
Karena itu, tampaknya cukup konklusif bahwa rumus ATSC yang dirinci dalam jawaban Gregory adalah yang sama sudah diterapkan oleh FFmpeg , dan bahwa menggunakannya sepenuhnya berlebihan ketika tidak melakukan apa pun yang -ac 2
tidak, dan merupakan perintah yang jauh lebih rumit.
Downmixing tanpa membuang saluran LFE (jawaban Dave_750)
Dari beberapa yang disertakan dalam jawaban, ini adalah satu-satunya formula downmix yang tampaknya mencampur saluran LFE ke stereo output alih-alih membuang seluruhnya, dan sebagai hasilnya, salah satu yang memastikan paling sedikit suara dari sumber adalah kalah.
Tingkat volume keseluruhan lebih tinggi dan lebih lengkap daripada melakukan -ac 2
, tetapi juga masih lebih rendah daripada downmix Dialog Nightmode di bawah ini. Namun, level musik lebih dekat ke sumber daripada downmix Dialog Nightmode, dan karena dimasukkannya trek LFE, meningkatkan volume output saat menggunakan rumus downmix ini dapat membuat aliran output yang terdengar lebih benar ke sumber 5.1 daripada yang lainnya. rumus yang saya uji.
Jika Anda memiliki kemampuan, saya akan sangat menyarankan untuk menyandikan aliran audio Anda menggunakan rumus downmix dan downmix Dialog Nightmode, dan dengan hati-hati membandingkan bentuk gelombang keduanya untuk menentukan mana yang lebih baik.
Untuk downmix trek 5,1 ke stereo menggunakan formula ini dan meningkatkan level volumenya menjadi 425 (di mana 256 adalah 100% dari level volume sumber asli):
ffmpeg -i "sourcetrack.dts" -c dca -vol 425 -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" "outputstereo.dts"
Downmixing dengan Dialog Nightmode Robert Collier (jawaban Shane Harrelson)
Rumus Nightmode Dialogue, yang dibuat oleh Robert Collier di forum Doom9 dan bersumber dari Shane Harrelson dalam jawabannya, menghasilkan downmix yang jauh lebih baik daripada -ac 2
switch - alih-alih dialog yang terlalu sunyi, itu membawa mereka kembali ke level yang lebih dekat dengan sumber.
Dari deskripsi campuran Robert Collier:
Setelah mengkonversi banyak trek film DTS dari 5.1 ke 2.0 menggunakan eac3to, saya telah menemukan pemetaan saluran eac3to default untuk menghasilkan dialog yang sangat tenang dan musik yang terlalu keras dan adegan aksi. Walaupun koefisien eac3to channel downmix memiliki dasar ilmiah, mereka sering tidak terdengar bagus dalam praktiknya karena volume dialog yang rendah. Preset ini adalah untuk mereka yang mencari dialog yang jelas dengan musik saluran kiri dan kanan masih terdengar tetapi lebih di latar belakang.
Seperti yang Anda lihat - pusat depan (dialog) masuk dengan benar sekarang dan tetap pada tingkat asli - sementara musik dan ledakan tetap efek latar belakang dan tidak mengalahkan Anda. Prasetel ini memecahkan masalah Anda yang harus terus-menerus mengutak-atik kenop volume saat menonton DTS 5.1 yang dikonversi ke 2.0 film untuk mendengarkan dialog. (Terutama untuk menonton film di malam hari di mana Anda tidak ingin membangunkan orang lain tetapi masih ingin dapat mendengar dialog).
Sayangnya, musik formula downmix ini jauh lebih rendah daripada di sumber 5.1 (yang kemungkinan oleh desain mempertimbangkan niat Collier untuk membuat campuran "nightmode") dan karena sepenuhnya kehilangan trek LFE, audio output keseluruhan tidak terdengar penuh atau dekat dengan sumber seperti rumus Dave_750 dengan volume yang ditingkatkan .
Namun, jika karena alasan tertentu Anda ingin menghindari meningkatkan volume keseluruhan aliran, maka Dialog Nightmode kemungkinan akan menjadi pilihan terbaik Anda - meskipun sekali lagi, saya sangat merekomendasikan untuk menyandikan aliran audio Anda ke keduanya dan membandingkan bentuk gelombang keduanya dengan hati-hati. .
Untuk downmix dengan rumus Nightmode Dialogue di FFmpeg:
ffmpeg -i "sourcetrack.dts" -c dca -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" "stereotrack.dts"
Jawaban Tarc
Jawaban ini hanya menempatkan rumus downmix Nightmode Dialog dari jawaban Shane Harrelson menjadi perintah untuk mengubah aliran audio dalam wadah MKV. Sementara perintah yang diberikan dalam jawaban ini akan bekerja dengan baik pada aliran audio seperti itu, mengadaptasinya untuk trek audio mandiri akan memberikan kesalahan:
Penyaringan dan streaming tidak dapat digunakan bersama
Ini karena codec audio tidak dapat disalin ketika downmixing - seperti semua perubahan lain yang dilakukan FFmpeg ke aliran output, downmix mensyaratkan trek dikodekan ulang agar perubahan diterapkan.
Perintah ini juga termasuk -ac 2
saklar redundan yang diabaikan oleh FFmpeg.
Perintah uji
Untuk menunjukkan keandalan pengujian yang saya lakukan untuk jawaban ini, di bawah ini adalah semua perintah yang saya gunakan untuk menguji setiap rumus downmix.
Perintah tes yang digunakan untuk -ac 2
opsi:
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -ac 2 "Audio 1 (-ac 2).wav"
Perintah tes digunakan untuk jawaban Gregory:
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -af "pan=stereo|FL < 1.0*FL + 0.707*FC + 0.707*BL|FR < 1.0*FR + 0.707*FC + 0.707*BR" "Audio 2 (ATSC Algorithm Downmix).wav"
Perintah tes yang digunakan untuk jawaban Dave_750:
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -vol 425 -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" "Audio 4 (Dave750 Downmix).wav"
Perintah uji yang digunakan untuk jawaban Shane Harrelson:
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" "Audio 3 (Nightmode Dialogue Downmix).wav"