#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 числом, которое меняется каждый раз (вводите большое случайное число или текущую дату-время), чтобы браузер не кэшировал и не показывал все время ранее загруженный фрейм