Эффективный способ потоковой передачи веб-камеры с клиента на сервер C # - PullRequest
3 голосов
/ 04 февраля 2010

Я установил пользовательское TCP-соединение между моим клиентом и сервером.Я делаю простую программу чата.Пока что пользователи могут общаться друг с другом и отправлять файлы.Я добавляю чат с веб-камеры и использую AForge.Net для захвата кадров с моей веб-камеры.Но отправка этих захваченных кадров с клиента на сервер занимает слишком много времени и использует слишком большую полосу пропускания.сервер получает примерно 1 кадр каждые 2 ~ 4 секунды.

Я пробовал использовать кодировщик Jpeg и установить качество на 30, но это ничего не улучшает

Знаете ли вы, ребятахороший способ кодирования потока веб-камеры для отправки на сервер?

Cheers Roman

1 Ответ

1 голос
/ 04 февраля 2010

Вам необходимо отправлять содержимое веб-камеры в виде видеопотока, а не серии изображений. Я бы порекомендовал H264, так как он компактен и является наиболее распространенным видеокодеком, используемым сегодня в сети. Кодирование, потоковая передача, получение и отображение видео не так просты. Есть много проектов с открытым исходным кодом, которые могут помочь, например X264 и VLC, но это определенно намного сложнее, чем захват jpgs и их отправка. Было бы намного проще использовать существующий компонент видеочата, который поддерживает веб-камеры.

Flash-приложения с RTMP-сервером могут поддерживать веб-камеры, и существует множество доступных RTMP-серверов с открытым исходным кодом и бесплатными (хотя я не на 100% поддерживаю прямые трансляции с веб-камер - коммерческий Adobe Flash Media Server определенно поддерживает это). Компонент Flash-видео можно интегрировать в другое приложение, будь то Windows или Интернет.

...