Mesclar dois canais de áudio (estéreo) em um (mono) no GSM6.10 usando FFMPEG

27

Gostaria de saber se é possível mesclar áudio estéreo em mono em um arquivo de áudio GSM6.10 usando FFMPEG. Se for, forneça o comando para conseguir isso.
Caso contrário, é possível converter GSM6.10 em WAV PCM com FFMPEG? Eu poderia então mesclar os canais no WAV PCM.

Se houver outra ferramenta gratuita que possa fazer isso, também posso tentar.

Ron Harlev
fonte

Respostas:

42

A maneira de "mixagem" de estéreo para mono em qualquer arquivo suportado no ffmpeg é assim:

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

O bit "-ac 1" instrui o ffmpeg a emitir apenas 1 canal de áudio, ou seja, mono. Por padrão, esta operação preservará o formato do arquivo, mas reverterá a taxa de bits para o padrão ffmpeg de 64kbs. Se você deseja uma taxa de bits mais alta, pode:

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

... substituindo 192k pela taxa de bits preferida.

Observe que sua instalação do ffmpeg deve suportar seu codec GSM específico para que funcione corretamente. Eu sei que algum áudio codificado GSM é suportado no ffmpeg através do libgsm, mas eu nunca lidei com arquivos GSM. No entanto, converti com sucesso outros tipos de arquivos (MP3) para mono sem problemas.

Ryan Tate
fonte
3
Isso é realmente mistura, ou apenas queda de canais?
Jonny
Na documentação do filtro 'pan': "Observe que o ffmpeg integra um sistema padrão de down-mix (e up-mix) que deve ser preferido (consulte a opção" -ac "), a menos que você tenha necessidades muito específicas."
Pare de prejudicar Monica
Os arquivos de entrada e saída devem ser apenas arquivos de áudio. A entrada não pode ser vídeo.
21414 Kevin
11
Manipulação de canal de áudio "Misture um único fluxo estéreo em um fluxo mono. Ambos os canais do fluxo estéreo serão mixados no fluxo:"ffmpeg -i stereo.flac -ac 1 mono.flac
Joel Purra
@ Kevin - entrada pode ser um arquivo de vídeo, eu só verificada, (com ou sem -vn)
Berry Tsakala
7

A resposta acima funciona no caso em que você ainda deseja converter entre formatos, mas em arquivos longos que podem levar muito tempo. Ou talvez você não deseje converter mais uma vez, degradando a qualidade e, portanto, deseje apenas transmitir a cópia. O uso de -codec: a e -ac 1 ao mesmo tempo não funciona, mas de acordo com a documentação do filtro de panela ffmpeg, se determinadas condições forem atendidas (como você não está ajustando os níveis dos canais ou misturando dois canais em um) , ele reconhecerá este caso e informará: "Mapeamento de canal puro detectado" e fará uma cópia de fluxo, que é muito mais rápida.

Por exemplo: Para tornar um arquivo estéreo mono usando o canal esquerdo e copiando o fluxo de vídeo, faça o seguinte:

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

Eu sei que é possível com o sox .... eu uso o sox para manipulação de canais, o kdenlive e o audacity para edição moderada e o ffmpeg para remuxing. apenas informando o que funcionou bem para mim no passado.

RobotHumans
fonte
0

Para preservar o vídeo, usei uma combinação das duas respostas acima:

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

Isso produziu uma solução suficiente para mim.

Águia
fonte