Re: [Mlt-devel] Limiting consumer avformat output frames
Brought to you by:
ddennedy,
lilo_booter
From: James N. h. <jam...@sc...> - 2014-05-01 20:43:00
|
Thanks for the response Dan, see inline. On 4/30/2014 11:55 AM, Dan Dennedy wrote: > On Wed, Apr 30, 2014 at 10:19 AM, Dan Dennedy <da...@de... > <mailto:da...@de...>> wrote: > > Why not simple math? > 200 - 120 = 80 > qmelt 1.mov out=80 -blank 120 -consumer ... > yields, actually, 202 frames because out points are frame numbers > (or time value), which are are 0-based and not durations. > Therefore, out=80 is a duration of 81 frames. Thus, to really get > 200 frames you need to do: > qmelt 1.mov out=79 -blank 119 -consumer ... > I didn't realize it was 0 based, makes sense though, thanks. Are you also saying that it can take a time value? I didn't know that, what is the format of the time value the out and in properties can take? In the long run we should be able to do the math. Right now we don't have anything which will easily give us the number of frames, or time length, of the video we are using in the construction. I'm basically trying to cheat for demo purposes but limiting the final video size was also going to be a feature. It is looking like that would be difficult only dealing with command line generation from everything you have indicated. > > The framework and modules, by design, do not provide much in the > way of authoring as much as they simply facilitate it. You need to > make your own layer that generates the composition as melt command > lines, MLT XML, or by custom program using the API. > Right now I have a DSL builder in Java which makes creating the complex command lines easy. I know it probably isn't the correct solution for the long run, but so far it has been the quickest to prove out for 90% of what we have to do. > Now, with that said, and with your claim that you just need a simple > way to limit the number of frames in the output, if the consumer > honored an out property or melt let you target the track or tractor > properties, then you could accomplish that. I am just not sure how you > want to determine the length of the video clip vs. the number of blank > frames. For the demo these are hard coded and passed to the builder directly. Ultimately I need the clip's meta information and the immediate need for limiting the output will be gone. I wanted the size of the clips, in the demo, not to matter but it looks like I will need to do the math ahead of time and pass out parameters for each clip. > melt 1.mov -blank 119 -consumer xml:test.mlt no_meta=1 > edit test.mlt so that playlist out=199 > melt test.mlt -consumer avformat:demo.mp4 > > So, the solution may be to generate MLT XML, perhaps with a template > engine, instead of complex melt command lines. You can even put a > consumer element into the XML: > <consumer mlt_service="avformat" target="demo.mp4"/> > Add any other encoding properties as XML attributes. Yes, I think this is essentially where we will end up as soon as we can't exploit the command line directly for a requirement. I would start there, but we probably don't have time to create and test the xml generator before release. Thanks, James |