O contêiner WAV é basicamente apenas um cabeçalho de arquivo. Não suporta frames de tamanho variável, exigidos pela Vorbis. "OggVorbis ACM" é, na verdade, Vorbis dentro de um contêiner Ogg (para fornecer o enquadramento), para que possa ser usado na estrutura de áudio herdada do Windows ACM, que não suporta o enquadramento necessário. Isso também permite que ele seja usado em arquivos WAV, embora isso não faça muito sentido, já que você pode salvar um arquivo .ogg.
O ffmpeg não implementa nem reconhece este codec WAV "OggVorbis ACM" não padrão. Você pode usar um programa que reconheça isso, como o Audacity , ou você pode tentar apenas retirar o cabeçalho WAV para extrair o Ogg Vorbis que está dentro.
Os fluxos Ogg válidos começam com OggS
, que marca o início de cada Página Ogg no arquivo. No arquivo fornecido, há 66 bytes antes do primeiro OggS
. Pelo menos no Mac / Linux / Unix você pode retirar os primeiros 66 bytes com o comando:
tail -c +67 sample.wav > sample.ogg
No seu arquivo, o Ogg embutido na verdade contém dois fluxos, o que parece ser uma tentativa de preenchê-lo com uma taxa de bits fixa. O segundo fluxo tem um codec desconhecido e parece confundir alguns jogadores. Por exemplo, o Firefox reproduz o primeiro fluxo (ignorando o segundo), mas o Chrome pára quando encontra o segundo fluxo. Ele também tem outras violações de especificação, incluindo nenhum eos (final de fluxo) (talvez porque você não postou o arquivo completo).
Se você extrair o primeiro bitstream (o vorbis one), parece tocar corretamente. Aqui estão algumas ferramentas que devem ser capazes de extrair o primeiro bitstream:
- oggsplit (funciona nos arquivos wav ou ogg)
- oggSplit de Ogg Video Tools (funciona no arquivo ogg)
- oggz-rip (no entanto, este programa não gosta do seu arquivo, provavelmente devido a outras violações de especificação)
Pode ser melhor apenas ler o arquivo WAV com um programa como o Audacity e recodificá-lo para garantir que ele não contenha nenhuma outra estranheza.