Leadtools.MediaFoundation Namespace > ConvertCtrl Class : EstimateOutputSize Method |
'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)
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"; }