2016-08-30 4 views
1

У меня есть фильм, который представлен на графике как исходный фильтр с медиатипом MEDIATYPE_Stream/MEDIASUBTYPE_MPEG1Video. Кроме того, я вставляю VMR или EVR в график.Интеллектуальное соединение - GraphBuilder connect vs render

Попытка подключения (GraphBuilder -> Connect) выходного штырька исходного фильтра на входной вывод видеорезивера не работает (0x80040217 - VFW_E_CANNOT_CONNECT). Однако выполнение выходного вывода исходного фильтра (GraphBuilder -> Render) выполняется успешно. Он вставляет разделитель MPEG-2 (не демультиплексор MPEG-2). И, конечно, декодер. Но это должно быть связано с разделителем, потому что, когда я вставляю это вручную, а затем пытаюсь подключить выходной вывод источника фильтра к видеорезеру, он работает через GraphBuilder -> Connect, используя разделитель.

Причина, по которой я хотел бы использовать Connect вместо Render, заключается в том, что для рендеринга видео требуется специальная конфигурация (пользовательский презентатор).

Итак, с одной стороны, меня интересует, почему «connect» и «render» ведут себя по-разному. С другой стороны, я ищу совета, как справиться с этой проблемой.

Возможно, по умолчанию возможно вставить разделитель MPEG-2 по умолчанию, но мне это не нравится. Может быть, лучше подходящий фильтр с более высокими достоинствами, которые будут проигнорированы. И MSDN говорит, что сплиттер MPEG-2 устарел.

Редактировать: К сожалению, LAVSplitter не является решением. Это довольно медленно в позиционировании внутри файла. И иногда кажется, что он играет со сниженной скоростью (сгоревший по временному коду падает с сообщенной позиции - довольно странно, но это уже другая история).

ответ

1

Значение фильтра фильтра Splitter для MPEG2 равно «normal - 1», но поскольку оно устарело, оно может не отображаться во время интеллектуального соединения. С другой стороны, когда вы добавляете его вручную, граф графов использует его во время интеллектуального соединения, потому что он сначала пытается использовать фильтры, уже добавленные в график. Я боюсь, что единственным решением в этом случае для вас было бы добавить Splitter MPEG2 вручную.

+1

Ну, это может объяснить это. Жаль, что такое поведение официально не задокументировано. Я принимаю это как ответ. Благодаря! – JeffRSon

Смежные вопросы