Programmierung > Delphi > bbMPEG - DLL

Anwendung der Unit

(Unit zur dynamischen Einbindung der bbMPEG.Dll v1.0.0.2)

 

Vorbereitungen

Vor der Benutzung muss die Unit bbMPEG eingebunden, die Variablen deklariert und die Class erstellt werden. Am Ende wird die Class wieder freigegeben.

unit unit1;
 
uses
  ... bbMPEG, ...
 
type
  TForm1 = class(TForm)
    ...
  private
    { Private-Deklarationen }
    bbMPEG         : TbbMPEG;
    bbMPEGSettings : TbbMPEGSettings;
    ...
  end;
 
...
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  ...
  {
  *  Die Class bbMPEG erstellen.
  }
  bbMPEG := TbbMPEG.Create;
  bbMPEG.libPath := ExtractFilePath(Application.ExeName);
  bbMPEGSettings := bbMPEG.Settings;
  ...
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  ...
  {
  *  Die Class bbMPEG freigeben.
  }
  FreeAndNil(bbMPEG);
  ...
end;

Folgende Eigenschaften der Class sollten gesetzt werden:


  libPath : String;
 
       Pfad zur bbMPEG.DLL
 
  inputVideo : String;
 
       Name der elementaren Videodatei einschließlich des Pfades.
 
  inputAudio : String;
 
      Name der elementaren Audiodatei einschließlich des Pfades.
 
  outputFile : String;
 
      Name der gemuxten Videodatei einschließlich des Pfades.

Darüber hinaus gibt es noch die Eigenschaft Settings, welche einen Teil der möglichen Einstellungen enthält. Die im Programm änderbaren sind in der Procedure SetDefault voreingestellt.

procedure TbbMPEG.SetDefault;
{******************************************************************************}
{**  Standardwerte einstellen
}
begin
  {
  *  Alle Einstellungen zurücksetzen
  }
  FillChar(fbbMPEGSettings, SizeOf(fbbMPEGSettings), 0);
  {
  *  Werte voreinstellen
  }
  with fbbMPEGSettings.bbProgram
  do begin
    programStreamType  := 2;
    vbrMultiplex       := True;
    frameTimestamps    := 1;
    videoDelay         := 180;
    audioDelay         := 180;
    audio1Delay        := 180;
  end;
end;

Weitere Einstellungen, welche mittels der Function WriteIni in der default.ini gespeichert werden, sind vorgegeben. Bei der Einbindung der Unit können diese Voreinstellungen selbstverständlich angepasst werden.

procedure TbbMPEG.WriteIni: boolean;
{******************************************************************************}
{** Die INI-Datei erstellen.
}
var
  bbINI     : TIniFile;
  bbINIFile : String;
begin
  bbINIFile := fbbMPEGLibPath + 'default.ini';
  bbINI     := TIniFile.Create(bbINIFile);
  try
    ...
  finally
    bbIni.Free;
  end;
end;

Ausgeführt wird der Muxvorgang durch die function Execute, welche einen Fehlercode zurückgibt.