Gabungkan dua saluran audio (stereo) menjadi satu (mono) pada GSM6.10 menggunakan FFMPEG

27

Saya ingin tahu apakah mungkin untuk menggabungkan audio stereo menjadi mono pada file audio GSM6.10 menggunakan FFMPEG. Jika ya, berikan perintah untuk mencapai ini.
Jika tidak, apakah mungkin untuk mengubah GSM6.10 ke WAV PCM dengan FFMPEG? Saya kemudian bisa menggabungkan saluran pada PCM WAV.

Jika ada alat gratis lain yang bisa melakukan ini, saya juga bisa mencobanya.

Ron Harlev
sumber

Jawaban:

42

Cara "mixdown" dari stereo ke mono di file yang didukung di ffmpeg seperti:

ffmpeg -i file.ext -ac 1 file_mono.ext

Bit "-ac 1" menginstruksikan ffmpeg untuk mengeluarkan hanya 1 saluran audio, yaitu mono. Secara default, operasi ini akan mempertahankan format file Anda tetapi akan mengembalikan bitrate Anda ke ffmpeg default 64kbs. Jika Anda ingin bitrate lebih tinggi, Anda dapat melakukan:

ffmpeg -i file.ext -ac 1 -ab 192k file_mono.ext

... mengganti 192k dengan bitrate pilihan Anda.

Perhatikan bahwa instal ffmpeg Anda harus mendukung codec GSM Anda agar ini berfungsi dengan baik. Saya tahu beberapa GSM disandikan audio didukung dalam ffmpeg melalui libgsm tetapi saya tidak pernah berurusan dengan file GSM sendiri. Saya telah berhasil mengkonversi jenis file lain (MP3) ke mono tanpa hambatan, namun.

Ryan Tate
sumber
3
Apakah ini benar-benar pencampuran, atau hanya menjatuhkan saluran?
Jonny
Dari dokumentasi filter 'pan': "Perhatikan bahwa ffmpeg mengintegrasikan sistem down-mix (dan up-mix) default yang harus dipilih (lihat opsi" -ac ") kecuali Anda memiliki kebutuhan yang sangat spesifik."
Stop Harming Monica
File input dan output harus hanya file audio. Input tidak boleh berupa video.
Kevin
1
Manipulasi Saluran Audio "Campurkan satu aliran stereo ke satu aliran mono. Kedua saluran aliran stereo akan di-downmix ke dalam aliran:"ffmpeg -i stereo.flac -ac 1 mono.flac
Joel Purra
@Kevin - input dapat berupa file video, saya baru saja diverifikasi, (dengan atau tanpa -vn)
Berry Tsakala
7

Jawaban di atas berfungsi jika Anda masih ingin mengonversi di antara format, tetapi untuk file panjang yang dapat memakan waktu lama. Atau mungkin Anda tidak ingin mengonversi lagi, menurunkan kualitas, jadi Anda mungkin ingin melakukan streaming salinan. Menggunakan -codec: a dan -ac 1 pada saat yang sama tidak berfungsi, tetapi menurut dokumentasi filter pan ffmpeg, jika kondisi tertentu terpenuhi (seperti Anda tidak menyesuaikan level saluran atau menggabungkan dua saluran menjadi satu) , ia akan mengenali kasus ini dan melaporkan: "Pemetaan saluran murni terdeteksi", dan lakukan salinan aliran, yang jauh lebih cepat.

Misalnya: Untuk membuat file stereo mono hanya dengan menggunakan saluran kiri, dan hanya menyalin aliran video, lakukan ini:

ffmpeg -i infile.ext -codec:v copy -af pan="mono: c0=FL" outfile.ext
mondaugen
sumber
0

Saya tahu ini mungkin dengan sox .... saya menggunakan sox untuk manipulasi saluran, kdenlive dan keberanian untuk mengedit ringan, dan ffmpeg untuk remuxing. hanya membiarkan Anda tahu apa yang berhasil dengan baik bagi saya di masa lalu.

RobotHumans
sumber
0

Untuk menyimpan video, saya menggunakan kombinasi dua jawaban di atas:

ffmpeg -i infile -codec:v copy -ac 1 -ab 192k outfile

Itu menghasilkan solusi yang cukup bagi saya.

Burung rajawali
sumber