Можно ли синхронизировать видео на нескольких компьютерах с помощью WPF? - PullRequest
3 голосов
/ 27 мая 2009

Можно ли синхронизировать видео, запущенные в приложении WPF, на двух или более компьютерах? Синхронизация нескольких видео, запущенных на одной и той же машине, кажется, хорошо работает с использованием класса ParallelTimeline и MediaTimelines для каждого экземпляра видео, но я не нашел способа сделать это на разных компьютерах, что, если возможно, включило бы несколько невероятных мультиэкран установок.

Итак, что вы думаете обо всех этих гуру WPF? Может ли это работать с WPF или мне нужно вернуться к DirectShow? Несколько советов о том, как это сделать, тоже подойдет.

[Изменить]

Кажется, есть некоторая путаница относительно моего вопроса, поэтому позвольте мне уточнить Я думаю о возможности создания большой многоэкранной видеоинсталляции, скажем, 8 или более экранов. Каждый экран воспроизводит видео в формате Full HD (не менее 720p), создавая унифицированный дисплей, в данном случае видеостену с разрешением 10 240 x 5760. Все видео должны быть синхронизированы, конечно. Воспроизведение всех 8 HD-видео с одного компьютера (даже если компьютер способен) подразумевает значительную нагрузку на производительность оборудования, жестких дисков, памяти, графических карт и т. Д. С другой стороны, если вам удалось подключить 8 компьютеров вместе с TCP, каждый из которых отвечает за воспроизведение своего видео с часами, синхронизированными с главным компьютером, вы можете создавать действительно классные вещи с большой гибкостью. Я видел подобные установки, сделанные с Max / Jitter. Но мне не нравится парадигма Макс / Джиттер, мне больше нравится WPF, и я бродил, если можно было бы создать что-то подобное.

[/ Edit]

Большое спасибо,

Julio

Ответы [ 3 ]

2 голосов
/ 02 июня 2009

Вы можете попробовать использовать мой проект, WPF Mediakit . Если вам нужен доступ к низкоуровневому контенту DirectShow, он должен вас опередить.

Для этого, по сути, вы должны назначить один компьютер «сервером», а остальные - «клиентами». Клиенты будут подключаться к серверу, чтобы получить текущую позицию, сравнить ее с текущей позицией ... и, если есть n-количество диспаратности, попытаться настроить.

Из коробки в MediaKit элемент управления MediaUriElement имеет свойство, называемое «PreferedPositionFormat». Если вы установите для этого значение Frames (а используемые вами кодеки поддерживают его ... большую часть времени они не поддерживают и просто поддерживают MediaTime), вы можете иметь гранулярность фрейма, в которой нужно установить свойство "Position". Даже формата MediaTime может быть достаточно.

0 голосов
/ 30 мая 2009

Я думаю, что более совместимым, поскольку клиент, который может наслаждаться вашими HD-трансляциями здесь, будет использование Silverlight. Если вы не знаете об этом, это браузер с очень тонкой версией WPF;).

Эта статья Codeplex, автор эпического "Карла Шиффлетта", довольно обширна о различных доступных вариантах кодирования и поддерживаемых платформах (за исключением ASF, это точно).

Особое внимание уделяется размещенной на Microsoft Live.com потоковой службе Silverlight, которая также может удовлетворить ваши потребности, по крайней мере, для создания прототипов.

http://www.codeproject.com/KB/scrapbook/HowToCreateArticleVideos.aspx

Что касается синхронизации, то это похоже на то, что вам придется испечь в себе.

0 голосов
/ 27 мая 2009

Получение WPF для потоковой передачи ASF через RTSP и воспроизведения потоков на одном или нескольких ПК с помощью проигрывателя Windows Media или VLC / MPlayer. Судя по всему, поток RTSP нестандартен, поэтому, скорее всего, вы застряли с WMP.

http://www.windowskb.com/Uwe/Forum.aspx/windows-media-player/85238/RTSP-Problems

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...