public static string GetSnapsotURL(Structures set, int profile = 1) { try { var tok = set.GetMediaTokens().FirstOrDefault(); if (tok == "" || !set.IsActive) { return(""); } var messageElement = new TextMessageEncodingBindingElement(); messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None); HttpTransportBindingElement httpBinding = new HttpTransportBindingElement(); httpBinding.AuthenticationScheme = AuthenticationSchemes.Basic; CustomBinding bind = new CustomBinding(messageElement, httpBinding); EndpointAddress mediaAddress = new EndpointAddress(set.GetONVIF + "/onvif/Media"); MediaClient mediaClient = new MediaClient(bind, mediaAddress); mediaClient.ClientCredentials.UserName.UserName = set.Login; mediaClient.ClientCredentials.UserName.Password = set.Password; MediaUri mediaUri = mediaClient.GetSnapshotUri(set.GetMediaTokens()[profile]); return(mediaUri.Uri); } catch { return(""); } }
/// <summary> /// Returns snapshot uri from DUT /// </summary> /// <param name="profileToken">Get snapshot parameters</param> /// <returns>Snapshot uri</returns> protected MediaUri GetSnapshotUri(string profileToken) { MediaClient client = MediaClient; MediaUri response = null; RunStep(() => { response = client.GetSnapshotUri(profileToken); }, "Get snapshot URI"); DoRequestDelay(); return(response); }
public string GetSnapshotURL() { var value = CallCamera(() => mediaClient.GetSnapshotUri(CurrentProfile.Token)); if (value == null) { return(null); } return(value.Uri); }
static int Main(string[] args) { if (args.Length < 3) { Console.WriteLine("Usage: OnvifCamReader.exe <url> <login> <password>"); return(1); } string url = args[0]; string login = args[1]; string password = args[2]; var messageElement = new TextMessageEncodingBindingElement(); messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None); HttpTransportBindingElement httpBinding = new HttpTransportBindingElement(); httpBinding.AuthenticationScheme = AuthenticationSchemes.Basic; CustomBinding bind = new CustomBinding(messageElement, httpBinding); EndpointAddress mediaAddress = new EndpointAddress(url); MediaClient mediaClient = new MediaClient(bind, mediaAddress); mediaClient.ClientCredentials.UserName.UserName = login; mediaClient.ClientCredentials.UserName.Password = password; Profile[] profiles = mediaClient.GetProfiles(); string profileToken = profiles[0].token; MediaUri mediaUri = mediaClient.GetSnapshotUri(profileToken); StreamSetup streamSetup = new StreamSetup(); streamSetup.Stream = StreamType.RTPUnicast; streamSetup.Transport = new Transport(); streamSetup.Transport.Protocol = TransportProtocol.RTSP; MediaUri mediaStreamUri = mediaClient.GetStreamUri(streamSetup, profileToken); Console.WriteLine(mediaUri.Uri.ToString()); Console.WriteLine(mediaStreamUri.Uri.ToString()); return(0); }
private Bitmap onvifPicture(string url, string user, string password) { try { if (mediaClient == null) { AddInfo("Efetuando login em: " + url); // Adicionar a referencia de serviço: http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl // http://stackoverflow.com/questions/32779467/onvif-api-capture-image-in-c-sharp var messageElement = new TextMessageEncodingBindingElement(); messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None); HttpTransportBindingElement httpBinding = new HttpTransportBindingElement(); httpBinding.AuthenticationScheme = AuthenticationSchemes.Basic; CustomBinding bind = new CustomBinding(messageElement, httpBinding); EndpointAddress mediaAddress = new EndpointAddress(url + "/onvif/Media"); mediaClient = new MediaClient(bind, mediaAddress); mediaClient.ClientCredentials.UserName.UserName = user; mediaClient.ClientCredentials.UserName.Password = password; } else { AddInfo("Obtem imagem: " + url); } Profile[] profiles = mediaClient.GetProfiles(); string profileToken = profiles[1].token; AddInfo("profileToken: " + profileToken); MediaUri mediaUri = mediaClient.GetSnapshotUri(profileToken); WebRequest requestPic = WebRequest.Create(mediaUri.Uri); WebResponse responsePic = requestPic.GetResponse(); return((Bitmap)Bitmap.FromStream(responsePic.GetResponseStream())); } catch (Exception ex) { AddInfo(ex); return(null); } }