如何将avi等视频在播放的时候与其它图片/文字混合播放?(200分)

  • 主题发起人 主题发起人 fjhst
  • 开始时间 开始时间
F

fjhst

Unregistered / Unconfirmed
GUEST, unregistred user!
我看有一个软件,它在播放avi视频的时候能够与图片/文字混合播放,看起来就像程序生成一段新的视频似的,比如原来的视频是表现蓝蓝的天空,可是经过程序处理,播放出来的视频蓝蓝的天空,还会加上指定的鸟儿,花朵。。。这是怎么实现的?
 
别老是学习啊?自己顶一个
 
先将AVI分解为一帧一帧的图片。处理这些图片(合成)、再播放
 
比较难呀。相关dxshow 得filter有相应解决得方法 常见得格式都可以, 也可以些avi格式做
 
procedure Tfrm_Main.VMRTextOut(AText: string);

var
VMRBitmap: TVMRBitmap;

begin

if AText = '' then
exit;

VMRBitmap := TVMRBitmap.Create(VideoWindow1);

with VMRBitmap, Canvasdo

begin

LoadEmptyBitmap(VideoWindow1.Width, VideoWindow1.Height, pf24bit, clSilver);

Source := VMRBitmap.Canvas.ClipRect;

Options := VMRBitmap.Options + [vmrbSrcColorKey];

ColorKey := clSilver;

Brush.Color := clSilver;

Font := frm_Option.AFont;

TextOut(0, 0, AText);

DrawTo(0, 0, 1, 1, 0.5);

end;


VMRBitmap.Free;

end;



procedure Tfrm_Main.A_FileExecute(Sender: TObject);

begin

if OpenDialog1.Execute then

begin

A_Stop.Execute;
//停止
// frm_Option.FilterGraph.Mode := gmNormal;

frm_Option.FilterGraph.Active := True;

frm_Option.FilterGraph.RenderFile(OpenDialog1.FileName);

frm_Option.FilterGraph.Play;

VMRTextOut(frm_Option.E_Text.Text);
//字幕
Timer1.Enabled := True;

A_Play.Checked := True;

A_Capture.Enabled := False;

end;


end;



这里有源码
http://2ccc.com/article.asp?articleid=272
 
后退
顶部