Общий вопрос о DirectShow.NET, DirectShow и Windows Media Format
Я искал и гуглил ответ, но не смог его найти.
По сути, я разрабатываю приложение для веб-камеры / потокового аудио, которое должно захватывать аудио и видео с компьютера (веб-камера / микрофон USB) и отправлять их на принимающий сервер. Что сервер сделает с этим, это еще одна история и второй этап (который я сейчас пропускаю)
Я написал некоторый код, используя DirectShow и Windows Media Format, и он отлично работал для захвата аудио / видео и отправки их другому клиенту, но есть большая проблема: задержка.
Везде в Интернете все мне давали один и тот же ответ: "Извини, чувак, но медиаформат не для видеоконференций, у их кодеков слишком большая задержка". Я думал, что могу пропустить проблемы.wmv, но кажется, что это невозможно сделать... эта дорога заканчивается здесь.
Итак, я видел несколько примеров с DirectShow.NET, которые были быстрее как для аудио, так и для видео... мой вопрос: как получилось, что DirectShow.NET стал быстрее и лучше для видео / аудио конференций? Разве это не должно быть просто переносом.NET DirectShow на C++?
Я что-то пропустил? Я немного запутался в этой точке
1 ответ
Да, DirectShow.NET - это просто порт, предоставляющий управляемые сопоставления для неуправляемого DirectShow. Windows Media действительно не идеальна для малой задержки, но вы можете несколько смягчить ее, выбрав правильный кодек / профиль, например, CBR с низкой задержкой и настройки. В конце концов, хотя это зависит от потребителя (в основном Windows Media Player, лучше Silverlight), сколько содержимого буферизуется перед отображением фрейма.
Короче говоря, короткие ограничения одинаковы для DirectShow.NET и DirectShow, и я сомневаюсь, что при использовании Windows Media у вас будет задержка менее 2 секунд.