📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
MAX_FRAME_LENGTH = 50000;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure SeparateH264Data(AFile : string);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SeparateH264Data(AFile : string);
var
mFile,oFile : Integer;
ByteCount : Integer;
FMediaBuf : array[0..MAX_FRAME_LENGTH-1]of char; // 100 K
OFilestr : string;
begin
OFilestr := AFile +'.264';
FileClose( FileCreate(OFilestr));
oFile := FileOpen(OFilestr, fmOpenReadWrite);
mFile := FileOpen(AFile, fmOpenRead or fmShareDenyNone);
while (FileRead(mFile,ByteCount,4) = 4 ) do
begin
if ByteCount > MAX_FRAME_LENGTH then exit;
if (FileRead(mFile,FMediaBuf[0], ByteCount ) = ByteCount ) then
begin
FileWrite(oFile,FMediaBuf[8],ByteCount-8);
end;
end;
Fileclose(mFile);
Fileclose(oFile);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
K : Integer;
Str : string;
Slist : TStringList;
begin
Slist := TStringList.Create;
Slist.AddStrings(memo1.Lines);
for K :=0 to Slist.Count -1 do
begin
Str := SList.Strings[k];
SeparateH264Data(str);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -