Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?
Проект разрабатывается в C++ MSVS 2015
Заранее благодарен
Re: DirectShow синхронное воспроизведение 2-х видео
Здравствуйте, Melamed, Вы писали:
M>Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?
Не понятно что значит синхронное воспроизведение 2 видео. Если имеется ввиду одновременное воспроизведение двух видео в двух разных окнах, то такое возможно "из коробки":
Здравствуйте, Videoman, Вы писали:
M>>Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?
V>Не понятно что значит синхронное воспроизведение 2 видео. Если имеется ввиду одновременное воспроизведение двух видео в двух разных окнах, то такое возможно "из коробки":
Может надо синхронно на разных машинах без эха и что бы время не разъезжалось.
Re[3]: DirectShow синхронное воспроизведение 2-х видео
Здравствуйте, kov_serg, Вы писали:
_>Может надо синхронно на разных машинах без эха и что бы время не разъезжалось.
Вот это уже высший пилотаж . Придется каким-то образом синхронизировать часы всех графов.
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, Videoman, Вы писали:
Просто необходимо сравнить визуально видеоряды двух файлов, которые сжаты двумя разными кодеками, в одной программе на одном экране.
M>>>Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?
V>>Не понятно что значит синхронное воспроизведение 2 видео. Если имеется ввиду одновременное воспроизведение двух видео в двух разных окнах, то такое возможно "из коробки": _>Может надо синхронно на разных машинах без эха и что бы время не разъезжалось.
Re[4]: DirectShow синхронное воспроизведение 2-х видео
Здравствуйте, Melamed, Вы писали:
M>Просто необходимо сравнить визуально видеоряды двух файлов, которые сжаты двумя разными кодеками, в одной программе на одном экране.
Тогда метод который я описал выше подходит. А потом можно использовать IVideoFrameStep::
Re: DirectShow синхронное воспроизведение 2-х видео
M>Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?
Строишь граф с двумя фильтрами видео (или файл) источникам. Далее вопрос, куда ты эти два потока дальше собираешься загнать?
Если на два окна, тогда к каждому окну привязываешь фильтр-рендер — VMR9 или EVR. Если в одном окне — типа, картинка в картинке (PIP).
Тогда нужно создавать промежуточный (транспортный) фильтр между главным фильтром источника и рендером. На втором фильтре источника поток поступает
на видео граббер, к котором привязана колбек функция с промежуточного фильтра. С этой функции тот фильтр будет снимать фреймы со второго потока,
ресайзить их в нужный формат и в методе Transform() вставлять его в нужное место фрейма превого потока. Созданный фрейм, через Transform(), поступает на твой рендер.
Если рендерить не нужно, тогда на каждый поток ставишь граббера с дальнейше обработкой этих потоков в твоей проге.
С аудио сложнее, там на выходе файл фильтра источника устанавливается сплиттер для каждого потока. Сплиттер делит поток на видео и аудио потоки. По видео описано выше,
а вот если аудио потоки нужно смешивать, тогда нужно делать фильтр-микшер, который будет соединятся с твоим аудио рендером, н-р, диннамики.
Re[2]: DirectShow синхронное воспроизведение 2-х видео
Здравствуйте, Vicul, Вы писали:
V>а вот если аудио потоки нужно смешивать, тогда нужно делать фильтр-микшер, который будет соединятся с твоим аудио рендером, н-р, диннамики.
Зачем самому смешивать? Просто создать два аудио рендерера и пусть система смешивает.
Re[3]: DirectShow синхронное воспроизведение 2-х видео