Directshow? 视频捕捉?(100分)

  • 主题发起人 主题发起人 qdpingping
  • 开始时间 开始时间
Q

qdpingping

Unregistered / Unconfirmed
GUEST, unregistred user!
做了一个视频捕捉的程序,转换小的视频文件时没事,但如果转换大的 .dat 文件,总是在转换过程中出错,出错位置总是在一个地方。我使用 Delphi 做的程序,代码如下:
procedure TForm1.GOClick(Sender: TObject);

var Filter: IBaseFilter;

FileSink: IFileSinkFilter;

begin

FilterGraph.Active := true;

with FilterGraph as ICaptureGraphBuilder2do

begin

SetOutputFileName(MEDIASUBTYPE_Avi, StringToOleStr(Output.Text), Filter, FileSink);

ShowFilterPropertyPage(Self.Handle, DivXEncoder as IBaseFilter, ppVFWCompConfig);

OpenDialog.Title := 'Select Video File';

if OpenDialog.Execute then

begin

with FileSource as IFileSourceFilterdo
Load(StringToOleStr(OpenDialog.FileName), nil);

RenderStream(nil, nil, FileSource as IBaseFilter, DivXEncoder as IBaseFilter, Filter);

RenderStream(nil, nil, FileSource as IBaseFilter, DivXEncoder as IBaseFilter, Filter);

FilterGraph.Play;

end;


end;


end;


可以帮我找一下出错的原因吗?
 
我又试了一下,好像是因为原文件有一点磨了。那么,如果我想下次转换的时候从磨损的地方也就是上次转换结束的地方开始,应该怎么判断再什么地方出错?应该怎样从这个地方开始?多谢多谢了。
 
帮你顶一下吧
 
算了,还是给分了。
 
接受答案了.
 
后退
顶部