Можно ли использовать SmoothStreamingClient без SmoothStreaming Server?

#silverlight #smooth-streaming-player

#silverlight #плавный потоковый проигрыватель

Вопрос:

Я хочу создать программу просмотра прямых трансляций Silverlight для IP-камеры с проприетарным RTP-сервером, т.Е. без IIS, без расширения SmoothStreaming. Является ли SmoothStreamingClient (или Microsoft media platform) лучшим местом для начала?

Ответ №1:

Вам определенно не нужен SmoothStreamingClient , поскольку это предполагает, что вы используете источник мультимедиа с плавным потоком. Однако вместо этого вы можете использовать MediaElement и реализовать свой собственный MediaStreamSource . Для этого требуется, чтобы вы знали, как анализировать данные, передаваемые вашей IP-камерой, и превращать их в действительные образцы видео, что нетривиально, но это единственный предоставляемый механизм отображения видеоданных, для которых еще нет встроенного источника потоковой передачи.

Однако, если формат видео, который отправляет ваша IP-камера, уже поддерживается Silverlight, то все, что вам нужно сделать, это создать Stream который считывает данные камеры и передает их в качестве источника мультимедиа в MediaElement .

Комментарии:

1. ДА. Камера обслуживает RTP потока h264. Итак, MediaElement кажется разумным. Я просто не был уверен, применим ли здесь MMP: PF. Спасибо.

2. Можно ли использовать Silverlight для приема потока RTP через UDP на заданный порт? UdpClient недоступен, и я не могу найти способ получать кадры, передаваемые IP-камерой.

3. @user, к сожалению, вам, вероятно, придется реализовать свой собственный UDP-прослушиватель, используя обычный старый Socket класс. Это может помочь вам начать: blogs.microsoft.co.il/blogs/tamir/archive/2008/03/22 /…

4. Silverlight не может использовать подобные сокеты, если вы не используете подписанное приложение Silverlight и пользователи не доверяют ему. Они должны быть установлены, хотя для использования OOB (вне браузера), или они также могут запускаться в браузере, но администратору сначала необходимо выполнить некоторую настройку компьютера, чтобы разрешить это

Ответ №2:

Лучший способ — иметь какое-нибудь серверное приложение, которое получает данные с камеры и сохраняет изображение в определенном месте на веб-сервере. Затем вы можете периодически обновлять HTML-страницу, чтобы показывать новое изображение (хитрость заключается в том, чтобы указать URL-адрес в стиле http://someserver/someimage.jpg?dummy=i , где вы заменяете i числом, которое меняется каждый раз (вводите большое случайное число или текущую дату-время), чтобы браузер не кэшировал и не показывал все время ранее загруженный фрейм