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

Composants VCL Delphi Discussion :

ActiveX VLC (Video Lan Client) dans delphi


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Par défaut ActiveX VLC (Video Lan Client) dans delphi
    Bonjour,

    Je n'arrive pas à utiliser l'ActiveX VLC dans Delphi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var VLCPlugIn : IVLCControl;
     
    VLCPlugIn := CreateCOMObject(CLASS_VLCPlugin)as IVLCControl;
     label1.Caption:=     VLCPlugin.VersionInfo;
    Ceci fonctionne.

    Mais des que j'essaie de faire autre chose, style
    j'ai le message erreur suivant :
    "Defaillance irrémédiable"
    Merci pour vos infos et expérience sur l'utilsation de cette active X

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Par défaut
    Personne n'a d'idée ?

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 258
    Par défaut
    Salut,

    Moi aussi j'ai essayé de l'utiliser, cet ActiveX, mais pour l'instant, je dois dire que je suis tombé sur un os... En effet j'ai essayé de créer dynamiquement soit par en utilisant l'intrface, soit en accédant à la méthode CreateParented de la class TVLCPlugIn, mais celà ne fonctionne pas mieux, et provoque des OLESysError....

    Peut-être une erreur dans la génération du fichier AXVLC_TLB.pas, affaire à suivre!!!

    A plus,

    Christopher

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 258
    Par défaut
    C'est encore moi,

    Pour utiliser VLC, je l'ai exécuté en tant qu'application externe...

    En effet, comme tu dois le savoir, tu peux paramétrer VLC par l'intermédiaire d'une ligne de commande MS-DOS. Donc il est assez facile de réaliser cette opération sous Delphi par l'intermédiaire d'un ShellExecute.

    Ce que tu dois coder en fait, ce sont les paramètrages (des dshow-xxxx) à partir de Delphi!!!

    Je me suis fait un petit magnétoscope numérique... Enregistrement d'un programme télévisé par exemple sur disque dur à n'importe quelle heure...

    Voilà pour plus d'infos, je suis à ta disposition!!!

    Christopher

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Par défaut
    Merci pour les réponses. Je vais peux être voir en exécutant l'application en externe. Je vais regarder un peu sur les forums pour voir si il y a de infos et je reviens.
    Tu as fais un prog qui lance et parametre VLC, as tu un exemple STP ?
    Merci.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 258
    Par défaut
    Re,

    Mille Excuses pour ce retard!!!!

    Voilà la fonction d'appel ShellExecute de VLC :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ShellExecute(0, 'open', 'C:\Program Files\VideoLan\VLC\vlc.exe',
                 PChar('dshow:// :dshow-vdev="' + sVideoDev + '" '
                 +' :dshow-adev="' + cbxAudioDev.text + '" :dshow-size="' + sResolution 
                  + '" :dshow-fps="25.000000" :dshow-tuner-channel='+sChannel+' :dshow-tuner-country=33 :dshow-tuner-input=2'
                 +' :sout="#transcode{vcodec=mp2v,vb='+ sBitRate +',scale=1,acodec=mp2a,ab=192,channels=2}:duplicate{dst=display,dst=std{access=file,mux=ts,url="C:\temp\' + txtNom.Text + '"}}"'),
                 Nil, SW_SHOW);
    Avec comme Paramètre :
    sVideoDev : le Nom de ton périphérique vidéo
    sAudioDev : le Nom de ton périphérique audio
    sResolution: Résolution d'affichage pour de la télé 768x576, 720x576, 704x576
    sChannel : me permet de choisir la chaîne préréglé sur mon tuner
    sBitRate : Taux d'encodage video : les principaux sont 1024, 2048, 4096

    Tous ces paramètres ne sont que des chaines que tu peux paramétrer aisément avec les contrôles Delphi

    txtNom.Text : fichier de sortie vidéo. Emplacement où va être stockée ta video.

    Bien sûr pour que ce soit un véritable enregistreur, il faut gérer le temps avec une heure de début et une heure de fin d'enregistrement... A la fin de l'enregistrement je détruit la fenêtre "VLC media player" grâce à :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PostMessage(wndHandle, 16, 0, 0);
    Voilà j'espère que ceci t'aura aider!!!

    Je reste à ta disposition pour toute autre question!!!

    A plus,

    Christopher

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Par défaut
    Merci beaucoup pour ton aide et ces précisions.
    Je continue mon exporation sur l'ActiveX, lorsque j'aurai du nouveau, je poste.
    Merci encore.

  8. #8
    Membre actif
    Inscrit en
    Mars 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 17
    Par défaut
    juste une question : tu arrives a enregistrer avec la plugin??

  9. #9
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 2
    Par défaut
    Salut,

    J'utilise Delphi 5 et je suis enfin arrivé à utiliser ce satané ActiveX

    Je l'utilise pour visionner et enregistrer le flux TV de ma Freebox.

    Voici des exemples de mon code:

    Code pour Lecture d'une chaine Freebox (mais utilisable avec une autre adresse) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Voption : array of String;
      CheminChaine : String;
    begin
        CheminChaine := 'rtsp://mafreebox.freebox.fr/freeboxtv/202'; 
        SetLength(Voption,1);  
        Voption[0]:='nooverlay'; 
        VLCPlugin1.addTarget(CheminChaine ,Voption,1,0);
        VLCPlugin1.play;
    end;
    Code pour Enregistrement dans un fichier (flux firecte):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TForm1.Button2Click(Sender: TObject);
    var
      Voption : array of String;
      CheminChaine : String;
    begin
        CheminChaine := 'rtsp://mafreebox.freebox.fr/freeboxtv/202';
        SetLength(Voption,2);
        Voption[0] := ':sout=#duplicate{dst=std{access=file,mux=ps,url="E:\Tempo_FTV\DelFreeTV.mpg"}}';
        Voption[1] := 'ttl=1';
        VLCPlugin1.addTarget(CheminChaine ,Voption,1,0);
        VLCPlugin1.play;
    end;
    Code pour Enregistrement dans un fichier avec choix du codec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TForm1.Button3Click(Sender: TObject);
    var
      Voption : array of String;
      CheminChaine : String;
    begin
        CheminChaine := 'rtsp://mafreebox.freebox.fr/freeboxtv/202';
        SetLength(Voption,2);
        Voption[0] := ':sout=#transcode{vcodec=mp2v,vb=3072,acodec=mpga,ab=192}:standard{mux=ps,url=E:\Tempo_FTV\test.mpg,access=file}';
        Voption[1] := 'ttl=1';
        VLCPlugin1.addTarget(CheminChaine ,Voption,1,0);
        VLCPlugin1.play;
    end;
    Surtout, il ne faut pas oublier le 'ttl=1' sinon cela ne fonctionne pas pour l'enregistrement.

    Je ne pense pas qu'il y est besoin de commentaires dans le code, mais si besoin, demandez

    A+
    Civodul

Discussions similaires

  1. composant ActiveX pdf dans Delphi 2010
    Par yacinew dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/08/2013, 00h26
  2. ActiveX Flash dans Delphi : Comment redimensionner ?
    Par ddubois dans le forum Composants VCL
    Réponses: 1
    Dernier message: 11/02/2009, 19h51
  3. ActiveX Vlc dans Projet WPF
    Par bolandfranck dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 25/06/2008, 01h45
  4. ActiveX Flash dans Delphi : Comment couper le son ?
    Par ddubois dans le forum Composants VCL
    Réponses: 0
    Dernier message: 08/11/2007, 22h20
  5. [Débutant] Modifs dans Delphi
    Par J-P-B dans le forum XMLRAD
    Réponses: 6
    Dernier message: 20/06/2003, 16h55

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