<br><br><div class="gmail_quote">On Sat, Apr 5, 2008 at 9:05 PM, Dan Dennedy <<a href="mailto:dan@dennedy.org">dan@dennedy.org</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I already replied previously to the other interested party or the list<br>
here about the slowmotion producer. I tried it, and I can not get it<br>
to work good. It ends up distorting the image very badly.</blockquote><div><br>Yup, producer slowmotion is definitely not production code. Here are some of the reasons:<br><br>1. Motion (as calculated by filer motion_est) is assumed to be in the plane of the frame and not perpendicular to it. This is a false assumption.<br>
2. The motion code does not account for rotation within the frame of the plane. This problem is easier to solve than #1 but is still difficult.<br>3. The code has trouble accounting for things moving in front of other things.<br>
<br>In other words it's crazy and insanely difficult to interpolate between two frames without severe artifacts. Here are notes and a long list of deficiencies from the motion_est code:<br><br><a href="http://mlt.svn.sourceforge.net/viewvc/mlt/trunk/mlt/src/modules/motion_est/README?revision=855&view=markup">http://mlt.svn.sourceforge.net/viewvc/mlt/trunk/mlt/src/modules/motion_est/README?revision=855&view=markup</a><br>
<br>For now, the motion_est related code is useful in a small number of circumstances:<br><br>1. Detecting scene changes (applying filer_motion_est will have the side effect of flagging frames that are part of a new scene)<br>
2. Detecting crops (filer_crop_detect, this is a good candidate to move to core modules)<br>3. Tracking objects to obscure them (like faces)<br>4. Trippy effects<br><br>I hope this clears things up.<br><br>Zach <br><br><br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<div><div></div><div class="Wj3C7c"><br>
On Sat, Apr 5, 2008 at 2:10 PM, Mads Bondo Dydensborg<br>
<<a href="mailto:mads@dydensborg.dk">mads@dydensborg.dk</a>> wrote:<br>
> mandag 24 Marts 2008 skrev Dan Dennedy:<br>
><br>
> > On Sun, Mar 23, 2008 at 3:26 PM, Mads Bondo Dydensborg<br>
><br>
> > > I have some footage taken with a helmet cam in 640x480 @30 fps (4/3),<br>
> that I<br>
> > > would like to use in a PAL DV 16/9 project.<br>
> > ><br>
> > > What is the best way to get the highest quality of the headcam footage in<br>
> > > kdenlive? Should I transcode it using some external program, or just add<br>
> it<br>
> > > as a clip to kdenlive?<br>
> ><br>
> > The simplest is to just add it as a clip. MLT does framerate<br>
> > decimation and image resampling automatically. However, to get more<br>
> > quality, you need high quality temporal interpolation. Zachard Drew<br>
> > wrote the motion estimation module[1] in MLT that can use in an inigo<br>
> > job to transcode it prior to use in kdenlive. However, I do not have<br>
> > any experience using motion estimation for this. After making sure to<br>
> > build the module (it is opt-in), try this as a hint to get started:<br>
> ><br>
> > $ inigo -profile dv_pal_wide slowmotion:some-ntsc.avi speed=0.8342<br>
> > -consumer avformat:my.dv ...<br>
><br>
> Hi Dan<br>
><br>
> I had quite some trouble getting this to work:<br>
><br>
> $ /opt/bin/inigo -profile dv_pal_wide -producer slowmotion:avi_0019.avi<br>
> speed=0.8342 -consumer avformat:0019.dv progress=1<br>
><br>
> Turns out, the command line parsing in inigo can be tricked to loop (some more<br>
> info below).<br>
><br>
> This command works (I have still to experiment further):<br>
><br>
> $ /opt/bin/inigo -profile dv_pal_wide -consumer avformat:0019.dv progress=1<br>
> slowmotion:avi_0019.avi speed=0.8342<br>
><br>
> The "-producer" is from me misreading the cli syntax of inigo. My bad. But<br>
> still, I suspect there is a loop in inigo command line parsing. A quick look<br>
> with gdb seems to indicate a never ending loop in scanning the command line<br>
> arguments of the first try:<br>
><br>
> Program received signal SIGINT, Interrupt.<br>
> [Switching to Thread -1210513216 (LWP 31948)]<br>
> 0xb6d02b13 in producer_inigo_init (profile=0x8091608, type=producer_type,<br>
> id=0x804b8c7 "inigo", argv=0xbf9ffef8)<br>
> at producer_inigo.c:157<br>
> 157 else if ( !strcmp( argv[ i ], "-attach" ) ||<br>
> (gdb) bt<br>
> #0 0xb6d02b13 in producer_inigo_init (profile=0x8091608, type=producer_type,<br>
> id=0x804b8c7 "inigo",<br>
> argv=0xbf9ffef8) at producer_inigo.c:157<br>
> #1 0xb7f591c2 in mlt_repository_create (this=0x8050e28, profile=0x8091608,<br>
> type=producer_type,<br>
> service=0x804b8c7 "inigo", input=0xbf9ffef8) at mlt_repository.c:171<br>
> #2 0xb7f5884c in mlt_factory_producer (profile=0x8091608,<br>
> service=0x804b8c7 "inigo", input=0xbf9ffef8)<br>
> at mlt_factory.c:179<br>
><br>
> (gdb)<br>
> 145 for ( i = 0; argv[ i ] != NULL; i ++ )<br>
> (gdb) p i<br>
> $6 = 1<br>
> (gdb) p argv[i]<br>
> $7 = 0xbfa006a5 "dv_pal_wide"<br>
> (gdb) n<br>
> 147 if ( !strcmp( argv[ i ], "-group" ) )<br>
> (gdb) p i<br>
> $8 = 2<br>
> (gdb) p argv[i]<br>
> $9 = 0xbfa006b1 "-producer"<br>
> (gdb) n<br>
> 157 else if ( !strcmp( argv[ i ], "-attach" ) ||<br>
> (gdb) n<br>
> 202 else if ( !strcmp( argv[ i ], "-repeat" ) )<br>
><br>
> This continues, and never matches anything. At some point it hits a i--; - and<br>
> loops. For ever AFAICT :-/<br>
><br>
><br>
> > It's just that 0.8342 is an approximation, and I do not know how good<br>
> > the results will be.<br>
><br>
> How did you get the 0.8342?<br>
><br>
> 25/30<br>
> .83333333333333333333<br>
> 25000/29999<br>
> .83336111203706790226<br>
><br>
><br>
><br>
> > Sharing your experience would be valuable.<br>
><br>
> My first experience is this: I loose the sound, right?<br>
><br>
><br>
> > There<br>
> > is a trick to get kdenlive to do this for you without transcoding. You<br>
> > can convert the above into a westley-based "virtual" clip and load the<br>
> > .westley into kdenlive:<br>
> ><br>
> > $ inigo -profile dv_pal_wide slowmotion:some-ntsc.avi speed=0.8342<br>
> > -consumer westley:some-ntsc.westley<br>
><br>
> Thanks - I have yet to test it out.<br>
><br>
> Now, that it actually works for me, I will test with some more clips, and see<br>
> if I can figure out anything about the quality of the result, and so on.<br>
><br>
> Regards<br>
><br>
> Mads<br>
><br>
> --<br>
> Mads Bondo Dydensborg <a href="mailto:mads@dydensborg.dk">mads@dydensborg.dk</a> <a href="http://www.madsdydensborg.dk/" target="_blank">http://www.madsdydensborg.dk/</a><br>
><br>
> Today, the record companies are saying MP3s are the biggest evil. Tomorrow<br>
> they're going to say they're the greatest thing when they figure<br>
> them out.<br>
> - Gene Kan, Gnutella developer<br>
><br>
<br>
-------------------------------------------------------------------------<br>
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference<br>
Register now and save $200. Hurry, offer ends at 11:59 p.m.,<br>
Monday, April 7! Use priority code J8TLD2.<br>
<a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target="_blank">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a><br>
_______________________________________________<br>
Kdenlive-devel mailing list<br>
<a href="mailto:Kdenlive-devel@lists.sourceforge.net">Kdenlive-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/kdenlive-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/kdenlive-devel</a><br>
</div></div></blockquote></div><br>