Pergunta

Eu estou procurando uma biblioteca que pode ser usada para manipular arquivos de áudio. Essencialmente, o que eu gostaria de fazer é:

  1. Coloque um arquivo MP3 / WAV

  2. Obter um segundo clipe do arquivo 15

  3. Overlay outro arquivo MP3 / WAV ontop de it

  4. Render como um novo arquivo MP3 / WAV

Foi útil?

Solução

Você pode usar qualquer API codec MP3 comum para decodificar o fluxo, trabalhar com ele, e salvá-lo novamente. Por exemplo, você poderia usar libLAME para esta parte.

Quanto à mistura, você poderia fazê-lo sozinho (por exemplo, ingenuamente, adicione duas amostras e dividir por dois - o que pode não parecer bom demais)., Ou encontrar uma biblioteca adequada para ele

Você pode também estar interessado em uma pergunta de estouro de pilha relacionados em melhor áudio biblioteca c linux

Outras dicas

Ele não suporta MP3 por razões de patentes, mas libsndfile é um muito bom open-source (LGPL) biblioteca para carregamento e de áudio salvar em uma variedade de outros formatos de áudio, incluindo WAV.

Quanto à parte de sobreposição, que é fácil quando você tem as amostras carregados na memória ... você acabou de resumir cada amostra em arquivo Um com sua amostra correspondente no arquivo B (e, possivelmente, dimensionar o valor da amostra, resultando um pouco para baixo multiplicando por uma constante, se você está preocupado com recorte).

A biblioteca libsox de Sox (e não http://libsox.sourceforge.net/ que é algo completamente diferente) parece ter uma API simples que pode ser usado. A documentação dá o seguinte exemplo para estéreo para mono mistura:

amostras representando como inteiros pode causar problemas ao processar o áudio. Por exemplo, se um efeito de mixar canais esquerdo e direito em um canal monofónico eram para usar o linha

    *obuf++ = (*ibuf++ + *ibuf++)/2;

distorção pode ocorrer uma vez que o Além intermediário pode transbordar 32 BITS. A linha

    *obuf++ = *ibuf++/2 + *ibuf++/2;

iria contornar o problema de estouro (À custa dos menos pouco significativo).

Você pode tentar dar a este um olhar sobre http://terminatorx.org/ Eu estava olhando para ele para fazer algo similar.

Um bom C ++ audio biblioteca / synth é STK . Ele faz um monte de coisas e está sob licença tipo BSD / MIT ou seja, você pode usá-lo para desenvolver produtos comerciais. Wav é suportado, mas não MP3. Para MP3 você poderia usar irrklang , por exemplo, que é gratuito para uso não comercial (também MAD por underbit, é usado por muitas pessoas).

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