delphi 怎么保存视频采集的录像为avi文件
delphi 怎样保存视频采集的录像为avi文件?
delphi 怎样保存视频采集的录像为avi文件?
我的视频采集到的buffer是拷贝到img1中显示出来的
现在我用了一个button按钮 事件中实现了把当前采集的画面保存成bmp图像 我是这样写的 如下
procedure Tmy_frm.btnsaveClick(Sender: TObject);
begin
if dlgSave1.Execute then
begin
img1.Picture.SaveToFile(dlgSave1.FileName);
end;
end;
现在想把我实时的从开始采集视频到保存的时候这一段视频保存出来 该如何写?怎么样保存成avi文件?
------解决方案--------------------
有一个videocap控件可以做样
------解决方案--------------------
delphi 怎样保存视频采集的录像为avi文件?
我的视频采集到的buffer是拷贝到img1中显示出来的
现在我用了一个button按钮 事件中实现了把当前采集的画面保存成bmp图像 我是这样写的 如下
procedure Tmy_frm.btnsaveClick(Sender: TObject);
begin
if dlgSave1.Execute then
begin
img1.Picture.SaveToFile(dlgSave1.FileName);
end;
end;
现在想把我实时的从开始采集视频到保存的时候这一段视频保存出来 该如何写?怎么样保存成avi文件?
------解决方案--------------------
有一个videocap控件可以做样
------解决方案--------------------
unit avi;
interface
{$I config.inc}
uses
Windows, SysUtils,Classes, Graphics, Dialogs,MMSystem,ACMWaveIn,ACMWaveOut, Controls,Forms,
{$IFDEF VER90}
ole2;
{$ELSE}
ActiveX;
{$ENDIF}
type
TAVIStreamInfoA = record
fccType,
fccHandler,
dwFlags, // Contains AVITF_* flags
dwCaps: DWORD;
wPriority,
wLanguage: WORD;
dwScale,
dwRate, // dwRate / dwScale == samples/second
dwStart,
dwLength, // In units above...
dwInitialFrames,
dwSuggestedBufferSize,
dwQuality,
dwSampleSize: DWORD;
rcFrame: TRect;
dwEditCount,
dwFormatChangeCount: DWORD;
szName: array[0..63] of AnsiChar;
end;
WAVEFORMATEX = record
wFormatTag : WORD ;
nChannels : WORD ;
nSamplesPerSec : DWORD ;
nAvgBytesPerSec : DWORD ;
nBlockAlign : WORD ;
wBitsPerSample : WORD ;
cbSize : WORD ;
end;
Tmpeglayer3waveformat_tag = record
wfx : WAVEFORMATEX ;
wID : WORD ;
fdwFlags : DWORD ;
nBlockSize : WORD ;
nFramesPerBlock : WORD ;
nCodecDelay : WORD ;
end;
TAVIStreamInfo = TAVIStreamInfoA;
PAVIStreamInfo = ^TAVIStreamInfo;
TWavHeader = record
rId : longint;
rLen : longint;
wId : longint;
fId : longint;
fLen : longint;
wFormatTag : word;
nChannels : word;
nSamplesPerSec : longint;
nAvgBytesPerSec : longint;
nBlockAlign : word;
wBitsPerSample : word;
dId : longint;
wSampleLength : longint;
end;
PTWavHeader = ^TWavHeader;
TAVICOMPRESSOPTIONS = record
fccType ,
fccHandler ,
dwKeyFrameEvery,
dwQuality ,
dwBytesPerSecond ,
dwFlags : DWORD ;
lpFormat : Pointer ;
cbFormat : DWORD ;
lpParms : Pointer ;
cbParms : DWORD ;
dwInterleaveEvery :DWORD ;
end;
PAVICOMPRESSOPTIONS = ^TAVICOMPRESSOPTIONS;
TFmtChunk = packed record
id : array[0..3] of Char; //="fmt "