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

Reply via email to