2010-04-30 3 views
1

Je suis très nouveau dans le streaming. Mon exigence est de combiner plusieurs vidéos/flux en une seule vidéo. Ainsi, la sortie sera une vidéo unique montrant plusieurs vidéos simultanément dans un seul lecteur (comme la vidéo de la caméra de sécurité).Comment combiner plusieurs flux vidéo en un seul flux? de sorte que la sortie sera plusieurs (divisé) des vidéos en une seule vidéo?

Voici mon exemple de code ---

IGraphBuilder oFilterGraph = (IGraphBuilder)new FilterGraph(); 
VideoMixingRenderer9 oVideoMixingRenderer = new VideoMixingRenderer9(); 
oFilterGraph.AddFilter((IBaseFilter)oVideoMixingRenderer, "Video"); 

IVMRFilterConfig9 oVMRFilterConfig = (IVMRFilterConfig9)oVideoMixingRenderer; 
oVMRFilterConfig.SetRenderingMode(VMR9Mode.Windowed); 
oVMRFilterConfig.SetNumberOfStreams(2); 
oVMRFilterConfig.SetRenderingPrefs(VMR9RenderPrefs.None);    

IVMRMixerControl9 oIVMRMixerControl = (IVMRMixerControl9)oVideoMixingRenderer; 

NormalizedRect oNormalizedRect = new NormalizedRect(); 
oNormalizedRect.left = 0.0F; 
oNormalizedRect.top = 0.0F; 
oNormalizedRect.bottom = 0.5F; 
oNormalizedRect.right = 0.5F; 
NormalizedRect oNormalizedRect1 = new NormalizedRect(); 
oNormalizedRect.left = 0.5F; 
oNormalizedRect.top = 0.5F; 
oNormalizedRect.bottom = 1; 
oNormalizedRect.right = 1; 

int iStreamId1 = oFilterGraph.RenderFile("c:\\file1.wmv", string.Empty); 
int iStreamId2 = oFilterGraph.RenderFile("c:\\file2.wmv", string.Empty); 
oIVMRMixerControl.SetOutputRect(0, ref oNormalizedRect); 
oIVMRMixerControl.SetOutputRect(1, ref oNormalizedRect1);   
oIVMRMixerControl.SetAlpha(0, 1); 
oIVMRMixerControl.SetAlpha(1, 1); 

IMediaControl oMediaControl = (IMediaControl)oFilterGraph; 
oMediaControl.Run(); 

J'ai essayé avec le code mais ne pouvait pas réussir. Il montre une seule vidéo dans le contrôle & n'en montrant pas d'autre.

Répondre

Questions connexes