DirectShow синхронное воспроизведение 2-х видео
От: Melamed Россия  
Дата: 19.11.18 20:16
Оценка:
Приветствую Всех

Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?

Проект разрабатывается в C++ MSVS 2015

Заранее благодарен
Re: DirectShow синхронное воспроизведение 2-х видео
От: Videoman Россия https://hts.tv/
Дата: 20.11.18 08:59
Оценка:
Здравствуйте, Melamed, Вы писали:

M>Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?


Не понятно что значит синхронное воспроизведение 2 видео. Если имеется ввиду одновременное воспроизведение двух видео в двух разных окнах, то такое возможно "из коробки":
IGraphBuilder::RenderFile(file1);
IGraphBuilder::RenderFile(file2);

в одном графе создадутся две цепочки фильтров для каждого файла.
Re[2]: DirectShow синхронное воспроизведение 2-х видео
От: kov_serg Россия  
Дата: 20.11.18 10:16
Оценка:
Здравствуйте, Videoman, Вы писали:

M>>Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?


V>Не понятно что значит синхронное воспроизведение 2 видео. Если имеется ввиду одновременное воспроизведение двух видео в двух разных окнах, то такое возможно "из коробки":

Может надо синхронно на разных машинах без эха и что бы время не разъезжалось.
Re[3]: DirectShow синхронное воспроизведение 2-х видео
От: Videoman Россия https://hts.tv/
Дата: 20.11.18 10:31
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Может надо синхронно на разных машинах без эха и что бы время не разъезжалось.

Вот это уже высший пилотаж . Придется каким-то образом синхронизировать часы всех графов.
Отредактировано 20.11.2018 10:31 Videoman . Предыдущая версия .
Re[3]: DirectShow синхронное воспроизведение 2-х видео
От: Melamed Россия  
Дата: 20.11.18 13:02
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Здравствуйте, Videoman, Вы писали:

Просто необходимо сравнить визуально видеоряды двух файлов, которые сжаты двумя разными кодеками, в одной программе на одном экране.

M>>>Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?


V>>Не понятно что значит синхронное воспроизведение 2 видео. Если имеется ввиду одновременное воспроизведение двух видео в двух разных окнах, то такое возможно "из коробки":

_>Может надо синхронно на разных машинах без эха и что бы время не разъезжалось.
Re[4]: DirectShow синхронное воспроизведение 2-х видео
От: Videoman Россия https://hts.tv/
Дата: 20.11.18 13:42
Оценка:
Здравствуйте, Melamed, Вы писали:

M>Просто необходимо сравнить визуально видеоряды двух файлов, которые сжаты двумя разными кодеками, в одной программе на одном экране.


Тогда метод который я описал выше подходит. А потом можно использовать IVideoFrameStep::
Re: DirectShow синхронное воспроизведение 2-х видео
От: Vicul  
Дата: 22.11.18 13:36
Оценка:
M>Не подскажите, возможно средствами DirectShow синхронно воспроизвести 2 видео из различных файлов? Если да, то не подскажите в какую сторону мне копать?

Строишь граф с двумя фильтрами видео (или файл) источникам. Далее вопрос, куда ты эти два потока дальше собираешься загнать?

Если на два окна, тогда к каждому окну привязываешь фильтр-рендер — VMR9 или EVR. Если в одном окне — типа, картинка в картинке (PIP).
Тогда нужно создавать промежуточный (транспортный) фильтр между главным фильтром источника и рендером. На втором фильтре источника поток поступает
на видео граббер, к котором привязана колбек функция с промежуточного фильтра. С этой функции тот фильтр будет снимать фреймы со второго потока,
ресайзить их в нужный формат и в методе Transform() вставлять его в нужное место фрейма превого потока. Созданный фрейм, через Transform(), поступает на твой рендер.

Если рендерить не нужно, тогда на каждый поток ставишь граббера с дальнейше обработкой этих потоков в твоей проге.

С аудио сложнее, там на выходе файл фильтра источника устанавливается сплиттер для каждого потока. Сплиттер делит поток на видео и аудио потоки. По видео описано выше,
а вот если аудио потоки нужно смешивать, тогда нужно делать фильтр-микшер, который будет соединятся с твоим аудио рендером, н-р, диннамики.
Re[2]: DirectShow синхронное воспроизведение 2-х видео
От: Videoman Россия https://hts.tv/
Дата: 22.11.18 14:00
Оценка:
Здравствуйте, Vicul, Вы писали:

V>а вот если аудио потоки нужно смешивать, тогда нужно делать фильтр-микшер, который будет соединятся с твоим аудио рендером, н-р, диннамики.


Зачем самому смешивать? Просто создать два аудио рендерера и пусть система смешивает.
Re[3]: DirectShow синхронное воспроизведение 2-х видео
От: Vicul  
Дата: 22.11.18 14:03
Оценка:
V>Зачем самому смешивать? Просто создать два аудио рендерера и пусть система смешивает.

Если броадкастить дальше не надо можно и так
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.