Как отобразить MJPEG-поток в Vaadin (Java)?

Я ищу способ отображения MJPEG-потока (из ip cam) в моем приложении vaadin.

Моя проблема - необходимая аутентификация для запуска потока.

Действительно простое решение, чтобы просто получить поток:

String url = "...urlgoeshere/video.mjpg";

Image image = new Image();
image.setSource(new ExternalResource(url));
content.addComponent(image);

Это работает как очарование, если я разрешаю анонимные подключения к камере, но это не совсем моя цель.

Я пытался аутентифицироваться с помощью:

Authenticator.setDefault(new MyAuthenticator(username, password));

но это не влияет на запрос.

Если я вручную настроить запрос, как:

String url = "...urlgoeshere/video.mjpg";

Authenticator.setDefault(new MyAuthenticator("username", "password"));

URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET"); 

аутентификация работает, но таким образом я должен обработать все изображения самостоятельно.

Есть ли лучшие способы для отображения потока, который требует аутентификации?

1 ответ

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

https://foo:password@example.com/

Но это зависит от протокола, который веб-камера использует для аутентификации, и вы также будете иметь имя пользователя и пароль, "видимые" в html / javascript вашего приложения.

И еще одно замечание: Microsoft отключила это некоторое время назад, поэтому, если ваши пользователи используют IE, это не сработает.

Другие вопросы по тегам