Пример #1
0
        static async Task Main(string[] args)
        {
            // Run this together with SnoopApp for diagnostics
            connection = new DeviceConnection();
            connection.UnknownCommandReceived += Connection_UnknownCommandReceived;
            await connection.Connect("127.0.0.1", 5000);

            Console.WriteLine("Connected");
            Console.Write("Password: "******"admin", password);

            Console.WriteLine("Logged in");
            Console.WriteLine("Device name: {0}", loginSuccess.ProductInfo.DeviceName);
            Console.WriteLine("Firmware version: {0}", loginSuccess.ProductInfo.FirmwareVersion);
            StreamFrame keyframe = await connection.SnapKeyframe(0);

            Console.WriteLine("Keyframe received");
            Console.WriteLine("Width: {0}", keyframe.Width);
            Console.WriteLine("Height: {0}", keyframe.Height);
            // File.WriteAllBytes("C:\\temp\\keyframe.h264", keyframe.Data);
            connection.StreamFrameReceived += Connection_StreamFrameReceived;
            fs       = new FileStream("C:\\temp\\channel0a.h264", FileMode.Create, FileAccess.Write, FileShare.Read);
            streamId = await connection.StreamStart(0);

            // Console.ReadKey();
            await(new TaskCompletionSource <bool>().Task);
        }
Пример #2
0
        /// <summary>
        /// dotnet SnapshotForZR04RN.dll ipaddr 5000 admin passwd 0 | ffmpeg -i - -vframes 1 -f image2pipe -vcodec mjpeg -q 3 - > snapshot.jpg
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        static async Task Main(string[] args)
        {
            int channel = args.Length > 4 ? int.Parse(args[4]) : 0;
            int sub     = args.Length > 5 ? int.Parse(args[5]) : 0;

            connection = new DeviceConnection();
            await connection.Connect(args[0], int.Parse(args[1]));

            LoginSuccess loginSuccess = await connection.Login(args[2], args[3]);

            StreamFrame keyframe = await connection.SnapKeyframe(channel, sub);

            Stream stdout = Console.OpenStandardOutput();
            await stdout.WriteAsync(keyframe.Data, 0, keyframe.Data.Length);

            connection.Disconnect();
            await stdout.FlushAsync();

            stdout.Close();
        }