2013-07-12 5 views
1

J'utilise windows mmSystem.h pour générer quelques fichiers pcm. Eh bien, ils ne sont pas encore des fichiers, vraiment des tableaux d'octets. ce que je veux faire est de fusionner ou de mux ces deux flux afin que les sons se chevauchent avant de les exporter dans un fichier wav. Recherche stackoverflow tout le monde a mentionné en utilisant ffmpeg mais personne n'a de code exemple, ils utilisent juste le fmpeg.exe avec quelques drapeaux. Je préférerais une solution qui m'indiquerait d'utiliser n'importe quelle autre bibliothèque tierce ou sdk autre que celle disponible dans windows et ffmpeg.mixage audio deux flux pcm

Merci pour toute aide

+0

Voulez-vous dire que vous avez deux flux mono et que vous voulez les mixer en stéréo? Ou vous voulez superposer les canaux existants avec les nouveaux échantillons? –

+0

Je veux les superposer. – user1881587

Répondre

4

Si vous avez des tableaux d'octets, vous devez d'abord convertir les octets au format d'échantillon correct, tel qu'un entier de 16 bits (court). Une fois que vous avez fait cela, vous avez quelques options, y compris:

  1. Moyenne des données, échantillon par échantillon.

  2. Sommez les données, échantillon par échantillon, puis "clip" tous les échantillons hors de portée.

La première option est la seule façon correcte de le faire sans déformer votre signal. Enfin, vous devrez peut-être convertir en octets pour enregistrer dans un fichier. Pour plus de détails, y compris le code, vous pouvez voir something more like a tutorial.

+1

Je veux voter, mais mon représentant n'est pas assez haut, donc j'espère qu'un merci fera l'affaire. – user1881587

0

En supposant que les deux cours d'eau ont la même fréquence d'échantillonnage et les bits/échantillon que vous pouvez simplement ajouter les échantillons:

merged[n] = streama[n] + streamb[n];