(Unit zur dynamischen Einbindung der bbMPEG.Dll v1.0.0.2)
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.
Anwendung der Unit > Informationen zum Source Code