LEADTOOLS Multimedia (Leadtools.MediaFoundation assembly)

EstimateOutputSize Method (ConvertCtrl)

Show in webframe
Example 



Value that represents the duration in seconds for which to calculate the estimated output size. Pass the value -1 to estimate the conversion output size for the whole file duration.
Gets the estimated conversion output size for the specified duration, in bytes.
Syntax
'Declaration
 
Public Overridable Function EstimateOutputSize( _
   ByVal duration As Double _
) As Double
'Usage
 
Dim instance As ConvertCtrl
Dim duration As Double
Dim value As Double
 
value = instance.EstimateOutputSize(duration)
public virtual double EstimateOutputSize( 
   double duration
)
public:
virtual double EstimateOutputSize( 
   double duration
) 

Parameters

duration
Value that represents the duration in seconds for which to calculate the estimated output size. Pass the value -1 to estimate the conversion output size for the whole file duration.

Return Value

A value that represents the conversion estimated output size.
Remarks
The estimated output size is calculated using the following equation: Size = (Bitrate * Duration) / 8. The retrieved size depends on the state of the convert object. If the object is in the running state, the retrieved size is related to the actual number of bytes that have been written. If the object is not running, the retrieved size is a theoretical value dependent on the conversion settings and the chosen encoding settings.
Example
Copy Code  
Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures

Public _result As Boolean = False
Public _form As ConvertCtrlForm = New ConvertCtrlForm()
Public _convertctrl As ConvertCtrl
Public _estBitRate As Integer = 0
Public _estFileSize As Double = 0.0
Public Sub EstimateExample()
   ' reference the convert control
   _convertctrl = _form.ConvertCtrl

   ' input and output files
   Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_Source.avi")
   Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_EstimateOutputBitRateExample.mp4")

   Try
      ' set the source video
      _convertctrl.SourceFile = inFile

      ' select MP4 target format
      _convertctrl.TargetFormat = TargetFormatType.MP4

      ' select H264 video target format
      Dim index As Integer = -1
      Dim trgvideoformats As TargetVideoFormats = _convertctrl.TargetFormats(_convertctrl.TargetFormat).VideoFormats
      index = trgvideoformats.IndexOf("{34363248-0000-0010-8000-00AA00389B71}") ' H264
      trgvideoformats.Selection = index

      ' select AAC audio target format
      Dim trgaudioformats As TargetAudioFormats = _convertctrl.TargetFormats(_convertctrl.TargetFormat).AudioFormats
      index = trgaudioformats.IndexOf("{00001610-0000-0010-8000-00AA00389B71}") ' AAC
      trgaudioformats.Selection = index

      ' subscribe to the progress event
      AddHandler _convertctrl.Progress, AddressOf ConvertCtrl_Progress

      ' set the capture target file
      _convertctrl.TargetFile = outFile

      ' set the capture mode to still and start
      _convertctrl.StartConvert()

      ' we'll loop on the state and pump messages for this example.
      ' but you should not need to if running from a Windows Forms application.
      Do While _convertctrl.State = ConvertState.Running
         Application.DoEvents()
      Loop

      ' set the result to what we expect
      _result = (_estBitRate <> 0 AndAlso _estFileSize <> 0.0)
   Catch e1 As Exception
      _result = False
   End Try
End Sub

Private Sub ConvertCtrl_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs)
   ' get the bit rate estimate
   ' we will get called multiple time throughout the conversion process
   ' but for this example it is ok just to use the last received estimate
   _estBitRate = _convertctrl.EstimateOutputBitRate()

   ' get the file size estimate
   _estFileSize = _convertctrl.EstimateOutputSize(CDbl(e.time))
End Sub

Public NotInheritable Class LEAD_VARS
Public Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media"
End Class
using Leadtools;
using Leadtools.MediaFoundation;
using LeadtoolsMediaFoundationExamples.Fixtures;

public bool _result = false;
public ConvertCtrlForm _form = new ConvertCtrlForm();
public ConvertCtrl _convertctrl;
public int _estBitRate = 0;
public double _estFileSize = 0.0;
public void EstimateExample()
{
   // reference the convert control
   _convertctrl = _form.ConvertCtrl;

   // input and output files
   string inFile = Path.Combine(LEAD_VARS.MediaDir,"ConvertCtrl_Source.avi");
   string outFile = Path.Combine(LEAD_VARS.MediaDir,"ConvertCtrl_EstimateOutputBitRateExample.MP4");

   try
   {
      // set the source video
      _convertctrl.SourceFile = inFile;

      // select MP4 target format
      _convertctrl.TargetFormat = TargetFormatType.MP4;

      // select H264 video target format
      int index = -1;
      TargetVideoFormats targetvideoformats = _convertctrl.TargetFormats[_convertctrl.TargetFormat].VideoFormats;
      index = targetvideoformats.IndexOf("{34363248-0000-0010-8000-00AA00389B71}");// H264
      targetvideoformats.Selection = index;

      // select AAC audio target format
      TargetAudioFormats targetaudioformats = _convertctrl.TargetFormats[_convertctrl.TargetFormat].AudioFormats;
      index = targetaudioformats.IndexOf("{00001610-0000-0010-8000-00AA00389B71}");// AAC
      targetaudioformats.Selection = index;

      // subscribe to the progress event
      _convertctrl.Progress += new ProgressEventHandler(ConvertCtrl_Progress);

      // set the capture target file
      _convertctrl.TargetFile = outFile;

      // set the capture mode to still and start
      _convertctrl.StartConvert();

      // we'll loop on the state and pump messages for this example.
      // but you should not need to if running from a Windows Forms application.
      while (_convertctrl.State == ConvertState.Running)
         Application.DoEvents();

      // set the result to what we expect
      _result = (_estBitRate != 0 && _estFileSize != 0.0);
   }
   catch (Exception)
   {
      _result = false;
   }
}

void ConvertCtrl_Progress(object sender, ProgressEventArgs e)
{
   // get the bit rate estimate
   // we will get called multiple time throughout the conversion process
   // but for this example it is ok just to use the last received estimate
   _estBitRate = _convertctrl.EstimateOutputBitRate();

   // get the file size estimate
   _estFileSize = _convertctrl.EstimateOutputSize((double)e.time);
}

static class LEAD_VARS
{
public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}
Requirements

Target Platforms

See Also

Reference

ConvertCtrl Class
ConvertCtrl Members

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.MediaFoundation requires a Multimedia or Multimedia Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features