Как отобразить 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, это не сработает.