avconv cria cria arquivos cuja duração está incorreta

4

Eu estou tentando criar um MP3 de taxa variável a partir de um flac usando o seguinte comando:

avconv -i t.flac -id3v2_version 3 -vn -acodec libmp3lame -aq 0 t.mp3

avconv e mediainfo listam a duração do mp3 final corretamente como 2m40s, mas cada mp3 player (clementine, juk e amarok) que eu tentei diz que a música tem 21m15s de comprimento. Usando clementine e amarok para ver detalhes sobre o arquivo, eles acham que a taxa de bits é de 32kbps enquanto avconv e mediainfo (corretamente) listam a taxa de bits como 255kbps. (255/32) * 2.66 = 21.20, então tenho certeza que é o bitrate percebido que é o problema, mas eu não sei o que fazer para consertar isso.

Apenas por diversão, eu também tentei criar um arquivo de taxa de bits constante com o seguinte comando:

avconv -i t.flac -id3v2_version 3 -vn -acodec libmp3lame -ab 320k u.mp3

Isso tem o mesmo problema. Estranhamente, mesmo que a taxa de bits seja especificada, o mediainfo ainda relata que a taxa de bits é variável e os mp3 players têm os mesmos problemas gerais com a duração.

Como posso corrigir isso?

    
por William Everett 24.10.2013 / 22:25

3 respostas

3

Para a taxa de bits constante, uma correção é descrita em como usar libmp3lame para obter CBR : canaliza a saída avconv para um arquivo:

avconv -i test_orig.mp3 -b:a 128k -f mp3 - >test_ffmpeg_cbr.mp3

Isso faz com que o avconv use os bons cabeçalhos mp3 para o CBR.

Uma alternativa: operando no mp3 resultante (muito útil para quando o material de origem não estiver mais indisponível):

avconv -i faulty_mp3 -vn -c:a copy -ss 0:0:0 repaired_mp3
    
por 28.01.2014 / 23:17
2

O mesmo acontece quando você usa lame diretamente, independentemente do mecanismo de taxa de bits variável escolhido ( lame oferece --abr , --vbr-old e --vbr-new ).

Portanto, isso parece ser uma limitação, seja do formato MP3 ou do codificador lame. Jogadores como mplayer parecem simplesmente adivinhar o comprimento total pelas taxas de bits médias que encontraram até agora.

Com o arquivo que eu tentei, ele começa exibindo 30 minutos, depois de 10 segundos, é até 8:15, o que é perto das 8:08 que ele realmente tem ...

Como ainda funciona corretamente, acho que não há nada para você corrigir. Se você tem um player de hardware que não pode lidar com isso, você teria que usar uma taxa de bits constante ou usar outra coisa se seu player for compatível com outros formatos que suportam taxas de bits variáveis (OGG / Vorbis?).

    
por 25.10.2013 / 01:25
2

Posso confirmar que o avconv tem esse problema, mas não é ruim! no meu Linux Mint 14 Nadia

para o caminho avconv, uma solução rápida é usar vbrfix no arquivo mp3 final assim: vbrfix -always -makevbr -lameinfo imput.mp3 output.mp3

    
por 17.11.2013 / 20:46