Beispiel #1
0
        private static void CreateOrUpdateVideoEncodingParametersFromiOSQuality(ref MediaStreamingRequest rq)
        {
            rq.UseCustomParameters = true;
            int iOSQualityIndex = rq.Quality;

            // Work on the existing Customparameters object, if there is one, else create a new one
            if (rq.CustomParameters == null)
                rq.CustomParameters = new VideoEncodingParameters();
            VideoEncodingParameters vParams = rq.CustomParameters;

            switch (iOSQualityIndex)
            {
                    
#if ACCESSIBILITY_AUDIO
                    /*  ACCESSIBILITY VERSION :
                case 0:
                    vParams.VideoBitRate = "96k";
                    vParams.BitRateDeviation = "64k";
                    vParams.FrameWidth = 192;
                    vParams.FrameHeight = 128;
                    vParams.X264SubQ = 2;
                    vParams.AudioBitRate = "96k";
                    vParams.AudioSampleRate = "48000";
                    vParams.MotionSearchRange = 8;
                    break;
        public FFHLSRunner(string pathToTools, SegmentStore segStore)
        {
            // From parameters
            PathToTools = pathToTools;
            Store = segStore;

            // Defaults
            EncodingParameters = new VideoEncodingParameters();
            AudioSyncAmount = 1;  // 2 can create streaming issues
        }
Beispiel #3
0
        public FFHLSRunner(string pathToTools, SegmentStore segStore)
        {
            // From parameters
            PathToTools = pathToTools;
            Store       = segStore;

            // Defaults
            EncodingParameters = new VideoEncodingParameters();
            AudioSyncAmount    = 1; // 2 can create streaming issues
        }
 public FFHLSRunner(string pathToTools, SegmentStore store, MediaStreamingRequest mrq)
     : this(pathToTools, store)
 {
     request = mrq;
     EncodingParameters = mrq.CustomParameters;
     if (request.LiveTV)
     {
         EncodingParameters.SegmentDuration = request.ActualSegmentDuration;//LiveTV
     }
     else
     {
         EncodingParameters.SegmentDuration = 4;
     }
 }
Beispiel #5
0
        static VideoEncodingParameters videoEncodingParametersFromDesktopLevel(int desktopProfileLevel)
        {
            VideoEncodingParameters vParams = new VideoEncodingParameters();

            // By default, Silverlight allows square pixels  (ios is more picky)
            vParams.OutputSquarePixels = true;

            /*                  COMMENTS ON PARAMETERS
             
             X264SubQ:   6 takes twice the time of 5
             
             */
            if (desktopProfileLevel == 0)
            {
                vParams.Description = "Low";
                vParams.FrameWidth = 256;
                vParams.FrameHeight = 192;
                vParams.VideoBitRate = "360k";
                vParams.BitRateDeviation = "60k";
                vParams.X264SubQ = 6;
                vParams.AudioBitRate = "32k";
                vParams.AudioSampleRate = "48000";
                vParams.MotionSearchRange = 12;

                vParams.Partition_I4x4 = true;
                vParams.Partition_I8x8 = true;
                vParams.Partition_P8x8 = true;
            }
            else if (desktopProfileLevel == 1)
            {
                vParams.Description = "Normal";
                vParams.FrameWidth = 320;
                vParams.FrameHeight = 240;
                vParams.VideoBitRate = "600k";
                vParams.BitRateDeviation = "80k";
                vParams.X264SubQ = 6;
                vParams.AudioBitRate = "64k";
                vParams.AudioSampleRate = "48000";
                vParams.MotionSearchRange = 14;

                vParams.Partition_I4x4 = true;
                vParams.Partition_I8x8 = true;
                vParams.Partition_P8x8 = true;
            }
            else if (desktopProfileLevel == 2)
            {
                vParams.Description = "High";
                vParams.FrameWidth = 512;
                vParams.FrameHeight = 384;
                vParams.VideoBitRate = "1200k";
                vParams.BitRateDeviation = "100k";
                vParams.X264SubQ = 6;
                vParams.AudioBitRate = "64k";
                vParams.AudioSampleRate = "48000";
                vParams.MotionSearchRange = 16;

                vParams.Partition_I4x4 = true;
                vParams.Partition_I8x8 = true;
                vParams.Partition_P8x8 = true;
            }
            else if (desktopProfileLevel == 3)
            {
                vParams.Description = "Higher";
                vParams.FrameWidth = 576;
                vParams.FrameHeight = 432;
                vParams.VideoBitRate = "1400k";
                vParams.BitRateDeviation = "100k";
                vParams.X264SubQ = 6;
                vParams.AudioBitRate = "64k";
                vParams.AudioSampleRate = "48000";
                vParams.MotionSearchRange = 16;

                vParams.Partition_I4x4 = true;
                vParams.Partition_I8x8 = true;
                vParams.Partition_P8x8 = true;
            }
            else if (desktopProfileLevel == 4)
            {
                vParams.Description = "Very High";
                vParams.FrameWidth = 640;
                vParams.FrameHeight = 480;
                vParams.VideoBitRate = "1800k";
                vParams.BitRateDeviation = "100k";
                vParams.X264SubQ = 6;
                vParams.AudioBitRate = "64k";
                vParams.AudioSampleRate = "48000";
                vParams.MotionSearchRange = 16;

                vParams.Partition_I4x4 = true;
                vParams.Partition_I8x8 = true;
                vParams.Partition_P8x8 = true;
            }
            else 
            {
                vParams.Description = "Highest";
                vParams.FrameWidth = 800;
                vParams.FrameHeight = 600;
                vParams.VideoBitRate = "2400k";
                vParams.BitRateDeviation = "120k";
                vParams.X264SubQ = 8;
                vParams.AudioBitRate = "96k";
                vParams.AudioSampleRate = "48000";
                vParams.MotionSearchRange = 16;

                vParams.Partition_I4x4 = true;
                vParams.Partition_I8x8 = true;
                vParams.Partition_P8x8 = true;
            }
            return vParams;
        }
Beispiel #6
0
 public FFHLSRunner(string pathToTools, SegmentStore store, VideoEncodingParameters vidParameters)
     : this(pathToTools, store)
 {
     EncodingParameters = vidParameters;
 }
Beispiel #7
0
 public FFHLSRunner(string pathToTools, SegmentStore store, VideoEncodingParameters vidParameters)
     : this(pathToTools, store)
 {
     EncodingParameters = vidParameters;
 }
Beispiel #8
0
 public FFHLSRunner(string pathToTools, SegmentStore store, MediaStreamingRequest mrq)
     : this(pathToTools, store)
 {
     request = mrq;
     EncodingParameters = mrq.CustomParameters;
     if (request.LiveTV)
     {
         MaxIncomingDataSize = 20000000; // 20Mb per segment maximum size
     }
     if (request.LiveTV || request.NewLiveTV)
     {
         EncodingParameters.SegmentDuration = request.ActualSegmentDuration;//LiveTV
     }
     else
     {
         EncodingParameters.SegmentDuration = 4;
     }
 }