У меня есть фильм, который представлен на графике как исходный фильтр с медиатипом 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 не является решением. Это довольно медленно в позиционировании внутри файла. И иногда кажется, что он играет со сниженной скоростью (сгоревший по временному коду падает с сообщенной позиции - довольно странно, но это уже другая история).
Ну, это может объяснить это. Жаль, что такое поведение официально не задокументировано. Я принимаю это как ответ. Благодаря! – JeffRSon