Como definir a versão de um arquivo MP3 de saída no FFmpeg

0

Quero dividir um arquivo MP3 estéreo em dois arquivos MP3 mono usando o FFmpeg, de modo que cada um dos arquivos mono seja MPEG-1 Layer 3 Versão 1:

Eu uso este comando:

ffmpeg -i input.mp3 -map_channel 0.0.0 left.mp3 -map_channel 0.0.1 right.mp3

O arquivo de entrada é MPEG-1 Layer 3 Versão 1, mas as saídas são MPEG-1 Layer 3 Versão 2.

samsam114
fonte
Primeiro, seu inglês está bem! Mas apenas um esclarecimento: você diz “MPEG-1 versão 1” e “MPEG-1 versão 2”, mas quer dizer “MPEG-1 Audio Layer I” e “MPEG-1 Audio Layer II?”
JakeGould

Respostas:

1

Você não pode configurá-lo. O FFmpeg escolhe a versão automaticamente com base na saída desejada. para forçar uma versão, você deve usar opções compatíveis com essa versão. Leia este link (introdução dessa página abaixo) e escolha a combinação correta que funciona para o seu aplicativo.

Dentro de um arquivo de áudio MPEG, não há cabeçalho principal, pois um arquivo de áudio MPEG é construído a partir de uma sucessão de partes menores chamadas quadros. Cada quadro é um bloco de dados com seu próprio cabeçalho e informações de áudio.

No caso da Camada I ou Camada II, os quadros são totalmente independentes um do outro, portanto, você pode cortar qualquer parte de um arquivo de áudio MPEG e reproduzi-lo corretamente. O player tocará a música a partir do primeiro quadro válido completo que encontrar. No entanto, no caso da camada III, os quadros nem sempre são independentes. Devido ao possível uso do "reservatório de bytes", que é uma espécie de buffer interno, os quadros geralmente dependem um do outro. Na pior das hipóteses, podem ser necessários 9 quadros de entrada antes de poder decodificar um único quadro.

Se precisar recuperar informações sobre um arquivo de áudio MPEG, basta localizar o primeiro quadro e recuperar informações do cabeçalho. As informações em outros quadros devem ser consistentes com o primeiro, exceto a taxa de bits, pois você pode recuperar informações de um arquivo de taxa de bits variável (VBR). Em um arquivo VBR, a taxa de bits pode ser alterada em cada quadro. Ele pode ser usado, como exemplo, para manter uma qualidade de som constante durante todo o arquivo, usando mais bits quando a música é mais complexa e, portanto, exige que mais bits sejam codificados com uma qualidade semelhante.

O cabeçalho do quadro em si tem 32 bits (4 bytes) de comprimento. Os primeiros doze bits (ou primeiros onze bits no caso da extensão MPEG 2.5) de um cabeçalho de quadro são sempre definidos como 1 e são chamados de "sincronização de quadro". Os quadros também podem apresentar uma soma de verificação CRC opcional. Tem 16 bits e, se existir, segue imediatamente o cabeçalho do quadro. Após o CRC, vêm os dados de áudio. Recalculando o CRC e comparando seu valor ao valor peneirado, é possível verificar se o quadro foi alterado durante a transmissão do fluxo de bits.

szatmary
fonte
Então, você pode me dizer o comando para produzir a saída desejada?
samsam114