Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures
Public _result As Boolean = False
Public _form As ConvertCtrlForm = New ConvertCtrlForm()
Public _convertctrl As ConvertCtrl
Public Sub VideoFormatsExample()
' 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_VideoFormatsExample.mp4")
Try
' set the source for conversion
_convertctrl.SourceFile = inFile
' get MP4 target format
Dim tf As TargetFormat = _convertctrl.TargetFormats(TargetFormatType.MP4)
' reset MP4 target format
tf.Reset()
' select MP4 target format
tf.Selected = True
' select H264 video 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 format
Dim trgaudioformats As TargetAudioFormats = _convertctrl.TargetFormats(_convertctrl.TargetFormat).AudioFormats
index = trgaudioformats.IndexOf("{00001610-0000-0010-8000-00AA00389B71}") ' AAC
trgaudioformats.Selection = index
' set audio properties
tf.AudioAvgBytesPerSecond = 24000
tf.AudioBitsPerSample = 16
tf.AudioNumChannels = 2
tf.AudioSamplesPerSecond = 44100
' set video properties
tf.VideoEncodeQuality = 85
tf.VideoFrameHeight = 240
tf.VideoFrameRate = 29.26
tf.VideoFrameWidth = 320
' set the target output file and format
_convertctrl.TargetFile = outFile
' subscribe to the progress event
AddHandler _convertctrl.Progress, AddressOf ConvertCtrl_Progress
' convert it now!
_convertctrl.StartConvert()
Catch e1 As Exception
_result = False
End Try
' 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
End Sub
Private Sub ConvertCtrl_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs)
' set the result to true if complete
If e.percent = 100 Then
_result = True
End If
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 void VideoFormatsExample()
{
// 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_VideoFormatsExample.MP4");
try
{
// set the source for conversion
_convertctrl.SourceFile = inFile;
// get the MP4 target format
TargetFormat tf = _convertctrl.TargetFormats[TargetFormatType.MP4];
// reset the MP4 target format
tf.Reset();
// select the MP4 target format
tf.Selected = true;
// select H264 video format
int index = -1;
TargetVideoFormats targetvideoformats = tf.VideoFormats;
index = targetvideoformats.IndexOf("{34363248-0000-0010-8000-00AA00389B71}");// H264
targetvideoformats.Selection = index;
// select AAC audio format
TargetAudioFormats targetaudioformats = tf.AudioFormats;
index = targetaudioformats.IndexOf("{00001610-0000-0010-8000-00AA00389B71}");// AAC
targetaudioformats.Selection = index;
// set audio properties
tf.AudioAvgBytesPerSecond = 24000;
tf.AudioBitsPerSample = 16;
tf.AudioNumChannels = 2;
tf.AudioSamplesPerSecond = 44100;
// set video properties
tf.VideoEncodeQuality = 85;
tf.VideoFrameHeight = 240;
tf.VideoFrameRate = 29.26;
tf.VideoFrameWidth = 320;
// set the target output file and format
_convertctrl.TargetFile = outFile;
// set our progress event handler
_convertctrl.Progress += new ProgressEventHandler(ConvertCtrl_Progress);
// convert it now!
_convertctrl.StartConvert();
}
catch (Exception)
{
_result = false;
}
// 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();
}
void ConvertCtrl_Progress(object sender, ProgressEventArgs e)
{
// set the result to true if complete
if (e.percent == 100)
_result = true;
}
static class LEAD_VARS
{
public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}