Przechwytywanie obrazu z kamery

0

Witam serdecznie po dlugich meczacych godzinach udalo mi sie w koncu pobrac obraz na zywo z kamery IP programik dziala i moze wrzuce go pozniej do gotowcow ale najpierw musze rozwiazac jeszcze jeden problem.

Uzywajac komponentu IdTCPClient

  Client.Host:='89.29.49.13';
  Client.Port:=80;
  ClientURI:='/mjpg/video.mjpg';
  Client.OnConnected:=HandleConnected;

Łącze sie z kamera online i pobieram strema ktory jest potem konwertowany na JPEGImage itd itd

Client.IOHandler.WriteLn('GET '+ClientURI+' HTTP/1.1');
  Client.IOHandler.WriteLn;

Client.IOHandler.ReadStream(JPEG_mem_stream,CLength);

ktorego wyswietlam w Image.

Niestety problem powstaje przy kamerze do ktorej potrzebny jest login i haslo. Moze to i glupie pytanie ale wie ktos jak te dane przekazac do komponentu IdTCPClient?

0

Nie przekazujesz tego do komponentu, tylko albo odpowiednio modyfikujesz adres url zasobu, albo musisz wywolac post'a z danymi do logowania. Poszukaj - sporo takich tematów się tu przewija.

0

Tak wiem wiem ze nie do komponentu zle sie wyrazilem. po prostu do teraz uzywalem idhttp i on tam ma w request od razu pola do wpisania idtcpclient tego nie ma. Wczesniej wystarczylo przekazac cos takiego http://login:[email protected]/sciezka niestety tutaj idtcpclient.host nie przyjmuje takiej sciezki moge tam tylko odpowiedni adres ip przekazac. Sprobuje z tym oknem do wpisania danych moze sie uda.

Znalazlem w pomocy takie cos:

Description
TIdTCPClient includes properties, methods, and events that provide the following capabilities for the client:

Get/Set Host and Port numbers for the connection.
Get/Set Username and Password for the connection.
Create or assign an IOHandler for the connection.
An OnConnected event handler.
Connect method to establish the connection to the peer.
ConnectAndGetAll to connect, read available data, and disconnect.

To wlasnie o to te metody Username i Password pytalem

0

No i problem rozwiazany metoda o ktora mi chodzilo to:

ClientURI := '/mjpg/video.mjpg';
Client.IOHandler.WriteLn('GET '+ClientURI+' HTTP/1.1');
  Client.IOHandler.WriteLn('Authorization: Basic YWRtaW46MTIzNA==');

Gdzie ten dziwaczny string to login:pass w base64. Caly trik polegal na tym ze nie mialem dodanej jeszcze jednej linijki po tym kodzie

Client.IOHandler.WriteLn;

Obraz i autentykacja dziala az milo :)

0

Witam serdecznie,
sorki że odkopałem ale temat nie taki stary...
W drodze kupna nabyłem używaną kamerę axis 211A w cenie złomu, ściągnąłem ze strony producenta AXIS Media Control ActiveX component dostępne pod http://www.axis.com/techsup/cam_servers/dev/activex.htm ,zainstalowałem sobie pod systemem, później zaimportowałem do środowiska jako kontrolkę wszystko ładnie pięknie śmiga, natomiast mam pytanie czy ta biblioteka zadziała z inną kamerą ip ? Pytam dlatego że w zaimportowanej kontrolce podaje się adres url np. http://192.168.0.1/mjpg/video.mjpg czyli taki sam jak w większości kamer ip (moje przypuszczenie), kontrolka w miarę płynnie wyświetla obraz z kamery, po wrzuceniu na formę wygląda jak TPanel.

0

Jak chcesz to wyslij do mnie exe a adres wpisz http://192.168.2.9/mjpg/video.mjpg login admin haslo 1234 sprawdze na mojej kamerze EDIMAX i dam ci odpowiedz - email w stopce

0

Chyba najprościej skonfigurować kamerę i sprawdzić.

0

Moge pobrac komponent zainstalowac go i napisac aplikacje ktora to sprawdzi ale szczerze mowiac nie mam na to czasu wiec jak kolega wysle exe lub dpr to mu to przetestuje i dam odpowiedz.

OK no to za i przeciw.

Twoj komponent ma na pewno duzo wiecej opcji jest prostszy i transmisja jest szybsza niz w przypadku mojego rozwiazania. Niestety wymaga instalacji powyzszej instalki
Moje rozwiazanie nie potrzebuje zadnych dodatkowych bibliotek niestety zuzycie procesora jest 2-3 krotnie wieksze niz w przypadku tego komponentu wynika to z koniecznosci kompresji z mjpg na jpg. Dodatkowo moje rozwiazanie zbiera strumien z kamer z ktorych ten komponent nie jest w stanie tego zrobic.

Ogolnie bardzo fajne narzedzie i na pewno bym go uzywal (gdybym nie stracil tyle czasu na napisanie swojej funkcji)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0