[vtkusers] vtkMPEG2Writer
Beau Sapach
beau.sapach at ualberta.ca
Mon Jul 31 16:57:00 EDT 2006
Thanks Brian,
I've switched to using already-existing vtkimagedata objects from my
application (medical images) instead of taking a snapshot of the render
window they're in for each frame. Now I've got a working mpeg file, turns
out I didn't really understand the mpegwriter, and wasn't doing any
color-mapping of my input data. ANYway, capturing the entire render window
is next.
Another question though, is there a way to specify the length (and
inherently the timing) of the movie? Thanks!
Beau
From: Wylie, Brian [mailto:bnwylie at sandia.gov]
Sent: Monday, July 31, 2006 1:43 PM
To: Beau Sapach; vtkusers at vtk.org
Subject: RE: [vtkusers] vtkMPEG2Writer
In this case, unlike many others, the error messages are actually giving you
good information. :)
The mpeg encoders have to have multiples of 2 or multiple of 4 in the image
size of the movies it generates.
Grab the size of the render window with GetSize(), and then resize the
window (probably smaller) to the next multiple of 4 in both directions, I'm
assuming with SetSize(). Then it should work ok. :)
Brian Wylie - Org 1424
Sandia National Laboratories
MS 0822 - Building 880/A1-J
(505)844-2238 FAX(505)845-0833
____ _ __
/ __ \____ _________ | | / (_)__ _ __
/ /_/ / __ `/ ___/ __ `/ | / / / _ \ | /| / /
/ ____/ /_/ / / / /_/ /| |/ / / __/ |/ |/ /
/_/ \__,_/_/ \__,_/ |___/_/\___/|__/|__/
Unleash the Beast
_____
From: vtkusers-bounces+bnwylie=sandia.gov at vtk.org
[mailto:vtkusers-bounces+bnwylie=sandia.gov at vtk.org] On Behalf Of Beau
Sapach
Sent: Monday, July 31, 2006 1:37 PM
To: vtkusers at vtk.org
Subject: [vtkusers] vtkMPEG2Writer
Hello everyone,
I'm trying to use vtkMPEG2Writer to capture the frames of a render window
into a movie but I keep getting these errors:
Generic Warning: In \vtk-5.0.0\Io\vtkMPEG2Writer.cxx, line 61
horizontal_size must be a even [4:2:0/4:2:2]
Generic Warning: In \vtk-5.0.0\Io\vtkMPEG2Writer.cxx, line 61
vertical_size must be a even [4:2:0]
Generic Warning: In \vtk-5.0.0\Io\vtkMPEG2Writer.cxx, line 61
vertical _size must be a even [field pictures]
Generic Warning: In \vtk-5.0.0\Io\vtkMPEG2Writer.cxx, line 61
vertical _size must be a multiple of 4 [4:2:0 field pictures]
Here is the code behind my Recorder object. This is somewhat simplified so
I'm sure if it were compiled would cause some problems, I can already see
one memory leak. Nonetheless, if anyone sees any obvious problems with
this, please let me know! The functions are called in the order they are
presented.
void Recorder::GrabFrame()
{
vtkImageData * frame = vtkImageData::New();
vtkUnsignedCharArray * pData = vtkUnsignedCharArray::New();
vtkRenderWindow * rw = GetRenderWindow();
int * dim = rw->GetSize();
rw->GetRGBACharPixelData(1,1,dim[0]-1,dim[1]-1,1,pData);
frame->SetExtent(0,dim[0],0,dim[1],0,0);
frame->SetScalarTypeToUnsignedChar();
frame->SetNumberOfScalarComponents(4);
frame->GetPointData()->SetScalars(pData);
}
void Recorder::WriteFrame()
{
vtkMPEG2Writer * mWriter = vtkMPEG2Writer::New();
if(!started){
mWriter->SetFileName("d:\\testvideo.mpg");
mWriter->SetInput(frame);
mWriter->Start();
started = TRUE;
}else{
mWriter->SetInput(frame);
mWriter->Write();
}
}
void Recorder::StopRecording()
{
mWriter->End();
}
--
Network Administrator
In-Vivo NMR Centre
University of Alberta
Phone: (780) 492-8098
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20060731/a940b2ba/attachment.htm>
More information about the vtkusers
mailing list