Xvid压缩的视频文件,用流的方式怎么判断每帧的实际长度呢(200分)

  • 主题发起人 主题发起人 nanshan
  • 开始时间 开始时间
N

nanshan

Unregistered / Unconfirmed
GUEST, unregistred user!
文件流写入,spf.Write(FrameBuf, Ret);
因为写入的时候每帧的大小都是不一样的,用什么方式读取呢。
用文件流读取时,没有办法判断每次读取多长。

请视频编程的高手赐教,谢谢
 
直接把内容读到内存中,然后再用TBitmap转一下看看。
 
要求速度快,不占CPU

for h := SpBmp.height-1do
wnto 0do

begin

for w := 0 to SpBmp.Width-1do

begin

SpBmp.Canvas.Pixels[w,h]:= RGB(Framec[i+2],Framec[i+1],Framec);
i:=i+3;
end;

end;

这个方式处理太慢了,还占CPU
 
用ScanLine扫描
 
VAR
i : INTEGER;

j : INTEGER;

Row: pRGBTripleArray;


FOR j := 0 TO Bitmap.Height-1do

begin

Row := Bitmap.Scanline[j];

FOR i := 0 TO Bitmap.Width-1do

begin

WITH Rowdo

begin

rgbtRed := ;
rgbtGreen := ;

rgbtBlue := ;

END
END
end;
 
用 DrawDibDraw 解决了 ,散了吧
 
后退
顶部