Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Compression with VLAVILogger
03-27-2013, 05:37 AM
Post: #1
Compression with VLAVILogger
Hi,

I trying to create AVI files, using the VLRecordedBitmapDemo as example (and using BMDThread instead of TThread). I manage the code in a separate unit so I instantiate the component in code :

VLGenericFilter := TVLGenericFilter.Create(nil);
VLAVILogger := TVLAVILogger.Create(nil);
VLGenericFilter.OutputPin.Connect(VLAVILogger.InputPin);
VLAVILogger.Compression.Enabled := True;

Then I use a similar loop as in the demo to write the frames

while not Thread.Terminated do
begin

// Sync with VCL to get the currenty image
Thread.Synchronize(RecThreadSync);

// Write it to the AVI
// Create a image buffer.
ABuffer := TVLImageBuffer.CreateBmp(FRecImage);

// Send the buffer.
VLGenericFilter.SendData( ABuffer );

end;

However this generates, even with the compression enabled, very big files. I tried to slow down the sending of the frames by adding a Sleep(40) command in the loop. Then the files are effectively smaller, but synchronization is wrong (they movie plays too fast).

What is the proper way to slow down the frame pumping, and still to keep the timing correct ?

Thanks,

soitjes.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Compression with VLAVILogger - soitjes - 03-27-2013 05:37 AM
RE: Compression with VLAVILogger - Dave - 03-27-2013, 10:16 AM
RE: Compression with VLAVILogger - soitjes - 03-28-2013, 12:56 AM
RE: Compression with VLAVILogger - Dave - 03-28-2013, 10:14 PM
RE: Compression with VLAVILogger - soitjes - 03-29-2013, 06:05 AM
RE: Compression with VLAVILogger - Dave - 03-29-2013, 11:57 AM
RE: Compression with VLAVILogger - BReeves - 03-29-2013, 08:01 PM

Forum Jump:


User(s) browsing this thread: 1 Guest(s)