hackademius
Messages postés172Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention24 février 2008
-
29 août 2004 à 15:41
hackademius
Messages postés172Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention24 février 2008
-
29 août 2004 à 16:14
j'ai apris que AVI -> Audio / Video)
- j'ai un fichier video AVI dans lequel j'ai un stream video
- j'ai un fichier audio WAV dans lequel j'ai un stream Audio
-Je veu un fichier AVI avec un stream video et un stream audio.
comment on fait ?
bon moi , j'ai fais des essais , j'arrive a obtenir un fichier Avi avec un stream video OU un fichier AVi avec un stream audio , mais pas les 2 en meme temps .
voici mon code :
'Open video file
res = AVIFileOpen(pfileVideo, AviSortie, OF_READ, 0&)
If res <> 0 Then GoTo er
'open audio file
res = AVIFileOpen(pfileAudio, "c:\Jet.wav", OF_READ, 0&)
If res <> 0 Then GoTo er
'open audiostream
res = AVIFileGetStream(pfileAudio, pAVISTREAMAudio, 0, 0)
If res <> 0 Then GoTo er
'open videostream
res = AVIFileGetStream(pfileVideo, pAVISTREAMVideo, 0, 0)
If res <> 0 Then GoTo er
'enregistrement du AVI
res = AVISave(Nom, 0, 0, 1, pAVISTREAMVideo, 0)
If res <> 0 Then GoTo er
c'est ici que ca couille , dans la source de virtualDub ( en C) y arrivent a metre un tableau streams(x)
ca donnerai :
streams[0]=videostream
streams[1]=audiostream
res = AVISave(Nomdufichier, 0, 0, nbdestreams(soit 2),streams, 0)
mais moi je peu pas metre de tableau , et quand je veut metre 2 a la place de 1 stream , bah y'a erreur : " Espace pile insufisant"
hackademius
Messages postés172Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention24 février 2008 29 août 2004 à 16:14
oui mais ca va pas , il ne parle pas du son , j'avais deja vu sa source
res = AVISave(szFileOut, 0&, AddressOf AVISaveCallback, 1, pAVIStreamOut, pOpts)
tu vois , il n'enregistre qu'un stream , moi il m'en faut 2 , un stream video , com lui (et com le mmien) ET un stream audio.
mais je ne peut pas transmetre de tableau a la place de pAVIStreamOut
alors qu'en C/C++ , ils peuvent transmetre un tableau
(si je me rapel bien, en C :
MaVariable[0]=xxx
MaVariable[1]=xxx
MaVariable , c'est un tableau , c'est obligé.
et eux , ils peuvent faire :
res = AVISave(szFileOut, 0&, AddressOf AVISaveCallback, 2, MaVariable, pOpts)
c'est ca que je ne comprend pas.
Ou si il ya une autre fonction que AviSave /AviSaveV pour creer les streams ... je prend .