Hello! I'm totally new to video stuff. For a project of mine, I'd like to project a movie on a non-straight surface. Therefore I'd have to transform the video, using some basic projective geometry, so that one centimeter on the surface also is one centimeter as viewed by humans.
Any recommendations for the software capable of scaling a video according to some formula?
I'm using GNU/linux as my OS, and I'm not afraid of CLI.
Wasn't sure where to put this question, feel free to move it to a better place.
+ Reply to Thread
Results 1 to 12 of 12
-
-
You do realize that you will still be projecting a rectangular image, so there may be spillover, depending on the size/shape of your surface. Could you give us a general idea of the shape of the surface, round, multi-angled, etc?
Some transforms are simple enough for shape, trapezoid, triangular, round, but stretching and compressing the video to compensate for a 3D shape could get a bit complex.
This forum is good for a general question. Probably better than the Linux forum.
And welcome to our forums. -
Thanks for quick reply and warm welcome
I want to project a movie on a cylinder from the outside, with, three or five projectors, each taking a part of the cylinder. So it is possible to walk around the projection. I think it should work if I get my maths straight (working on it :P ), and have the capability to apply that maths to transform the video.
A correction for the dimensions should be done, and for the light intensity.
I saw that ffmpeg can take all kinds of mathematical expressions. Should I be looking into that? Is there some nice introduction to this available? -
A internet search came up with this: http://cs.unc.edu/Research/stc/publications/Raskar_VSMM98.pdf
And this: http://www.christiedigital.com/AMEN/Products/imager3880475602.htm -
Cool, thanks for your replies! It is so much nicer to get some pointers, as I have no clue how to google efficiently on this topic yet...
BTW: I think I am very close to a nice formula for the transformation.
redwudz: Cool links, read 'em. First gave some handy insights, but no hints for practical tools. The second is probably way beyond my budget (close to zero).
jagabo: Focus might be a problem indeed, but if the distance of the projector to the cylinder is big (relative to the radius), I hope that this problem will not be too distracting.
Thanks for the Avisynth suggestion. But only the alpha 3.0 is ported to linux, as I understood. Is there an equally powerful tool for linux? I guess that Avidemux or MEncoder both should be capable of the job.
Thing is that I would have to write a filter myself. This is an obstacle, though I am willing to learn to tackle it.
Another way might be to split the video in separate images, and then use imagemagick to alter them, before joining 'em again in a video. Will have a nice time researching the options -
Not that I know of. But AviSynth works unde Wine. VirtualDub does to so you could do the processing in AviSynth saving to a file with VirtualDub.
You could start with the source code for some other simple filter and just add your algorithm. There's a non-linear stretch filter for AviSynth which might be useful to you:
http://www.volter.net/avisynth_en/externalfilters/simpleresize.htm -
This is usually done optically in the theaters. Remember the multi-projector cylindrical "Cinerama" screens?
[img]http://madisoncamerunning.com/248/248PC/CINLAST.JPG[/img]
[img]http://www.triggertone.com/images/cinerama.gif[/img]Last edited by edDV; 8th Jun 2010 at 16:31.
Recommends: Kiva.org - Loans that change lives.
http://www.kiva.org/about -
Cinerama screens were concave. If I understand the OP, his "screen" is convex. And it will probably require much more curvature.
-
Cool, yeah, it has similarities with cinerama.
Took a close look at the code of the SimpleResize filter. But to be honest, this is the first time that I've seen C++ code. I wouldn't know how to start inserting some formula in there.
I've been looking into options for a less perfect solution, but that will hopefully produce an acceptable result. So: Don't try to implement the transformation as it should, but to crop vertical bars from the movie, apply an average transformation to these bars, and then getting these videos together. I'm (slightly) more comfortable with Python and BASH, than with C++.
I think I will script the following: Get all the frames separately as images, then for each image, crop it into bars, resize the bars, concatenate the bars into an image again, and then assemble a video from these images. Not the most subtle solution, but one I think I can make work...
Thanks guys, for your useful feedback! -
-
If you use 5 projectors from far enough away the distortion might not be too bad. Especially if you mask the projections so they don't overlap by much. The distortion from each projector will match where they meet.
Similar Threads
-
Audio correction in VirtualDub - possible for selected periods of video ?
By ralf07 in forum AudioReplies: 5Last Post: 18th Oct 2011, 22:10 -
Sony Z1U video for color correction
By eutapio in forum Camcorders (DV/HDV/AVCHD/HD)Replies: 6Last Post: 17th Feb 2011, 10:36 -
Need Color Correction help with old VHS video.
By mlong30 in forum RestorationReplies: 3Last Post: 1st Jan 2011, 23:27 -
MP4 video correction in audio
By onlygk in forum Newbie / General discussionsReplies: 2Last Post: 23rd Nov 2010, 01:08 -
MP4 video audio level correction
By drwho in forum Newbie / General discussionsReplies: 1Last Post: 12th Oct 2008, 16:24