begin process at 2012 05 28 20:56:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Multimédia

 > 

Encodage AVI


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Encodage AVI

vendredi 28 octobre 2005 à 23:26:16 | Encodage AVI

Shadiest


J'aimerais encoder un fichier AVI en y ajoutant des images, j'utilise la classe Image et j'arrive déjà à récupérer des BMP à partir d'une vidéo (voir http://www.cppfrance.com/forum.v2.aspx?ID=589666 )

Pour l'encodage, je ne suis pas sûr d'avoir saisi les parametres à utiliser pour l'initialisation du nouveau stream et si une image en unsigned char * convenait...

Le fait est que ça ne marche pas vraiment, le fichier AVI créé est de bonne taille (aproximativement celle du bitmap) mais reste illisible ...

Code :
AVIEncodage::AVIEncodage(char *Name, Image *Premiere)
{
    //Creation du Fichier
    AVIFileOpen(&avi_file,Name,OF_WRITE | OF_CREATE, NULL);
   
    //Copie des information pour formatage du stream
    BITMAPINFOHEADER BInfo;
    ZeroMemory(&BInfo, sizeof(BITMAPINFOHEADER));
    BInfo.biBitCount = 24;
    BInfo.biCompression = BI_RGB;
    BInfo.biHeight = Premiere->Largeur;
    BInfo.biWidth = Premiere->Hauteur;
    BInfo.biPlanes = 1;
    BInfo.biSize = sizeof(BInfo);
    BInfo.biSizeImage = (Premiere->Largeur*Premiere->Hauteur*24*sizeof(BYTE))/8;

    //Caractéristique du stream
    AVISTREAMINFO streaminfo;
    ZeroMemory(&streaminfo, sizeof(AVISTREAMINFO));

    streaminfo.fccType = streamtypeVIDEO;
    streaminfo.fccHandler =mmioFOURCC('M','P','G','4');
    streaminfo.dwScale = 1;
    streaminfo.dwRate =30;
    streaminfo.dwSuggestedBufferSize =BInfo.biSizeImage;
    streaminfo.dwQuality =1000;
    streaminfo.rcFrame.right  = Premiere->Hauteur;
    streaminfo.rcFrame.bottom = Premiere->Largeur;
   
    //Création d'un nouveau stream video
    AVIFileCreateStream(avi_file,&avi_stream, &streaminfo);

    //Formatage du stream
    AVIStreamSetFormat(avi_stream, 0, &BInfo, sizeof(BInfo));
   
    //Ecriture de l'image
    AVIStreamWrite(avi_stream,0, 1,Premiere->PImage, BInfo.biSizeImage, AVIIF_KEYFRAME, NULL, NULL);

    AVIFileRelease(avi_file);
}

Merci pour votre aide
samedi 29 octobre 2005 à 13:27:19 | Re : Encodage AVI

Shadiest

Réponse acceptée !
Solution trouvé sur : http://www.gamedev.net/community/forums/topic.asp?topic_id=57497

Je me suis reinspirer de ce code pour refondre le mien...
mardi 24 juillet 2007 à 15:54:06 | Re : Encodage AVI

bobbyantho

Bonjour,

Chez moi ça marche en créant un stream compressé et en ajoutant l'image à celui-ci :

    ...

    //Création d'un nouveau stream video
    AVIFileCreateStream(avi_file,&avi_stream, &streaminfo);

    //Stream compressé
    PAVISTREAM pAviCompress;

    //Caractéristiques de compression
    AVICOMPRESSOPTIONS CompressOptions;
    memset(&CompressOptions,0,sizeof(AVICOMPRESSOPTIONS));
    CompressOptions.fccHandler = StreamInfo.fccHandler;
    CompressOptions.dwFlags = AVICOMPRESSF_KEYFRAMES|AVICOMPRESSF_VALID;
    CompressOptions.dwKeyFrameEvery = StreamInfo.dwRate;

    //Compression du stream
    AVIMakeCompressedStream(&pAviCompress,avi_stream,&CompressOptions,NULL);

    //Formatage du stream
    AVIStreamSetFormat
(pAviCompress, 0, &BInfo, sizeof(BInfo));
   
    //Ecriture de l'image
    AVIStreamWrite
(pAviCompress,0, 1,Premiere->PImage, BInfo.biSizeImage, AVIIF_KEYFRAME, NULL, NULL);


Cette discussion est classée dans : premiere, stream, avi, binfo, streaminfo


Répondre à ce message

Sujets en rapport avec ce message

AVI to BMP to AVI [ par phipedro ] Voilà je suis étudiant en électronique(école d'ingé) et je suis en stage en Chine. Je dois créer une application qui permettrai de compter des personn Packed DIB et BMP [ par Shadiest ] Je souhaite extraire une image d'un fichier AVI pour, par la suite, lui appliquer des transformations J'utilise donc la fonction "AVIStreamGetFrame" Copier StreamAudio d'un AVI to AVI [ par Shadiest ] Ayant directement accés aux streams d'un fichier AVI, j'aimerai copier l'audio dans un autre AVI, le problème a déjà été rencontré ici mais n'a pas Votre avi sur un de mes projets. [ par bilaloch ] Bonjour,Desolé si l'endroit n'est pas vraiment fait pour ca mais il me semble que c'est celui qui va le mieux avec mon message... Voila, c'est juste p lecture d'une vidéo AVI dans une appli MFC [ par seb2086 ] Bonjour à tous,Je voudrait pouvoir lancer automatiquement la lecture d'une vidéo à l'aide du contrôle Activex Windows MEDIA PLAYER lorsque la fenêtre problème de lib avec fmd [ par hyogadecygnus ] j'ai un problème de .lib avec fmod...en effet voici mon code tout simple: ////////////////////////////////////////////////////////////////////////// Affichage des trames d'un fichier avi [ par martin7 ] Bonjour à tous,je veux faire une appli de traitement d'image avec visual+MFC pour des videos AVI.Je suis debutant en C++, je cherche donc des sources Probleme pour AVI => BMP [ par Detonator17 ] Salut à tous,J'ai comme but de recuperer 1 image BITMAP (BMP) à un endroit précis d'un fichier video AVI en 640*480 sur le disque dur.Je ne sais pas c sauvegarde d'une window avi en .bmp [ par Ravaner ] Bjr à tous,Je déveleppais en C++ sous 98 et à mon grand regret je viens de passer sous XP et 70 % de mes progs ne tournent plus. Entre autres, une sau probleme boucle for [ par nashoy ] Bonjour,un [probablement] simple probleme : seul ma premiere boucle s'execute ;#include #include using namespace std;


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,276 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales