кросс-платформенные, открытые библиотеки для потоковой передачи аудио / видео в режиме реального времени C # / Silverlight / .NET - PullRequest
4 голосов
/ 25 января 2011

Я ищу библиотеку для потоковой передачи конференций и видео на сервер, который многоадресно рассылается всем остальным клиентам. Я смотрел на SIP и openh323, и оба они кажутся слишком специализированными для VoIP-телефонии.

Я хочу, чтобы приложение было кроссплатформенным приложением Silverlight (для Mac и Windows), поэтому я не думаю, что смогу использовать DirectSound, верно?

Заранее спасибо.

1 Ответ

3 голосов
/ 25 января 2011

Вы можете смешивать яблоки и апельсины в своем вопросе. DirectSound предоставляет API для доступа к звуковым картам; H.323 и SIP являются стандартами для вызова.

Silverlight 4 изначально имеет несколько упрощенных API, которые примерно эквивалентны DirectSound, так что вы можете получить доступ к микрофону, звуковой карте и веб-камерам. Подробнее см. http://msdn.microsoft.com/en-us/library/ff602282(VS.95).aspx.

Но как только у вас есть звук, вам все равно нужно его кодировать, передавать, микшировать, распространять и затем принимать. Вот где это становится сложным. Flash изначально поддерживает все это; Silverlight нет. Лучшая на данный момент реализация с открытым исходным кодом для этого была создана SocketCoder и доступна на CodePlex , но она использует собственный протокол сигнализации / потоковой передачи, собственный и очень неэффективный видеокодек и собственный медиасервер .

Из того, что я могу сказать, лучший вариант для того, что вы хотите делать в Silverlight, - это решение с закрытым исходным кодом, предоставляемое StreamCoders . Это не с открытым исходным кодом, но он поддерживает разумный набор открытых стандартов, что означает, что вы, вероятно, сможете использовать сторонний медиа-сервер с открытым исходным кодом. Вы, конечно, захотите проверить, чтобы убедиться, что это то, что вам нужно.

Кроме того, вы можете попробовать свои силы в переносе любого из различных решений с открытым исходным кодом на C #. Я сделал это с препроцессором Speex: это сложно, но не так сложно, как вы думаете. Вы могли бы предположительно сделать что-то подобное с openH323 и различными кодеками на основе C, которые существуют там. Вы можете даже попробовать свои силы в модификации RTMP-реализации Silverlight с помощью FluorineFx (http://www.fluorinefx.com/), чтобы сделать то, что вам нужно. Конечно, все это не будет простым.

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