VideoHelp Forum




+ Reply to Thread
Results 1 to 12 of 12
  1. 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.
    Quote Quote  
  2. Mod Neophyte redwudz's Avatar
    Join Date
    Sep 2002
    Location
    USA
    Search Comp PM
    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.
    Quote Quote  
  3. 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?
    Quote Quote  
  4. You could write your own AviSynth filter. Focusing may be a problem when projecting onto a cylidrical surface.
    Quote Quote  
  5. 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
    Quote Quote  
  6. Originally Posted by mekanik View Post
    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?
    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.

    Originally Posted by mekanik View Post
    Thing is that I would have to write a filter myself. This is an obstacle, though I am willing to learn to tackle it.
    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
    Quote Quote  
  7. Member edDV's Avatar
    Join Date
    Mar 2004
    Location
    Northern California, USA
    Search Comp PM
    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
    Quote Quote  
  8. Cinerama screens were concave. If I understand the OP, his "screen" is convex. And it will probably require much more curvature.
    Quote Quote  
  9. 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!
    Quote Quote  
  10. Originally Posted by jagabo View Post
    Cinerama screens were concave. If I understand the OP, his "screen" is convex. And it will probably require much more curvature.
    True that. Would need some very expensive and funnily shaped lenses...
    Quote Quote  
  11. 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.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!