2009-11-23 21 views
2

Comment écrire des images mp3 (fichiers mp3 non complets avec ID3 etc.) à partir de données PCM? J'ai quelque chose comme des données PCM (par exemple 100mb) Je veux créer un tableau d'images mp3 à partir de ces données. Comment effectuer une telle opération? (Par ex avec lame ou tout autre encodeur opensource)Comment écrire des trames mp3 à partir de données PCM (C/C++)?

Que dois-je:

  • Open Source Libs pour l'encodage.
  • Tutoriels et articles de blog sur la façon de le faire, à propos, etc.
+0

LAME est LGPL. Pourquoi ne veux-tu pas l'utiliser? Ou votre programme ne sera pas opensource? –

+1

@Piligrim Quoi qu'il en soit, il peut utiliser LAME même dans un programme fermé, c'est le point de LPGL. – KeatsPeeks

Répondre

1

Vous devriez pouvoir utiliser BOITEUX. Il a un -t command line switch qui éteint l'en-tête INFO dans la sortie (sinon présent dans l'image 0). Si cela laisse encore trop de données de comptabilité, vous devriez être capable d'écrire un outil distinct pour enlever cela.

+0

En outre, regardez http://www.codeproject.com/KB/audio-video/mpegaudioinfo.aspx pour plus d'informations sur le format MPEG (en-tête). Avec cette information, il devrait être possible de traiter le fichier mp3 résultant. – wimh

1

Vous êtes déjà sur la bonne voie: utilisez l'exécutable externe LAME ou tout autre encodeur invoqué par la coque.

Pour construire des cadres MP, si votre couche d'intérêt est 3, n'est pas facile à faire à partir de zéro. Il y a des étapes de compression, des transformations de Fourier rapide suivies de quantification, qui sont complexes et fastidieusement longues. La quantité de travail nécessaire pour un développeur pour le construire à partir de zéro est très grande. Il existe des bibliothèques d'encodage C et C++ MP programmatiques, mais on vous demandera des frais, vous serez laissé avec un support très limité, ou vous aurez des options d'interfaçage très limitées.

Allez LAME, étudiez leur wiki.