Подтвердить что ты не робот

Разработка приложения для видеочата с высококачественным потоковым видео

Я работаю в компании, где мы разрабатываем поддержку видеочата в существующем приложении. Я рассматривал различные решения для этого, например

  • Использование Managed Direct для захвата видео и потоковой передачи в С#
  • Некоторые примеры кода в проекте кода, где мы берем изображение и передаем его по сети (я бы назвал его скорее грубым решением, так как это съело бы большую полосу пропускания.
  • Скомбинируйте алгоритм сжатия с нуля и используйте его для сжатия-распаковки видео.

Теперь проблема заключается в том, что мы стремимся достичь очень качественной видеопотоки, а приложение-контейнер закодировано на С#.NET.

Это то, что я предложил до сих пор. Сетевая логика для потоковой передачи данных записывается на С#, сжатие видео, которое должно быть записано в VС++, и вызывать эту VС++ dll с помощью pinvoke или CLI, что возможно.

Я ищу еще одного опытного, что я в этой области, который может предложить мне, если я буду исправлять или это еще может быть улучшено.

Конечной целью является потоковое видео высокого качества. Кодек может быть любым чем-то вроде h.2633, h.264 и т.д.

4b9b3361

Ответ 1

Я использовал несколько способов для потоковой передачи видео или конференц-связи с .net легко, без необходимости копаться в directshow. (хорошо, копайте немного, но не глубоко:)

1) Использование простых компонентов Windows Media Encoder. Он документирован с образцами в SDK Windows Media Encoder. Хорошо подходит для потоковой передачи с высоким разрешением, но задержка слишком велика для чата реального времени (в лучшем случае 0,5-2 секунды). Modern Express Encoder SDK еще один вариант.

2) Microsoft Research ConferenceXP http://cct.cs.washington.edu/ Полнофункциональный API конференц-связи, включающий потоки приложений. Они слишком низкоуровневывают фильтры Windows Media и завершают их в управляемый код. Работает хорошо. Легко настраиваемый. Теперь выглядит немного заброшенным.

3) Клиент Microsoft RTC до версии 1.3 - ядро ​​Windows Messenger.

профи: управляемые образцы из Microsoft, хорошие документы, надежная производительность, свободно распространяемый, совместимый с Microsoft (хороший) стек SIP. Крупнейшие производители конференц-связи, такие как Emblaze VCON, основали свои решения на этом в ближайшем прошлом, не уверены в этом, но я знаю, что Tandberg лицензировал Microsft VC-1.

минус: версия до 1.3 поддерживает только видео h261-h263. современная версия с поддержкой кодека VC-1 (h264) не разрешает прямые серверные ip-ip-соединения. Он требует наличия сервера Microsoft Live Communications. Более новая версия SDK не покрывает хорошо вызовы видеоконференций.

http://msdn.microsoft.com/en-us/library/ms775892(VS.85).aspx

Пожалуйста, сообщите нам, какую платформу вы выбрали. Кстати, я даже использовал компонентную видеосвязь ConferenceXP с функциями RTC 1.3 voice/SIP, чтобы улучшить качество видео, поэтому у вас есть широкий выбор управляемых технологий. Другое дело - "Живое собрание", на котором у меня не было шансов по-настоящему выглядеть.

Ответ 2

Спасите себя от проблем и используйте VLC. Для него есть несколько достойных оболочек .NET(http://forum.videolan.org/viewtopic.php?f=32&t=52021&start=30)

Мы используем С# и VLC для сети IPTV. Мы берем входные данные от сетевых спутников DISH через устройства захвата Osprey-450 на сервере Windows XP. Оттуда у нас есть компонент .NET, который мы написали на С#, который использует VLC за кулисами (начиная отдельные процессы в .NET для управления экземплярами vlc.exe). Процессы VLC транскодируют и передают сигналы по сети (.h264 или MPEG-4, мы успешно выполнили оба).

На стороне клиента у нас есть приложение С# WinForm, которое использует встроенный VLC Viewer для просмотра многоадресных сигналов. Это приложение предназначено в основном для управления и контроля. Реальное использование сигналов многоадресной передачи происходит, когда наши телевизионные приставки, прикрепленные к нашему телевизору, декодируют и отображают потоки.

Мы думали, что нам тоже придется писать собственные DirectX-кодеры, но не беспокойтесь. VLC работает очень хорошо и имеет достаточно поддержки С#, чтобы быть очень полезной. Не стесняйтесь пишите мне по электронной почте, если у вас есть конкретные вопросы о реализации.

Ответ 3

Вы должны проверить SDK Ucentrik. Этот SDK позволит вам интегрировать мультимедийные функции, такие как видео, аудио, чат, совместное использование с удаленным рабочим столом и управление и видеозапись в ваших приложениях. Поддерживаются видеокодеки VP8 (Google), Theora и x.264. Кроме того, мультимедийный трафик инкапсулирован в HTTP-протокол, чтобы он мог проходить брандмауэры, которые обеспечивают нормальный веб-трафик. Эта технология абсолютно бесплатна, и вы можете загрузить SDK и запросить ключ API, чтобы вы могли оценить, не инвестируя время на настройку инфраструктуры. В течение следующих нескольких месяцев мы выпускаем серверный компонент, чтобы вы могли загружать и размещать инфраструктуру самостоятельно или своим клиентом. Технология поддерживает соединения "один-ко-многим", что означает, что вы можете создавать видеоконференции, если хотите. Эти функции очень модульные, поэтому вы можете интегрировать только видео или аудио или настольную коллекцию или комбинацию технологий с использованием того же SDK... Вы должны запросить SDK, доступный здесь: www.ucentrik.com. Кроме того, здесь есть несколько видео: http://www.youtube.com/user/ucentrik

удачи.

Ответ 4

Ucentrik только что выпустил приложение для call-центра с открытым исходным кодом, которое интегрирует технологию CTX. Это приложение call-центра реализует совместное использование видео, аудио, рабочего стола/приложения (с контролем), функции текстового чата, доступные из CTX API. Приложение также включает в себя некоторую бизнес-логику, в частности, для обеспечения возможности маршрутизации вызовов к агенту, который доступен или имеет определенный набор навыков. Проект доступен по адресу http://vcca.codeplex.com - обратите внимание, что вам потребуется доступ к SDK Ucentrik CTX, который доступен для запроса на веб-сайте Ucentrik ( www.ucentrik.com). Удачи.