Потоковое аудио / видео на платформе Windows - PullRequest
2 голосов
/ 13 декабря 2010

Я создаю интерактивное приложение для изучения языка, которое будет использоваться в классной комнате.Идея состоит в том, что учитель должен иметь возможность разговаривать со студентами (= аудиопоток всем ученикам), позволять ученикам общаться друг с другом (= аудио P2P) в группах по два или более, пусть ученики смотрят видео изDVD-плеер или с медиа-сервера.Должна быть возможность сохранять аудио / видео потоки.Преподаватель также должен иметь возможность контролировать, захватывать или блокировать рабочий стол учеников.Платформа - Windows, и это настольное приложение, а не веб-приложение.Задержка звука должна быть минимальной и минимальной.При желании ученик, сидящий дома, должен быть поддержан, но это не является высоким приоритетом.

Теперь я закончил с частью контроля приложения в классе (вход в систему, монитор, блок, ...) и хочу начатьаудио и видео часть.Я оценивал несколько вариантов, таких как DirectX, GStreamer и SIP, но теперь мне нужно принять решение.

DirectX кажется очевидным выбором для платформы Windows, но позволяет только захватывать и воспроизводить аудио и видео.Кодирование / декодирование / сетевая часть, которую я должен сделать сам.

GStreamer содержит все виды опций для захвата / кодирования / потока / сохранения аудио и видео потоков.Я немного поэкспериментировал с ним (ossbuild), и, похоже, он требует много проб и ошибок, чтобы заставить что-то работать: - захват микрофона (через directsoundsrc) создает шумы на некоторых компьютерах - загрузчик rtpL16 не работает хорошо -потоковое аудио по сети, работающее только с частотой дискретизации 8000, не выше - при получении видео mpeg4 (плохой I-кадр) много ошибок, на некоторых компьютерах хуже, чем на других. У меня сложилось впечатление, что основной целью является gstreamerна платформах Linux.Разработка и поддержка платформы Windows, похоже, немного отстают.Тем не менее, это мощная платформа, которая может сэкономить мне месяцы и годы работы.

SIP, кажется, способен делать все, что я хочу, но он нацелен на телефонию и обмен мгновенными сообщениями.Я не знаю, насколько гибкий SIP.Мне кажется, что уровень SIP будет просто накладным, так как у меня уже есть центральное (учительское) приложение, которое может контролировать и настраивать все потоки.Интересными частями фреймворков, такими как opalvoip и freeswitch, являются фактический захват аудио / видео, кодирование и передача.Кто-нибудь знает, как эти интересные части связаны с такой структурой, как gstreamer?Легко ли их интегрировать в пользовательское приложение?Достаточно ли они гибки?

Кто-нибудь имеет опыт работы со всеми или одной из этих технологий?Может быть, есть даже другие варианты, на которые я могу посмотреть?

Большое спасибо за ваш совет

Ответы [ 2 ]

0 голосов
/ 07 февраля 2011

Рассматривали ли вы возможность участия в проекте Big Blue Button ?

0 голосов
/ 28 декабря 2010

У вас довольно мало вариантов, которые могут вам подойти. Во-первых, вы можете использовать Media Foundation http://msdn.microsoft.com/en-us/library/ms697062%28v=VS.85%29.aspx, это ссылка на введение высшего уровня. Вы получаете API для управления исходными декодерами и транскодерами. Он обеспечивает как абстрактный, так и низкоуровневый интерфейс для удовлетворения потребностей. Другой вариант - использовать медиаэлемент WPF, эта ссылка дает некоторый указатель на то, как его использовать http://www.silverlightshow.net/items/Two-Great-WPF-Video-Samples-Online.aspx. Вы также можете просмотреть функцию Silverlight 5 http://www.microsoft.com/silverlight/future/ вне браузера, которая в настоящее время находится в стадии бета-тестирования и ожидается, что она будет доступна во втором полугодии 2011 года

...