2010-12-13 6 views
2

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

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

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

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

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

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

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

ответ

0

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

Смежные вопросы