Image de webcam vers un avi

ipeteivince Messages postés 4 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 20 juin 2006 - 21 mai 2006 à 14:00
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 - 21 mai 2006 à 22:21
Salut@ tous

voila, j'ai écrit une petite application qui utilise le composant tcamera pour travailler avec une webcam
Ce qu'elle fait pour l'instant, elle permet l'enregistrement d'une image sur clique d'un bouton et un autre permet d'enregistrer une image toute les X seconde du style auto1.jpg auto2.jpg....

Je souhaiterais construire une vidéo a partir de ces images, et pourquoi pas le faire à la volée.
Un clique permet de créer un fichier mjpeg et toute les x secondes, la frame courante est ajoutée au fichier...
Je débute en Delphi . Quelqu'un pourrais m'expliquer comment faire? quel composant gratuit utiliser?
Source actuel:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Camera;

type
TTabImage = Array[0..230399] of byte;

type
TForm1 = class(TForm)
Camera1: TCamera;
Button1: TButton;
Button2: TButton;
GroupBox1: TGroupBox;
Button3: TButton;
Timer1: TTimer;
Label1: TLabel;
GroupBox2: TGroupBox;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var

Form1: TForm1;
num : Integer;
rnum : Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
p : ^TTabImage;
begin
Camera1.Actif:=True;
New(p);
num := 0;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Camera1.FichierImage := '';
num := num + 1;
Camera1.FichierImage := 'MAsterC'+IntToStr(num)+'.jpg';
Camera1.CaptureImageDisque;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.Enabled := True;
Label1.Caption := 'Activé';
end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin
Camera1.FichierImage := '';
num := num + 1;
Camera1.FichierImage := 'Auto'+IntToStr(num)+'.jpg';
Camera1.CaptureImageDisque;
end;

end.

D'avance merci

6 réponses

Utilisateur anonyme
21 mai 2006 à 16:35
Salut,


Tu ne peux pas passer d'un fichier image à un fichier video. Tu peux
fusionner des fichiers bmp en un seul puis te promener dans ce fichier
pour lire une photo. En utilisant un timer tu peux alors faire une
sorte de film. Ayant tenté de réaliser un tel soft, je peux te dire que
c'est assez hard (un bon niveau initié). Personnelement j'ai été
confronté à un problème au niveau des streams qui est resté sans
solution.


Si tu utilises le composant TCamera, tu peux réaliser une capture video
en avi, directement. Maintenant le composant que te propose JLen est
bien plus puissant que TCamera et je te le conseille


Voila


@+
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
21 mai 2006 à 17:29
Si si, y a des composants qui permettent la capture frame by frame (genre 1 image/seconde) et qui te génèrent des AVI avec. Le problème étant de maitriser la structure d'un AVI, pour le construire par code image par image.

+1 le compo de Jlen est tres bon.
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
21 mai 2006 à 17:45
je précise quand même que le compo TVideocapture n'est pas de moi


@+

jlen
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
21 mai 2006 à 17:56
petite précision concernant le composant Tcaméra , qui viens le l'API
AVICAP c'est d'être totalement aveugle si l'image est masquée ce qui
peut être gênant dans certains cas. Son avantage étant d'être moins
gourmand en ressources que les appels à DirectX (C'est d'ailleurs la
raison pour laquelle le compos de captures ont eu du mal à s'imposer
malgré leurs performancea bien supérieures)


@+

jlen
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
21 mai 2006 à 20:41
En réponse à DeltaFX,


Je me suis peut etre mal exprimé : je voulais dire qu'il ne suffit pas
de fusionner des bmp ou jpeg puis changer l'extension pour obtenir un
avi. Il faut créer la structure de l'avi. C'est un travail très
complexe et qui n'est pas à la portée de tous.


@+
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
21 mai 2006 à 22:21
C'est exactement ce que je disais "Le problème étant de maitriser la structure d'un AVI, pour le construire par code image par image."
0
Rejoignez-nous