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

StackOverflow https://stackoverflow.com/questions/470698

  •  19-08-2019
  •  | 
  •  

Вопрос

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

  1. Использование Managed Direct show для захвата и потоковой передачи видео на C#
  2. Некоторые примеры кода в проекте кода, где мы берем изображение и передаем его по сети (я бы назвал это довольно грубым решением, поскольку оно съедает много трафика.
  3. Напишите алгоритм сжатия с нуля и используйте его для сжатия и распаковки видео.

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

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

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

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

Это было полезно?

Решение

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

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

2) Исследовательская конференция MicrosoftXP 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

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

Другие советы

Избавьте себя от неприятностей и используйте VLC. Для этого есть несколько достойных оболочек .NET ( http://forum.videolan.org/viewtopic.php?f=32 <> амп; т = 52021 <> амп;! начать = 30 )

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

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

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

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

удачи.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top