Introduction
The Text: Simple filter in Shotcut lets you overlay dynamic text onto your video. This text can be customized using keywords that are replaced with specific information about the clip or system.
Keywords
- Keywords are enclosed in hash symbols (
#). For example,#timecode#represents the frame’s timecode. - Supported keywords:
#timecode#or#smpte_df#: SMPTE drop-frame timecode of the frame.#smpte_ndf#: SMPTE non-drop-frame timecode of the frame.#frame#: Frame number of the frame.#filedate#: Modification date of the file (GMT).#localfiledate#: Modification date of the file (adjusted for local time zone).#localtime#: Current system date and time.#resource#: Full file name with path of the source file.#filename#: File name without the path.#basename#: File name without the extension.#createdate#: Creation date of the source file. Set in the playlist clip, otherwise defaults to file modification date.#meta.<field>#: Accesses metadata properties for file based clips.
Formatting Time-based Keywords
- Time-based keywords (
#createdate#,#filedate#,#localfiledate#, and#localtime#) can be formatted using thestrftimefunction. - Add the desired
strftimeformat string after the keyword, separated by a non-#delimiter.#localtime %I:%M:%S %p#displays the time in 12-hour format with AM/PM.- Refer to the
strftimedocumentation for format specifiers.
Using Metadata Properties
- Use
#meta.<field>#to include properties from the “Properties > Metadata” section. - Example
#meta.media.0.codec.frame_rate# fps- displays the frame rate followed by “fps”
The best way to see what metadata properties are available for a clip is to open the project file (.mlt) in a text editor and look for the section that applies to that clip. Here is an example section:
<chain id="chain0" out="00:10:34.520">
<property name="length">00:10:34.560</property>
<property name="eof">pause</property>
<property name="resource">bbb_sunflower_1080p_60fps_normal.mp4</property>
<property name="mlt_service">avformat-novalidate</property>
<property name="meta.media.nb_streams">3</property>
<property name="meta.media.0.stream.type">video</property>
<property name="meta.media.0.stream.frame_rate">60</property>
<property name="meta.media.0.stream.sample_aspect_ratio">0</property>
<property name="meta.media.0.codec.width">1920</property>
<property name="meta.media.0.codec.height">1080</property>
<property name="meta.media.0.codec.rotate">0</property>
<property name="meta.media.0.codec.pix_fmt">yuv420p</property>
<property name="meta.media.0.codec.sample_aspect_ratio">1</property>
<property name="meta.media.0.codec.colorspace">709</property>
<property name="meta.media.0.codec.name">h264</property>
<property name="meta.media.0.codec.long_name">H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10</property>
<property name="meta.media.0.codec.bit_rate">4001453</property>
<property name="meta.attr.0.stream.creation_time.markup">2013-12-16T17:59:32.000000Z</property>
<property name="meta.attr.0.stream.handler_name.markup">GPAC ISO Video Handler</property>
<property name="meta.attr.0.stream.vendor_id.markup">[0][0][0][0]</property>
<property name="meta.media.1.stream.type">audio</property>
<property name="meta.media.1.codec.sample_fmt">fltp</property>
<property name="meta.media.1.codec.sample_rate">48000</property>
<property name="meta.media.1.codec.channels">2</property>
<property name="meta.media.1.codec.name">mp3float</property>
<property name="meta.media.1.codec.long_name">MP3 (MPEG audio layer 3)</property>
<property name="meta.media.1.codec.bit_rate">160000</property>
<property name="meta.attr.1.stream.creation_time.markup">2013-12-16T17:59:37.000000Z</property>
<property name="meta.attr.1.stream.handler_name.markup">GPAC ISO Audio Handler</property>
<property name="meta.attr.1.stream.vendor_id.markup">[0][0][0][0]</property>
<property name="meta.media.2.stream.type">audio</property>
<property name="meta.media.2.codec.sample_fmt">fltp</property>
<property name="meta.media.2.codec.sample_rate">48000</property>
<property name="meta.media.2.codec.channels">6</property>
<property name="meta.media.2.codec.name">ac3</property>
<property name="meta.media.2.codec.long_name">ATSC A/52A (AC-3)</property>
<property name="meta.media.2.codec.bit_rate">320000</property>
<property name="meta.attr.2.stream.creation_time.markup">2013-12-16T17:59:37.000000Z</property>
<property name="meta.attr.2.stream.handler_name.markup">GPAC ISO Audio Handler</property>
<property name="meta.attr.2.stream.vendor_id.markup">[0][0][0][0]</property>
<property name="meta.attr.major_brand.markup">isom</property>
<property name="meta.attr.minor_version.markup">1</property>
<property name="meta.attr.compatible_brands.markup">isomavc1</property>
<property name="meta.attr.creation_time.markup">2013-12-16T17:59:32.000000Z</property>
<property name="meta.attr.title.markup">Big Buck Bunny, Sunflower version</property>
<property name="meta.attr.artist.markup">Blender Foundation 2008, Janus Bager Kristensen 2013</property>
<property name="meta.attr.comment.markup">Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net</property>
<property name="meta.attr.genre.markup">Animation</property>
<property name="meta.attr.composer.markup">Sacha Goedegebure</property>
<property name="seekable">1</property>
<property name="meta.media.sample_aspect_num">1</property>
<property name="meta.media.sample_aspect_den">1</property>
<property name="audio_index">1</property>
<property name="video_index">0</property>
<property name="creation_time">2013-12-16T17:59:32</property>
<property name="vstream">0</property>
<property name="meta.media.frame_rate_num">60</property>
<property name="meta.media.frame_rate_den">1</property>
<property name="meta.media.colorspace">709</property>
<property name="meta.media.color_trc">2</property>
<property name="meta.media.has_b_frames">2</property>
<property name="meta.media.width">1920</property>
<property name="meta.media.height">1080</property>
<property name="meta.media.aspect_ratio">1</property>
<property name="meta.media.color_range">mpeg</property>
<property name="astream">0</property>
<property name="shotcut:skipConvert">0</property>
<property name="meta.media.top_field_first">0</property>
<property name="meta.media.progressive">1</property>
<property name="shotcut:hash">dfeba4ae1d00efbf318db03ed65c237c</property>
<property name="ignore_points">0</property>
<property name="shotcut:caption">bbb_sunflower_1080p_60fps_normal.mp4</property>
<property name="xml">was here</property>
</chain>
This clip has a property called “meta.attr.composer.markup”. So, if we put “#meta.attr.composer.markup#” in the text filter, it displays “Sacha Goedegebure”.
Additional Notes
Escape a literal # character with \#.