Hi Dan,
>> I would like to offer a new filter for your consideration. It is called >> "dynamictext". The change is here: >> https://github.com/pez4brian/mlt/commit/beb7046cedc89efc3715878ba490832bbac5570c >> My motivation for the new filter is that, ultimately, I want to fulfill the >> same use case in Kdenlive that I currently fill in Kino using the Titler >> effect with keywords. In Kino, I would use the Titler filter with the text >> #dv.date# to burn the recording date as an overlay on my home movies. In >> Kdenlive, I have to go through each clip and manually add a title to each >> clip and look up the recording date. >> Using the "dynamictext" filter, I use the #filedate# keyword to burn in the >> "modified date" property of the file. This works with the files from my HD > >Why did you not add #filedate# to the data_show filter? Is the >difficulty to integrate with Kdenlive and make formatting adjustable? That's actually where I started. And I proved that it worked. But then, when I went to look at Kdenlive, I found that data_show is blacklisted in "blacklisted_effects.txt". Based on my understanding of Kdenlive, I suspect that it is blacklisted for the following reasons: 1) data_show requires data_show template files (or whatever you call those things src/feeds) to define the filters that will be applied. I suppose it could be workable, but it certainly isn't a friendly programming interface. 2) data_show requires that the data to be overlayed is a property of the video clip, not the filter itself. For example, in melt, to show the timecode, you do melt file.MP4 meta.attr.timecode=1 meta.attr.timecode.markup=#timecode# -attach data_show:something.properties dynamic=1 Notice that the text to be overlayed is added as a property to the video (file.MP4) and not the filter. If you want to apply the filter to more than one file, you have to duplicate the properties on each file: melt file1.MP4 meta.attr.timecode=1 meta.attr.timecode.markup=#timecode# file2.MP4 meta.attr.timecode=1 meta.attr.timecode.markup=#timecode# -filter data_show:something.properties dynamic=1 I can't find a friendly way to add properties to video files that are to be applied to a filter in Kdenlive. And again, not a friendly API. 3) Modifying attributes of the data_show filter requires changing properties on encapsulated filters. For example, to change the font color, you would do: melt file.MP4 meta.attr.timecode=1 meta.attr.timecode.markup=#timecode# -attach data_show:something.properties dynamic=1 filter[1].composite.fgcolor=red Kdenlive is a ways away from having the capability to automatically inspect encapsulated services and expose their functionality (unless I'm missing something). Additionally, I'm not sure if we want it to. Because the data_show filter needs to modify the watermark filter "markup" property (to replace the keywords). But the UI would expose the "markup" property along with all the other watermark service properties if Kdenlive exposed all of the properties of the encapsulated service. We need a filter that will *not* expose the encapsulated filter to the user if the filter properties are to be modified problematically. These points are based on my own analysis and deduction. It is possible that I am completely missing something. I'm certainly open to other ideas. >> camcorder because it doesn't put a date/timecode in the video but it does >> save the file with a modified date of the day it was recorded. However, when >> the day comes that libav supports frame-specific context with timecodes, >> then this filter will work with embedded date/timecodes (like DV has) >> because it can overlay any frame property. > >I am soon adding support for a starting timecode that will be used to >compute a virtual running timecode. However, I also soon will add >proper timecode parsing and serialization to mlt_properties instead of >ad-hoc functions sprinkled throughout the code. Good idea. It makes sense to make an object out of timecodes and have common code to manipulate and calculate them the same way everywhere. Let me know if there is anything I can do to help with that. ~BM > ------------------------------------------------------------------------------ Using storage to extend the benefits of virtualization and iSCSI Virtualization increases hardware utilization and delivers a new level of agility. Learn what those decisions are and how to modernize your storage and backup environments for virtualization. http://www.accelacomm.com/jaw/sfnl/114/51434361/ _______________________________________________ Mlt-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mlt-devel
