白
白色的泷
Unregistered / Unconfirmed
GUEST, unregistred user!
最近看一段MPEG截取的代码,如下
function TfrmVidioEdit.My_CutMpegFile(SourceFile,DestFile:String;StartTime,TimeLength:integer):Boolean;
const MyTimeFramSize=2324*65;
var
MyMpegFile:TFileStream;
MyMemFile:TMemoryStream;
begin
Result:=True;
MyMpegFile:=TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
MyMemFile:=TMemoryStream.Create;
try
try
MyMemFile.CopyFrom(MyMpegFile,2324);
MyMpegFile.Seek(MyTimeFramSize*StartTime,soFromBeginning);
MyMemFile.CopyFrom(MyMpegFile,MyTimeFramSize*TimeLength);
MyMemFile.SaveToFile(DestFile);
finally
MyMemFile.Free;
MyMpegFile.Free;
end;
except
Result:=False;
end;
end;
小弟有几个问题
1,MyTimeFramSize=2324*65;这个常量代表什么。好像mpeg每个 sector 可存 2324 bytes
2,为什么首先要MyMemFile.CopyFrom(MyMpegFile,2324);
谢谢
function TfrmVidioEdit.My_CutMpegFile(SourceFile,DestFile:String;StartTime,TimeLength:integer):Boolean;
const MyTimeFramSize=2324*65;
var
MyMpegFile:TFileStream;
MyMemFile:TMemoryStream;
begin
Result:=True;
MyMpegFile:=TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
MyMemFile:=TMemoryStream.Create;
try
try
MyMemFile.CopyFrom(MyMpegFile,2324);
MyMpegFile.Seek(MyTimeFramSize*StartTime,soFromBeginning);
MyMemFile.CopyFrom(MyMpegFile,MyTimeFramSize*TimeLength);
MyMemFile.SaveToFile(DestFile);
finally
MyMemFile.Free;
MyMpegFile.Free;
end;
except
Result:=False;
end;
end;
小弟有几个问题
1,MyTimeFramSize=2324*65;这个常量代表什么。好像mpeg每个 sector 可存 2324 bytes
2,为什么首先要MyMemFile.CopyFrom(MyMpegFile,2324);
谢谢