IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Lecture d'une vidéo MOV


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut Lecture d'une vidéo MOV
    Bonjour à tous

    J'ai développez un logiciel qui entre autre lit des vidéos.
    J'aimerais savoir s'il est possible de lire dans un TMediaPlayer des vidéo en .mov car les utilisateurs ont des vidéos dans ce format.

    Merci d'avance

  2. #2
    Membre chevronné Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par défaut
    Salut Kurul1
    J'ai trouvé ceci http://www.developpez.net/forums/d21...-tmediaplayer/
    A+

  3. #3
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Je l'avais trouvé ce post mais ça n'apporte pas grand chose.
    Installer les codecs quicktime.

    D'accord mais tu les trouves ou car a part installer quicktime, ce que j'ai déjà fait, je ne vois pas ou les trouver.

  4. #4
    Membre chevronné Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par défaut
    Je crois qu'il faut telecharger "quicktime alternative" pour n'avoir que les codecs.

    Telecharger les codecs ici

    ou ici telecharger les codecs
    A+

  5. #5
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Merci de ta réponse je les télécharge et j'essaye

  6. #6
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    je viens d'essayer mais cela ne lit pas la vidéo.

    J'ai donc installer le quicktime alternative

    Je sélectionne ma vidéo et la, cela me met Periphérique MCI non ouvert ou format non reconnu.

    J'ai regardé du côté du DeviceType du MediaPlayer et j'ai essayé les différents type sans aucun résultats.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    lSalut

    dans le cas où on a des video recalcitrante

    essayer d abord vlc , son activex marche sous bcb6 et est dispo à l installe du player

    ou en filtrant l extension creer un html avec un <object class ....


    voilà ikl ya pas d autre solution

  8. #8
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Après quelques tests, j'arrive à lire certains fichier mov avec l'activex de VLC mais pas toutes et justement, celle qu'il faut que je lise ne se lisent pas.

    De plus j'ai un souci, VLC affiche en gros au milieu de la vidéo, le nom du fichier, ce qui est très embètant.

    Sinon j'ai vu que j'avais accès à un activex QTControl.

    J'ai essayé et j'arrive à lancer la vidéo, par contre, elle n'est pas fluide du tout.

    Est-ce que quelqu'un à déjà utilisé cet ActiveX et aurait des petites astuces.

    Merci d'avance pour votre aide

  9. #9
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Bon alors pour ce que cela intéresse, j'ai réussi à lire ma vidéo avec l'ActiveX QuickTime mais il reste encore quelques petits problèmes.

    Je n'arrive pas à déterminer quand la vidéo et terminer car je voudrais fermer l'ActiveX quand la lecture se termine.

    J'aimerais également savoir ou je me trouve dans la vidéo car je dois envoyer un signal quand j'ai atteins une certaine position dans la vidéo et pour l'instant je ne vois pas comment faire.

    Si quelqu'un à une idée, je suis preneur

    Sinon voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    // On crée une boite de dialogue pour sélectionner le fichier
    TOpenDialog *OpenDialog = new TOpenDialog(Form1);
     
    // On définit le filtre de la boite de dialogue
    OpenDialog->Filter = "Vidéo (*.mov;*.avi)|*.mov;*.avi";
     
    // Si l'utilisateur clique sur Ok
    if(OpenDialog->Execute())
    {
    	// On marque que le Panel est un double buffer
    	Panel->DoubleBuffered = true;
     
    	// On charge le plugin Quicktime
    	TQTControl *QT = new TQTControl(Panel);
     
    	Application->ProcessMessages();
     
    	// On renseigne le parent du control
    	QT->Parent = Panel;
     
    	Application->ProcessMessages();
     
    	// On cache l'accès au contrôle QuickTime (la barre et les boutons)
    	QT->MovieControllerVisible = false;
     
    	Application->ProcessMessages();
     
    	// On spécifie le fichier associé
    	QT->FileName = OpenDialog->FileName;
     
    	Application->ProcessMessages();
     
            // On spécifie que le Contrôle QT remplis le Panel
            QT->SetBounds(0, 0, Panel->Width, Panel->Height);
     
    	Application->ProcessMessages();
     
    	// On marque que la vidéo se lit automatiquement
    	QT->AutoPlay = WideString(1).c_bstr();
     
    	Application->ProcessMessages();
    }

  10. #10
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    J'ai résolu mon problème pour la fin de la vidéo

    J'ai mis un timer pendant la lecture de la vidéo et il ferme la vidéo quand on a atteint la fin comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    // Méthode déclancuée lorsque le timer Quicktime se termine
    void __fastcall TForm::OnTimerQuicktime(TObject *Sender)
    {
    	// Si l'on à atteint la fin de la vidéo
    	if(QT->Movie->Time == QT->Movie->EndTime)
    	{
    		// On arrête le timer
    		Timer->Enabled = false;
    		Timer->OnTimer = NULL;
    		Timer->Interval = 0;
     
    		// on arrete la lecture
    		QT->Movie->Stop();
     
    		// on marque que la vidéo n'est plus en autoplay
    		QT->AutoPlay = WideString('0').c_bstr();
     
    		// on ferme le composant Quicktime
    		delete QT;
    		QT = NULL;
    	}
     
    	Application->ProcessMessages();
    }
    J'ai aussi réussi à trouver les informations concernant la vidéo en tatonant un peut sur toutes les propriétés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int Largeur = QT->Movie->Width;
    int Hauteur = QT->Movie->Height;
    float Frequence = QT->Movie->StaticFrameRate;
    double Duree = ((double)(QT->Movie->EndTime)) / ((double)(QT->Movie->TimeScale));
    double NbImages = Video->Infos->Duree * double(QT->Movie->StaticFrameRate);
    Mais il me reste un souci. Je dois lire plusieurs vidéo Quicktime dans mon programme, la première lecture fonctionne bien mais la deuxième me fait un accès violation.

    J'ai peut être oublié quelques chose lorsque le termine la lecture de ma première vidéo, Est-ce que quelqu'un verrais d'où peut venir le problème

  11. #11
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Personne ne peut m'aider car je suis vraiment coincé là.
    J'ai beau triturer le Control dans tous les sens, j'ai un accès violation à la deuxième lecture

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    Balances qqs videos et tes sources , je materai çà
    C est presque un sujet que j ai dejà traité

    rapidshare ou autres fera l affaire

    Mais qtControl est un activeX fourni avec quicktime , je l ai pas

  13. #13
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    QTControl est l'activeX que tu peux importer dans BDS. mais il faut que soit Quicktime soit Quicktime alternative soit installé sur ton PC.

    Pour les vidéos, je ne peux pas t'envoyer mes vidéos car ce sont des vidéos de travail et je ne peux pas les distribuer.

    Sinon voilà le code, je l'ai simplifié pour te mettre uniquement ce qui nous intéresse ici.

    Merci pour ton aide
    Fichiers attachés Fichiers attachés

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    Salut

    Tu peux pas m enoyver des petits samples en .mov ( 10 15 secondes max ) ?

    J en ai trouver une mais j ai rien pour la decouper

  15. #15
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Je suis désolé mais j'ai que ça comme vidéo en mov et elles font 30s a peu prèt

    Tu peux les récupérer ici

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    Pas eu trop le temps ces derniers jours

    Resultat , pas d erreur en changeant quasi rien à ton code

    J utilise la v1 de l activex apple quick time control 2.0 ( version 1.0 ) sous c++builder 6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    #include "C:\Program Files\Borland\CBuilder6\Imports\QTOControlLib_OCX.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    int fois  = 0;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      Declencher();
    }
    //---------------------------------------------------------------------------
    void TForm1::Declencher()
    {
    if (fois<5) { fois++; Lire(fois); } else Panel1->Caption="Fini" ;
    }
    //---------------------------------------------------------------------------
    void TForm1::Lire(int fois)
    {
    		AnsiString CheminVideo = ExtractFilePath(Application->ExeName);
                                CheminVideo += fois;
    	  	           CheminVideo += ".mov";
     
    		// On rend le Panel visible
    		Panel1->Visible = true;
     
    		// On charge le plugin Quicktime
    		TQTControl *QT = new TQTControl(Panel1);
                    QT->Parent = Panel1;
                    QT->MovieControllerVisible = true;
    		QT->FileName = CheminVideo;
                    QT->Movie->Play();
     
     
    		// On met le booléen qui marque que l'on est en lecture à true
    	       bool	LectureVideo = true;
     
    		do
    		{
     
    			// Si l'on à atteint la fin de la vidéo
    			if(QT->Movie->Time == QT->Movie->EndTime)
    			{
    				// On marque que l'on a fini la lecture de la vidéo
    				LectureVideo = false;
    			}
     
    			Application->ProcessMessages();
    		}
    		// Tant que l'on est en LectureVideo
    		while(LectureVideo);
     
    		// on arrete la lecture
    		QT->Movie->Stop();
     
    		Application->ProcessMessages();
     
    		// on ferme le composant Quicktime
    		delete QT;
    		QT = NULL;
     
                    Declencher();
     
     
     
    }
    //---------------------------------------------------------------------------

  17. #17
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    En fait je pense avoir résolu mon problème.

    Il semblerais que ce soit le codec utilisé pour les vidéos qui fasse planter et non le code qui comme tu me l'a confirmer est correct.

    J'ai également de mon côté fait des tests avec les vidéos que je t'ai fait parvenir et cela fonctionne sans souci.

    En fait, je peux lire n'importe quelle vidéo, même celle qui plante, mais dès que j'en lit une, je peux plus rien lire derrière.

    J'en ai informer la boite qui se charge de nos vidéos et on m'a répondu que cela pouvait venir du Codec, ils sont en train de les ré-encoder et on va tester cela.

    Je te tiens au courant

Discussions similaires

  1. Extraire une image d'une vidéo MOV d'appareil photo
    Par Arkham46 dans le forum Contribuez
    Réponses: 0
    Dernier message: 07/02/2008, 12h02
  2. Lecture d'une vidéo au premier plan
    Par pasqual dans le forum Flash
    Réponses: 1
    Dernier message: 07/01/2008, 19h59
  3. Réponses: 1
    Dernier message: 10/05/2007, 13h22
  4. Créer pause/lecture pour une vidéo en flash
    Par Justin_C dans le forum Flash
    Réponses: 4
    Dernier message: 23/11/2006, 09h46
  5. Réponses: 3
    Dernier message: 13/11/2006, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo