Пример #1
0
        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("");
            }
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        public string GetSnapshotURL()
        {
            var value = CallCamera(() => mediaClient.GetSnapshotUri(CurrentProfile.Token));

            if (value == null)
            {
                return(null);
            }

            return(value.Uri);
        }
Пример #4
0
        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);
        }
Пример #5
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);
            }
        }