Pergunta

Eu estou procurando uma maneira infalível de determinar o codec utilizado em um arquivo de áudio ou vídeo. As duas coisas que eu estou usando atualmente são a extensão do arquivo (óbvio), e o tipo de mime determinado executando `-ib arquivo' no arquivo.

Isto não me parece todos obter o caminho até lá: cargas de formatos são `invólucro 'formatos que escondem o codec exato usado dentro - por exemplo,' arquivos .ogg' pode usar internamente o Vorbis, Speex, ou codecs FLAC. Seu tipo de MIME também é geralmente escondido sob 'application / ogg' ou similar.

O programa `file' é aparentemente capaz de me dizer qual codec é usado, mas ele retorna isso como prosa legível:

kb.ogg: Ogg data, Vorbis audio, stereo, 44100 Hz, ~0 bps

e, como tal, é desonesto usar programaticamente.

O que eu estou essencialmente perguntando é: está lá um script lá fora (qualquer língua) que podem percorrer estes formatos de mensagens publicitárias e me diga o que a carne do arquivo é feita de

Foi útil?

Solução

ffmpeg inclui uma biblioteca chamada libavformat que pode abrir e demux praticamente qualquer formato de mídia. Obviamente que é mais do que você realmente precisa, mas eu não acho que você pode encontrar qualquer outra coisa que é tão completa. Eu usei-me com grande sucesso. Dê uma olhada na este artigo para uma introdução. Há também ligações para estas bibliotecas para algumas linguagens de script comuns, como python .

(Se você não quiser construir algo usando a biblioteca, você provavelmente pode usar o binário ffmpeg regular.)

Outras dicas

Você sempre pode usar seu próprio arquivo magic, copiado e modificado a partir do arquivo magic pré-instalado, e alterar a seqüência de retorno para que ele possa ser facilmente analisado pelo seu programa.

Veja:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top