mlt-xml
v2.0.2
Published
A module to construct Media Lovin' Toolkit (MLT) projects and export them in XML.
Downloads
32
Maintainers
Readme
mlt-xml
This module will construct Media Lovin' Toolkit (MLT) projects and export them in XML.
It has typescript definitions for the ressources used by the framework. You can define your MTL project with A JSON object and export it to XML.
Install
yarn add mlt-xml
or with npm
npm install mlt-xml --save
Example
import { mltToXml } from 'mlt-xml';
console.log(
mltToXml({
title: 'watermarkOnVideo',
elements: [
{
name: 'producer',
attributes: {
id: 'video',
in: '0',
out: '1000',
resource: 'clip.mpeg',
},
},
{
name: 'producer',
attributes: {
id: 'watermark',
in: '0',
out: '1000',
resource: 'watermark.png',
mlt_service: 'qimage',
length: '1000',
},
},
{
name: 'tractor',
attributes: {
id: 'tractor0',
},
elements: [
{
name: 'multitrack',
attributes: {
id: 'multitrack0',
},
elements: [
{
name: 'playlist',
attributes: {
id: 'video_track',
in: '0',
out: '1000',
},
elements: [
{
name: 'entry',
attributes: {
producer: 'video',
in: '0',
out: '1000',
},
},
],
},
{
name: 'playlist',
attributes: {
id: 'watermark_track',
in: '0',
out: '1000',
},
elements: [
{
name: 'entry',
attributes: {
producer: 'watermark',
in: '0',
out: '1000',
},
},
],
},
],
},
{
name: 'transition',
attributes: {
id: 'transition0',
a_track: 0,
b_track: 1,
geometry: '85%/5%:10%x10%',
factory: 'loader',
progressive: 1,
mlt_service: 'composite',
fill: 1,
sliced_composite: 1,
},
},
],
},
],
}),
);
Returns:
<?xml version="1.0" encoding="utf-8"?>
<mlt title="watermarkOnVideo">
<producer id="video" in="0" out="1000">
<property name="resource">clip.mpeg</property>
</producer>
<producer id="watermark" in="0" out="1000">
<property name="resource">watermark.png</property>
<property name="mlt_service">qimage</property>
<property name="length">1000</property>
</producer>
<tractor id="tractor0">
<multitrack id="multitrack0">
<playlist id="video_track" in="0" out="1000">
<entry producer="video" in="0" out="1000"/>
</playlist>
<playlist id="watermark_track" in="0" out="1000">
<entry producer="watermark" in="0" out="1000"/>
</playlist>
</multitrack>
<transition id="transition0">
<property name="a_track">0</property>
<property name="b_track">1</property>
<property name="geometry">85%/5%:10%x10%</property>
<property name="factory">loader</property>
<property name="progressive">1</property>
<property name="mlt_service">composite</property>
<property name="fill">1</property>
<property name="sliced_composite">1</property>
</transition>
</tractor>
</mlt>
Contributing
Contributions, issues and feature requests are welcome!
License
Copyrigth 2022 David Robert-Ansart
This project is MIT licensed.