Tuesday, November 9, 2010

swfdec plugin added

I just added a swfdec plugin to decode Flash SWF movies. It supports transparent backgrounds so you can composite it over video. Good animation tools are hard to come by, and a lot of people know and like Adobe Flash Builder. If you, a friend, or colleague likes to use Flash Builder or After Effects to design motion graphics, now you can easily use their animations. Also, the Qt-based animation tool Pencil can export to SWF, which you may find more manageable than an image sequence.

Blackmagic Design DeckLink output

I just added a consumer (output plugin) for DeckLink SDI and HDMI cards. Some of their cards have analog connections as well, and I think it works with those too. The way this is integrated, it can be enabled and built by default by your distribution (version after 0.5.10) such that if you get a card, you can just install the driver and library, and  it will be ready to work with MLT. This means you can get an open source SDI playout solution for Linux for less than $300!

Tuesday, September 14, 2010

version 0.5.10 released

This is a quick followup to the 0.5.8 release to address an issue I want to address immediately. I noticed an extra unconditional colorspace conversion to and from RGB was added for all YCbCr (YUV) video sources. In addition, I have enabled the avcolor_space filter on OS X since it works now.

Monday, September 13, 2010

version 0.5.8 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 EXIF-based auto-rotation of images to pixbuf and qimage producers.
  • Improved quality of libswscale-based image conversion and scaling.
  • Added channelswap and panner audio filters; panner also does balance.
  • Improve audio waveform and add audiowave video filter.
  • Enhanced luma filter to work with animated filters such as affine.
  • Automatically crop 8 bottom lines of 1088 source in a 16:9 project (common in Canon EOS digital cameras).
  • Added support for inline images in kdenlivetitler.

Saturday, August 21, 2010

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 video

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.

Sunday, June 20, 2010

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.

Wednesday, May 26, 2010

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 :-/

Thursday, March 11, 2010

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.

Tuesday, February 16, 2010

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

  • 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()
  • 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
  • added several missing ATSC (HD) profiles
  • change descriptions from using Hz to fps

Friday, February 5, 2010


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.