|
Bas de page | |
---|---|
Auteur | Sujet : problème de capture son avec Directshow sous VC++6 |
rody83 No pain, no gain | Bonjour.
--------------- .: Passions | Galerie | Blog :. |
Publicité | Posté le 06-11-2003 à 15:51:28 |
cricri_ | Et comment construis-tu le graph ?
|
rody83 No pain, no gain | j'utilise le code suivant (je mets juste les exemples, par tout ce serait trop long). Pour la création des filtres :
--------------- .: Passions | Galerie | Blog :. |
rody83 No pain, no gain |
rody83 No pain, no gain |
rody83 No pain, no gain |
Publicité | Posté le 07-11-2003 à 11:35:50 |
rody83 No pain, no gain |
rody83 No pain, no gain | J'ai fait plein de tests, et le problème que je rencontre doit venir de la taille du buffer audio : l'ennui, c'est que la taille n'est définie nulle part (comme la vidéo, d'ailleurs, qui marche pourtant nickel)... sinon avec GraphEdit, quand je veux ouvrir mon source (.cpp), il me dit "Could not construct a graph from this file", idem pour le .dsp du projet.
--------------- .: Passions | Galerie | Blog :. |
rody83 No pain, no gain | Concernant le périphérique de capture, c'est soit un micro, soit une webcam mais dans les deux cas il faut bien que je définisse (point à améliorer par la suite) le périphérique de capture par défaut au niveau de Windows ; sinon j'ai le même problème que j'utilise un micro ou une webcam. J'ai calculé la taille d'un buffer de 1s avec ce type de données brut, soit : 44100*16*2/8=176400 octets mais seulement la moitié est remplie de son correct à chaque envoi, l'autre moitié étant "silencieuse" (donnée CD partout).
Message édité par rody83 le 12-11-2003 à 11:16:38 --------------- .: Passions | Galerie | Blog :. |
rody83 No pain, no gain | j'ai essayé (c'était dans la doc de directx ça m'avait échappé) et il me renvoie une taille de buffer de 88200 octets, soit la moitié de ce que j'ai calculé... et lorsque j'effectue une capture, j'ai toujours la moitié du buffer qui reste vide, quelle que soit la taille ?! Message édité par rody83 le 12-11-2003 à 15:17:20 --------------- .: Passions | Galerie | Blog :. |
cricri_ | Ok, mais qu'est-ce qui te fait dire que tu vas recevoir un sample d'1s. ?
|
rody83 No pain, no gain |
rody83 No pain, no gain | Justement c'est la méthode que j'emploie pour les samples : à chaque tour d'une boucle je les écris à la suite dans un fichier que je joue par la suite avec CoolEdit (pratique vu qu'il lit les fichiers raw sans en-tête) ; le problème reste donc le même. Concernant la perte d'un canal j'y ai pensé aussi, malheureusement lorsque j'essaie de jouer le fichier en mono, c'est comme si je divisais par deux la fréquence (voix grave et ralentie). En fait le son reste bien synchrone lors de la lecture, mais 1/2s manque à chaque seconde, comme si la webcam s'arrêtait de fonctionner pendant ce temps-là... J'ai vérifié avec d'autres webcams sur d'autres pc ; même problème.
--------------- .: Passions | Galerie | Blog :. |
rody83 No pain, no gain | C'est exactement ce que j'ai fait, mais j'ai toujours le même problème... Par contre j'ai trouvé un exemple intéressant de DirectX : AudioCap. Il ne fait pas la bufferisation, mais il écrit le flux dans un fichier ; je vais voir ce que je peux faire avec ça. En tout cas merci pour ton aide :-) ! --------------- .: Passions | Galerie | Blog :. |
Publicité | Posté le |