Example #1
0
        static void Main(string[] args)
        {
            var    appSettings = ConfigurationManager.AppSettings;
            string rtspPort    = appSettings["rtspPort"] ?? "8554";
            int    rtsp        = 8554;

            try
            {
                rtsp = Convert.ToInt32(rtspPort);
            }
            catch
            { }
            string resolution = appSettings["cameraResolution1"] ?? "800;600";

            Console.WriteLine("Camera resolution: {0}", resolution);

            var xy = resolution.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

            if (xy.Length != 2)
            {
                xy = new string[] { "800", "600" }
            }
            ;
            int width  = 800;
            int height = 600;

            try
            {
                width = Convert.ToInt32(xy[0]);
            }
            catch
            {
                width = 800;
            }

            try
            {
                height = Convert.ToInt32(xy[1]);
            }
            catch
            {
                height = 600;
            }

            Console.WriteLine("Width {0} Height {1}", width, height);


            Server = new RTSPServer(rtsp, (width, height));

            var streamName = "picamera";

            ServerMediaSession unicast = new ServerMediaSession(streamName, streamName, String.Format("Session streamed by \"{0}\"", RTSPServer.ServerVersion));

            unicast.AddSubsession(new H264VideoCaptureMediaSubsession());
            Server.AddServerMediaSession(unicast);

            var multicast = new ServerMediaSession("pimulticast", "pimulticast", String.Format("Session streamed by \"{0}\"", RTSPServer.ServerVersion));

            multicast.AddSubsession(new H264MulticastVideoCaptureSubsession());

            Server.AddServerMediaSession(multicast);


            Server.Run();



            //Server.Shutdown();
        }
    }