Pergunta

Eu estou procurando uma biblioteca de codec de software baseado para ser usado em aplicativos integrado (C / C ++). Estou interessado em ambas as bibliotecas de codec comerciais e gratuitos. Qualquer sugestão será bem-vindo.

Além disso, se você tem alguma experiência com OpenSL ES e saber quais soluções de software / hardware são compatíveis, eu ficaria feliz em ouvir sobre isso.

Eu preciso apoiar codecs populares. MP3 é uma obrigação. Estou implementando uma referência media player para uma aplicação integrada e não pode simplesmente dizer ao usuário: "Ei converter toda a sua biblioteca de música para Vorbis, é muito melhor." O suporte para o codec MP3 obrigatório, mas eu ficaria feliz em encontrar uma biblioteca mais avançado manipulação mais codecs (codecs de áudio mais, codecs de vídeo, etc.)

Foi útil?

Solução

Disclaimer, divulgação cheia, etc:. Eu atualmente trabalho lá como um empreiteiro

Por um lado, você está interessado em descodificadores apenas ou codecs completos (descodificadores + encoders)?

Eu acho que a resposta depende de sua situação exata. Se você está procurando um jogador completo para a sua plataforma embarcada, NXP Software poderia ser uma solução. Eles fornecem outras aplicações também, como um gravador.

Outras dicas

Dê uma olhada libvorbis , um codec de áudio open source BSD que é muito bom. Há também um descodificador de referência para vorbis chamado Tremor que utiliza apenas inteiro aritmética, e, assim, pode ser utilizado em arquitecturas sem ponto flutuante.

O codec Vorbis é open source e é uma boa alternativa para MP3.

Depois de tomar um rápido olhar para a API OpenSL ES, parece já existem alguns codecs definidos:

#define SL_AUDIOCODEC_PCM         ((SLuint32) 0x00000001)
#define SL_AUDIOCODEC_MP3         ((SLuint32) 0x00000002)
#define SL_AUDIOCODEC_AMR         ((SLuint32) 0x00000003)
#define SL_AUDIOCODEC_AMRWB       ((SLuint32) 0x00000004)
#define SL_AUDIOCODEC_AMRWBPLUS   ((SLuint32) 0x00000005)
#define SL_AUDIOCODEC_AAC         ((SLuint32) 0x00000006)
#define SL_AUDIOCODEC_WMA         ((SLuint32) 0x00000007)
#define SL_AUDIOCODEC_REAL        ((SLuint32) 0x00000008)

Você provavelmente deve descobrir se você está limitado àqueles.

codificação ou decodificação?

LAME (mp3) e FFmpeg (quase tudo o resto, áudio e vídeo) deve fazer o truque, embora eu acredito que o codificador Vorbis com FFmpeg é de má qualidade, e você deve usar um separado sempre que possível. (Eu não sei se este conselho ainda é atual.)

Disclaimer:. Estive lendo um pouco sobre codecs recentemente, mas eu ainda não fiz nada com eles, então eu realmente não sei o que eu estou falando ainda

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