For a long while MLT had the capability to easily make a slideshow from a folder of photos. This was demonstrated in demo/mlt_slideshow for years and is the basis of Kdenlive's Slideshow virtual clip. However, these slideshows always fell rather "flat" or dull. Over the past year, I have been working on that, and I think all of the pieces are in place now for something much nicer. Here is an example: http://www.youtube.com/watch?v=JsSutNpBtbA
See the new demo/mlt_slideshow2 to see how easy it was to create that (requires a very recent change to the luma filter that will appear in the next release - v0.5.8): melt \ photos/.all.jpg ttl=75 \ -attach crop center=1 \ -attach affine transition.cycle=225 transition.geometry="0=0,0:100%x100%;74=-100,-100:120%x120%;75=-60,-60:110%x110%;149=0:0:110%x110%;150=0,-60:110%x110%;224=-60,0:110%x110%" \ -filter luma cycle=75 duration=25 \ -track demo/music1.ogg \ -transition mix
That rather complex looking transition.geometry string is just something I whipped together to add some variety to the animated pan and zooms. A front end tool could contain a collection of these strings to let the author choose a style. Also, notice the addition of automatic center cropping to remove black bars and fill the output frame with the photo image regardless its resolution and aspect ratio. (Sat, 21 Aug 2010 09:05:01 GMT)
This is a maintenance release to address some bugs that appeared thus far in the 0.5.x series. Beyond that is a few enhancements:
* Added interpolation to the affine transition and filter. * Added multi-track audio encoding to avformat consumer. * Added interlaced field rendering to kdenlivetitle producer. (Sun, 20 Jun 2010 19:13:38 GMT)
A popular feature request is to have smooth pan and zoom effects especially over photos for slideshows - a.k.a. the Ken Burns effect. This is currently exposed partially or in various ways in the applications using MLT, but it lacks the smoothness due to not supporting sub-pixel positioning and rendering. The last couple of evenings I have been working on adding interpolation and making other little changes to make it smooth for the next release. Here is a sample video - please excuse the red-eye :-/ http://mltframework.org/mlt/panzoom.ogg (Wed, 26 May 2010 21:34:00 GMT)
This is a minor maintenance release, but it is interesting because it now enables usage of libswscale as the default choice for image scaling, image format conversion, and color space conversion. That gives better quality and performance. In addition, there are some improvements in the sdl_preview consumer to make it suitable for use in OpenShot 1.1. (Thu, 11 Mar 2010 06:51:32 GMT)
This is an enhancement release, confined mainly to the modules rather than the framework. In particular, this adds support for VDPAU, YADIF, and HD-SDI technologies!
configure: added --disable-sse2
framework: * mlt_cache: added mlt_cache_set_size() * mlt_filter: added data property "service" - set when attached * mlt_frame: - added Doxygen docs - added "previous frame" and "next frame" data properties - available when its producer has _need_previous_next=1 * mlt_playlist: added support for negative out point same as length-1 * mlt_service: - added mlt_service_cache_purge() - added "_need_previous_next" handling in mlt_service_get_frame() - added firing event "service-changed" in mlt_service_attach()
modules: * avformat producer: - added decoding H.264 with NVIDIA VDPAU Requires FFmpeg built with vdpau. This is automatically detected and enabled. You can disable this by setting environment variable MLT_NO_VDPAU=1 or property novdpau=1. - added caching of FFmpeg contexts and decoded images This allows large numbers of clips in a project avoiding limitations with number of threads and file descriptors permitted per process. You can disable image caching with property noimagecache=1. - added variant of producer named avformat-novalidate - restored support for video4linux(2) * avformat consumer: added apre, fpre, and vpre preset properties * crop filter: added center_bias integer property * deinterlace filter: added the excellent YADIF as a method * kdenlivetitle producer: added text outlining * linsys/sdi consumer: - added support for HD-SDI - changed name from "linsys_sdi" to just "sdi" * oldfilm filter: added "uneven development" effect * xml producer: add support for unspecified out points
profiles: * added several missing ATSC (HD) profiles * change descriptions from using Hz to fps (Tue, 16 Feb 2010 07:00:51 GMT)
Since its inception, MLT has been limping along on linear-blending for deinterlacing, but I just added the world-class YADIF deinterlace filter! It is not a new MLT filter that you need to manually apply; rather, it is integrated with the existing one. It is the new default when you are not playing through SDL (i.e. Kdenlive and OpenShot). SDL defaults to linear interpolation (i.e. onefield), which is faster and will not making seeking on AVCHD suck any more than it already does. Encoding through avformat and SDI outputs default to YADIF (which, of course, gets applied only when required).
This took quite a bit of work because this filter requires the preceding and following frames' images to the current frame being processed, and the framework was not equipped to provide that. Also, there were quite a few pitfalls along the way. (Fri, 05 Feb 2010 05:03:48 GMT)
Yesterday, I introduced a fatal bug shortly before the 0.4.8 release. Actually, a bug fix exposed a different bug. So, this release is a "hot fix" release. (Wed, 09 Dec 2009 04:44:39 GMT)
Last week I added support for VDPAU decoding of H.264. This is working and stable, but it is not yet pushed to the public Git repository. Currently, one can only load about 10-20 AVCHD clips - depending upon video memory. I have to refactor the FFmpeg (avformat) module to take advantage of the new LRU mlt_cache. Previously, this was difficult due to all the numerous properties it was using. Well, just after the 0.4.6 release, I had refactored it to use a mlt_producer child structure. This was done partly to be more efficient and gave me an opportunity to have a thorough re-review of this code before embarking on a major change I promised in exchange for getting the Linsys SDI consumer as open source and a card with which to test it. I know; I am rambling. The point is that it should be fairly easy to now make it use the cache, which means it will also be possible to support hundreds of clips in a project with random access. (Previously, hundreds could only be supported for sequential access by usage of the autoclose=1 property on the playlist object.)
Whew! OK, now for the not-so-great part. I was hoping this could give a good performance boost especially for seeking as that took a major hit in performance in 0.4.6 in exchange for accuracy and quality. Unfortunately, on my MacBook Pro with a Geforce 8600M GT, I am only seeing about a one second improvement in seek performance and this is without disabling the in-loop deblocking filter on the CPU test. I see about 33% improvement in time to simply decode frames as-fast-as-possible and about a 10% reduction in CPU utilization during real-time playback. Why is this? Well for one, MLT uses packed 4:2:2 for its Y'CbCr colorspace and even though the API seems to indicate it can provide this, neither of my 2 systems that can support VDPAU can provide this. Therefore, it must still do a colorspace conversion on the CPU. The overhead of sending the bitstream to the GPU and especially receiving the uncompressed decoded image back into system memory seems to counter-compensate the gains provided by the GPU. I do plan to keep this code and try to integrate the deinterlacer and perhaps some other filters to make it more compelling. However, it means I am going to wait until after today's release to further it and make it available. (Mon, 30 Nov 2009 17:56:27 GMT)
This release is an enhancement release along with numerous build, A/V synch, concurrency, and other bug fixes.
configure: new option --avformat-svn-version
modules: * avformat: much improved seeking on H.264/MPEG2-TS (AVCHD) (Ivan Schreter) * core: new imageconvert and audioconvert filters (framework refactorization) * linsys: new SDI consumer (Broadcast Centre Europe) * qimage: new kdenlivetitle producer (J.B. Mardelle and Marco Gittler) * sdl: new audio_only consumer for OS X
mlt++ and swig: update bindings
framework: * refactored image format conversion mlt_frame.h: - added convert_image() virtual function - added mlt_image_format_name() - removed many mlt_convert_ and scaling/padding functions * refactored audio format conversion mlt_frame.h: - mlt_get_audio() virtual function parameters changed - added convert_audio() virtual function - mlt_frame_get_audio() parameters changed - added mlt_frame_set_audio() - added mlt_audio_format_name() mlt_types.h: - deprecated mlt_audio_pcm - added mlt_audio_s16 - added mlt_audio_s32 - added mlt_audio_float (Wed, 07 Oct 2009 08:03:42 GMT)