MLT News

making nice slideshows
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)
version 0.5.6 released
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)
interpolated affine transformation
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)
version 0.5.2 released
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)
version 0.5.0 released
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)
YADIF
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)
MLT v0.4.10 released
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)
MLT v0.4.8 released
This is mainly a maintenance release. Besides bug fixes here are other
notable changes.

modules:
* avformat producer:
- refactored producer to use much less properties
- added support for audio_index=all for linsys_sdi consumer
- added force_fps property (does yet not adjust duration)
* core/crop: added "center" property to crop filter
* linsys_sdi:
- added support for >2 audio channels
- added property meta.map.audio.<N>.channels=<integer>
- added property meta.map.audio.<N>.start=<integer>
* qimage/kdenlivetitle: add typewriter effect
(Tue, 08 Dec 2009 08:00:01 GMT)
VDPAU
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)
v0.4.6 released
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)
Topic revision: r1 - 2009-07-25 - 07:22:15 - DanDennedy
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding MLT Wiki? Send feedback