Bonjour à tous,
Voilà déjà quelques semaines que je m'arrache les cheveux sur un problème,
je viens donc solliciter votre aide.
Je souhaiterai faire du streaming avec ma webcam, c'est à dire rediriger le
flux de ma webcam de manière à pouvoir y accéder via internet. Pour cela,
j'ai trouvé le composant idéal : ASFWriter du package DSPack.
Mon problème est que sur le flux sortant, c'est à dire lorsque je visualise le
flux au moyen d'un navigateur, je n'ai que le son (écran noir), alors que j'ai
bien la vidéo sur la VideoWindow.
Le code que j'utilise est très basic comme vous pouvez le voir :
Dans le Constructeur :
Et dans l'événement du bouton Start :
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 // Initialization of Video ComboBox VideoDev:= TSysDevEnum.Create(CLSID_VideoInputDeviceCategory); if VideoDev.CountFilters > 0 then begin for i:= 0 to VideoDev.CountFilters - 1 do CbxVideo.Items.Add(VideoDev.Filters[i].FriendlyName); CbxVideo.ItemIndex := 0; end; // Initialization of Audio ComboBox AudioDev:= TSysDevEnum.Create(CLSID_AudioInputDeviceCategory); if AudioDev.CountFilters > 0 then begin for i:= 0 to AudioDev.CountFilters - 1 do CbxAudio.Items.Add(AudioDev.Filters[i].FriendlyName); CbxAudio.ItemIndex := 0; end;
Petite précision, dans l'interface j'ai ASFWriter.Profile := wmp_V80_256Video.
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 ASFWriter.Port := 1234; VideoFilter.BaseFilter.Moniker:= VideoDev.GetMoniker(CbxVideo.ItemIndex); AudioFilter.BaseFilter.Moniker:= AudioDev.GetMoniker(CbxAudio.ItemIndex); FilterGraph.Active:= True; with FilterGraph as ICaptureGraphBuilder2 do begin RenderStream(@PIN_CATEGORY_CAPTURE , nil, VideoFilter as IBaseFilter, nil, ASFWriter as IBaseFilter); RenderStream(@PIN_CATEGORY_PREVIEW, nil, VideoFilter as IBaseFilter, nil, VideoWindow as IBaseFilter); RenderStream(nil, nil, AudioFilter as IBaseFilter, nil, AsfWriter as IBaseFilter); end; FilterGraph.Play;
Je vous remercie par avance de bien vouloir m'aider.
TonyTHX
Partager