object vdeosource;
DsDevice device1 = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice)[1];
Guid baseIdentifier = typeof(IBaseFilter).GUID;
device1.Mon.BindToObject(null, null, ref baseIdentifier, out vdeosource);
IBaseFilter sourceFilter = vdeosource as IBaseFilter;
graphBuilder.AddFilter(sourceFilter, "Source");
hr = captureGraphBuilder.SetFiltergraph(this.graphBuilder);
DsError.ThrowExceptionForHR(hr);
mpeg2Demux = (IBaseFilter)new MPEG2Demultiplexer();
object cross;
captureGraphBuilder.FindInterface(FindDirection.UpstreamOnly, null, sourceFilter, typeof(IAMCrossbar).GUID, out cross);
IAMCrossbar crossbar2 = cross as IAMCrossbar;
int inputpincount, outputpincount;
crossbar2.get_PinCounts(out outputpincount, out inputpincount);
crossbar2.Route(0, 0);
Если я попытаюсь выполнить рендеринг видео в этот момент, я получаю от 5 секунд замедленные снимки из своего воспроизводящего видео, которое подключается как вход для моей карты захвата. Выход моей карты захвата - mpeg2.не может получить видео в реальном времени с карты захвата
IBaseFilter demuxFilter = (IBaseFilter)new MPEG2Demultiplexer();
graphBuilder.AddFilter(demuxFilter, "Mpeg-2 Demultiplexor");
IPin sourceFilterOutputPin = DsFindPin.ByDirection(sourceFilter, PinDirection.Output, 0);
IPin demuxFilterPinIn = DsFindPin.ByDirection(demuxFilter, PinDirection.Input, 0);
hr = graphBuilder.Connect(sourceFilterOutputPin, demuxFilterPinIn);
DsError.ThrowExceptionForHR(hr);
IBaseFilter defaultRenderer = (IBaseFilter)new VideoRendererDefault();
hr = graphBuilder.AddFilter(defaultRenderer, "Default Renderer");
DsError.ThrowExceptionForHR(hr);
hr = captureGraphBuilder.RenderStream(null, MediaType.Video, sourceFilter, null, defaultRenderer);
DsError.ThrowExceptionForHR(hr);
На данный момент я получаю ошибку, которая говорит, что нет сочетания промежуточных фильтров ... Все, что я хочу знать ли я, используя mpeg2 DeMUX правильно или неправильно?
Привет, Наконец-то я понял это. Я использовал crossbars и StreamConfig, и, наконец, я получил видеовход. Но теперь я не могу записать его в файл avi. Мой код был прав с моей веб-камерой, но с моей карточкой захвата я получаю файл размером 64 КБ. –
Предложите, чтобы вы попытались построить этот график в Graph Studio Next и опубликовать результаты в следующем шаге. – persiflage