Initial Camera Tracking Commit by Sergey Sharybin

Hi guys, I’m trying the last tomato build by fish , it seems to load the movie in the Movie Clip Editor but it shows just the blank window.

There is an error message in the terminal:

Input #0, mpeg, from '/home/env/Documenti/web/nuovo13/anim/spm.mpg':
  Duration: 00:00:07.92, start: 0.497400, bitrate: 1232 kb/s
    Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 104857 kb/s, 25 tbr, 90k tbn, 25 tbc
ffmpeg has changed alloc scheme ... ARGHHH!
not an anim: /home/env/Documenti/web/nuovo13/anim/spm.mpg

The same with different formats, even avi.
Any idea?

EnV: can that build run any movie files? anywhere in blender? sequencer?

looks like ffmpeg, and maybe you are running version that doesn’t work with this build… ?
what distro you are using?

i tried the fish build, i couldn’t make it work at all, but i’m on a 64bit kubuntu system… this one works perfectly: http://graphicall.org/329

.b

tomato is kindly merged into salad on every update by sergey. salad is in the buildbot setup, so you can get up to date builds here:
http://builder.blender.org/download/

@env, yes looks like an outdated ffmpeg.

If you can’t get ffmpeg updated through your package manager, it’s easy to build from svn or git, setting /usr/local in the config and then changing blenders build config file to point ffmpeg to /usr/local instead of /usr.

well, thats what I was saying, the track data gives a huge freedom in possible uses and should be available both for compo, sequencer, and 3d view…

what I wanted to do is to encourage ppl to take part in the design process instead of making harsh comments about the first commits.

And that thing With AAS wasnt a real flame, rather a joke :wink:

basse, 2d23d and yellow: yes, it’s an outdated ffmpeg, I’m under ubuntu 10.04. Btw I tried the salad build, it works. :slight_smile:
Thanks a lot.

Same here Flame/Smoke etc…

Easy, guys, perhaps I’m wrong and having such feature within 3D View is a great solution. Could you give me an example of how we may benefit from it (excluding all the things that we would be able to do having 2D racking in composite nodes).

the opencl competition isn’t that bad idea! could win prices and make some noise about cycles

roz you can integrate models and meshes which will automatically scale. supose yoi wated to have a dearon fly from behind the camera or from behind that church to st it on fire. it could circle the steple andocclude its self. with 3d points you could build and accurate model of the sceen and create shots and camera angles you dont have. compare mocha to pftracks. in 2d when the point tracked is gone its gone. if it gets occluded it stops. your fire would go out on the steeple if something flew infront of the point you were tracking. in 3d it is more than just the pattern tracked, the 3d point is tracked so even if something occludes it the point is still there, the point would remain even if the camera swung to a point where you couldn’t even see the steepele, if you had a glow effect you would still see the glow from the fire even tho the entire steeple is hidden.

in 3d you can also accuratly place the same thing in mutiple shots from different angles.

while its a longways away i think with 3d it will get dense surface reconstruction. it will be able to track a video and build you a mesh of the set as long as there is enough camera movement. http://www.youtube.com/watch?v=f5TJ7aOD8y4 with that you are no longer limited to the shots you already have, you could create as many shots as you want from any angle. you can make shots that are impossible in real life or very expensive. if you want something removed from you shot you could edit your mesh if a sculpture was in the way. if you wanted a sculpture just add it to your sceene mesh.

Well I still have my doubts, but we’ll see what’s goin’ to happen.

While Sergey continues on adding great new features I did a little tutorial on how to use the current state of the tomato branch:

And the result:

That tutorial is all kinds of awesome thank you. My jaw hit the floor when you stabilised the track preview!

Great tutorial thanks. I would love to see this video stabilization script. So whoever is working on that please post here

i love you

Stabilization Footage

Roto Tracking

Scripts should be released soon, I still have issue with coding operator though :confused:

Fake 3D tracking is also possible. The above test is rather sloppy and should be seen as a proof-of-concept. Things that need more work in this piece:

  • The actual tracking
  • Lighting. Best of course with an HDRI
  • Few minor problems

The 2D tracking feature looks like it will come in very useful for a lot of tasks, one thing I’m thinking about (for the future of course) is motion capture, either for basic facial animation (one camera track), or perhaps if libmv/ blender allows multiple camera track, which would allow for a 3D motion capture.

Well that’s just one of the possibilities, like the above videos show there are many.

One thing that I’m wondering about though is the integration of the tracking, at the moment, and I understand that it’s still in heavy development, it seems like there is no clear way of using the tracking data effectively in a workflow. I use the word clear because it’s feels very disjointed and slightly complicated to get things to match up, especially if one is working on a complex project and needs to integrate a 2D track into a scene.

Now I’m sure things will change quite drastically, but in what (if currently known) direction, will a 2D track still be linked to empties in the 3D view, or will there be an option for the user… send the tracking marker data to a node(s), allow manipulation in a 2D window, such as the movieclip editor itself, or send the data to the 3D view (hopefully via a slightly easier method, aka not having to scale to massive scene sizes for HD video etcetera etcetera)?

As I’m writing this I have had an idea about the workflow, well getting the tracking marker data to an empty in the 3D view at least, would it be possible to have blender create & link for each tracking point an empty in the 3D space? The empties could be generated with one click after a solve has been completed, and if the user wants to delete an empty, or a tracking marker they can simply delete the marker and that would remove the linked empty.

The naming would also be good as it could be automatically named Marker001,002,003, etc so seeing which marker belongs to which empty would be quite easy, even easier if there were some kind of container in the outliner which contained all of the tracking markers inside a tracked data block (could be just a group, but called solve001, 002 etc), that would a user could go in and using the parent in the outliner feature just drag & parent objects in the 3D view to specific markers.

Also, is 3D tracking & solve a target for this Gsoc? If so up to what stage, camera generation, point-cloud generation, automatic camera focal distance?

Sorry for all the questions, and thank you for all of the work so far, it’s bringing me a step closer to once less external application in the pipeline! :slight_smile:

i think everything except the automatic focal length sould be dine within 2 weeks. mathias (the gsc coder on the libmv side) is away this week but will be back next week. kier has already started on the 3d so mathias next week can get that data to display into the viewer and pass it off the sergey who will get it into blender. libmv does come with a calibration grid which you can take a few photos of and run it thru the calibration program to get the focal length. the auto calibration is an eventual goal, but its not their current priority. when you start useing tomato make sure to use revision 37953 or later. a change in that revision will break the .blends of any previous version

sergeys changelog http://dl.dropbox.com/u/20184740/Tomato.html
mathias commits https://github.com/Matthias-Fauconneau/libmv/commits/master
kiers commits https://github.com/keir/libmv/commits/

Daniel: Afaik the tracking data will be handled over to Blender objects (like i.e. empties) via a constraint.