Como posso corrigir a duração incorreta do mp3?

22

Tenho várias músicas na minha biblioteca de músicas que exibem valores incorretos de duração e, portanto, são reproduzidas apenas parcialmente na Clementine. No Banshee e em outros jogadores, eles mostram diferentes valores de duração e às vezes tocam a música completa.

Existe uma maneira de corrigir isso sem ter que "recodificar" a música?

RolandiXor
fonte

Respostas:

24

O MP3 Diags pode corrigir durações incorretas (e outros erros). É de código aberto e nos repositórios. É uma ferramenta GUI.

Instalação

sudo apt-get install mp3diags mp3diags-doc

Outra opção é o MP3val , que pode ser usado via linha de comando ou via GUI:

Instalação

sudo apt-get install mp3val

Exemplo de uso

mp3val damaged.mp3 -f -t

-f: corrigir erros,: -tmanter o carimbo de data / hora original

phoibos
fonte
Isso funcionou para mim. Eu uso catpara combinar partes de audiolivros em um arquivo ( cat 1.mp3 2.mp3 > out.mp3) e isso funciona muito bem para a reprodução, mas quase todos os players ficam malucos com os carimbos de data e hora e até mediainfomostram a duração do primeiro arquivo em vez do combinado.
Blockloop
caté menos que o ideal para tarefas como combinar mp3s. Uma maneira melhor: http://superuser.com/questions/314239/how-to-join-merge-many-mp3-files
Phoibos
Por que você pensa isso? Os arquivos MP3 não são muito mais do que fluxos brutos e são quase o candidato perfeito, catalém dos efeitos colaterais triviais resolvidos com uma simples reavaliação dos dados do cabeçalho Xing. Mesmo sem o mp3val, os arquivos ainda são reproduzidos em todos os players que os enviei. caté extremamente eficiente e MUITO mais rápido que recodificar com ffmpeg. Mesmo com o comando mp3val adicionado.
blockloop
ffmpegcom concate -acodec copyfaz não recodificar - ele apenas copia os fluxos (por isso é rápido), mas cria um arquivo adequado em primeiro lugar (sem dados do cabeçalho & Tag inúteis que aparece várias vezes nos arquivos resultantes).
Phoibos
10

Se você não deseja instalar nada de novo, tente com ffmpeg :

ffmpeg -i file_orig.mp3 -acodec copy file_fixed.mp3
Alcaro
fonte
Solução perfeita, funciona também se o arquivo mp3 errado foi criado pelo próprio ffmpeg!
Pierpaolo Cira 24/02
Isso realmente funcionou para mim, quando as soluções mp3vale mp3checknão. (Só para ter certeza, ele não re-codificar, né?)
Noldorin
Com a cópia -acodec, ela não é recodificada. Se você deseja verificar, tente com e sem ele e verifique a velocidade.
Alcaro
1

Além dos cabeçalhos VBR que não correspondem ao áudio real (que você usaria mp3valpara corrigir, como mencionado na outra resposta), outro motivo para isso ser causado por um arquivo MP3 com a etiqueta ID3 que possui um valor incorreto para a TLENetiqueta. Você pode corrigir isso usando a mid3v2ferramenta do mutagenpacote para remover a tag (aparentemente opcional):

$ mid3v2 --delete-frames=TLEN filename.mp3

O music player Quodlibet também possui um conveniente plug-in "Fix MP3 Duration", que você pode usar para fazer isso.

(Extraído das perguntas frequentes do Quodlibet: http://quodlibet.readthedocs.org/en/latest/guide/faq.html )

nedned
fonte
1

O mp3check também funcionou perfeitamente para mim com caracteres curinga.

sudo apt-get install mp3check

mp3check {filename or wildcard} --cut-junk-start --cut-junk-end --fix-headers
Dmitry Orlov
fonte
ajudou quando Windows media player mostrou duração arquivo mp3 errado
Mantas D
AVISO Se você possui tags id3v2, arte da capa etc., esteja extremamente ciente desses problemas (aprendi da maneira mais difícil) bugs.launchpad.net/ubuntu/+source/mp3check/+bug/592775 bugs.launchpad.net/ubuntu/+ source / mp3check / + bug / 1348223
digitaltoast