FFMPEG kullanarak GSM6.10 üzerinde iki ses kanalını (stereo) bir (mono) olarak birleştirin


27

FFMPEG kullanarak bir GSM6.10 ses dosyasında stereo sesi mono olarak birleştirmenin mümkün olup olmadığını bilmek istiyorum. Eğer öyleyse, lütfen bunu başarmak için komut verin.
Aksi takdirde, GSM6.10'u FFMPEG ile WAV PCM'ye dönüştürmek mümkün mü? Daha sonra WAV PCM'deki kanalları birleştirebilirim.

Bunu yapabilen başka bir ücretsiz araç varsa bunu da deneyebilirim.

Yanıtlar:


42

Ffmpeg'de desteklenen herhangi bir dosyada stereodan mono'ya "karıştırmanın" yolu şöyledir:

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

"-Ac 1" biti, ffmpeg'e sadece 1 ses kanalı, yani mono çıkışı vermesi talimatını verir. Varsayılan olarak, bu işlem dosya biçiminizi koruyacaktır, ancak bit hızınızı ffmpeg varsayılan 64kbs'ye geri döndürecektir. Daha yüksek bir bit hızı istiyorsanız, şunları yapabilirsiniz:

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

... 192k yerine tercih edilen bit hızını koymak.

Düzgün çalışabilmesi için ffmpeg kurulumunuzun özel GSM kodekinizi desteklemesi gerektiğini unutmayın. Bazı GSM kodlu seslerin libgsm aracılığıyla ffmpeg'de desteklendiğini biliyorum ama GSM dosyaları ile hiç ilgilenmedim. Ancak sorunsuz bir şekilde başka bir dosya türünü (MP3) mono'ya dönüştürdüm.


3
Bu gerçekten kanalları mı karıştırıyor, yoksa sadece kanalları mı düşürüyor?
Jonny

'Pan' filtre belgelerinden: "ffmpeg'in, çok özel gereksinimleriniz yoksa tercih edilmesi gereken varsayılan bir downmix (ve upmix) sistemini entegre ettiğini unutmayın."
Monica'ya Zarar Vermeyi Durdur

Hem giriş hem de çıkış dosyaları yalnızca ses dosyaları olmalıdır. Giriş video olamaz.
Kevin

1
Ses Kanalı Manipülasyonu "Tek bir stereo akışı mono bir akışa karıştırın. Stereo akışın her iki kanalı da akışa karıştırılacak:"ffmpeg -i stereo.flac -ac 1 mono.flac
Joel Purra

@Kevin - giriş bir video dosyası olabilir, ben doğruladım, (-vn ile veya olmadan)
Berry Tsakala

7

Yukarıdaki yanıt, formatlar arasında hala dönüşüm yapmak istediğinizde, ancak uzun sürebilecek uzun dosyalar için geçerlidir. Ya da belki bir daha dönüştürmek istemezsiniz, kaliteyi düşürürsünüz ve bu yüzden sadece kopya akışı yapmak isteyebilirsiniz. -Codec: a ve -ac 1'i aynı anda kullanmak işe yaramaz, ancak ffmpeg pan filtre belgelerine göre, belirli koşullar yerine getirilirse (kanalların seviyelerini ayarlamıyorsanız veya iki kanalı bire karıştırmıyorsanız gibi) , bu durumu tanıyacak ve raporlayacak: "Saf kanal eşlemesi algılandı" ve çok daha hızlı bir akış kopyası yapın.

Örneğin: Yalnızca sol kanalı kullanarak ve yalnızca video akışını kopyalayarak stereo bir dosyayı mono yapmak için şunları yapın:

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

0

Ben sox ile mümkün olduğunu biliyorum .... i kanal düzenleme, hafif düzenleme için kdenlive ve küstahlık ve remuxing için ffmpeg için sox kullanın. sadece geçmişte benim için neyin iyi sonuç verdiğini bilmeni sağladım.


0

Videoyu korumak için yukarıda iki cevaptan oluşan bir kombinasyon kullandım:

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

Bu benim için yeterli bir çözüm üretti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.