mlt-xml
TypeScript icon, indicating that this package has built-in type declarations

2.0.2 • Public • Published

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.

Dependencies (0)

    Dev Dependencies (15)

    Package Sidebar

    Install

    npm i mlt-xml

    Weekly Downloads

    1

    Version

    2.0.2

    License

    MIT

    Unpacked Size

    35.4 kB

    Total Files

    6

    Last publish

    Collaborators

    • david_robertansart