The :document transport: IKdenlive over a project file, with no Kdenlive.
http-kdenlive sends a catalog route to the scripting fork. This adapter
answers the same route ids against a timeline kept on disk as EDN
(hive-kdenlive.mlt.timeline), and after every edit writes the MLT document
melt renders beside it:
edit.hkd.edn the timeline, the source of truth edit.mlt its MLT rendering, rewritten on every change
:render/start renders that document with melt. Media is probed with
melt <file> -consumer xml, the same engine the render uses, so a length
the timeline trusts is a length the render will agree with.
Routes with no meaning off a running application (playback, render jobs) answer :document/unsupported-route, naming the routes that are supported.
The :document transport: IKdenlive over a project file, with no Kdenlive. `http-kdenlive` sends a catalog route to the scripting fork. This adapter answers the same route ids against a timeline kept on disk as EDN (hive-kdenlive.mlt.timeline), and after every edit writes the MLT document melt renders beside it: edit.hkd.edn the timeline, the source of truth edit.mlt its MLT rendering, rewritten on every change :render/start renders that document with melt. Media is probed with `melt <file> -consumer xml`, the same engine the render uses, so a length the timeline trusts is a length the render will agree with. Routes with no meaning off a running application (playback, render jobs) answer :document/unsupported-route, naming the routes that are supported.
(document-kdenlive path)(document-kdenlive path probe)An IKdenlive over the timeline at PATH (created on its first edit). PROBE defaults to melt's.
An IKdenlive over the timeline at PATH (created on its first edit). PROBE defaults to melt's.
(melt-probe)(melt-probe melt-bin)A :probe for the timeline: path -> {:length frames :fps [num den]} |
{:error ...}, read from melt's own description of the file
(melt <file> -consumer xml). :fps is the rate :length is counted at; the
timeline converts it to the project's.
Spawned through render/run-process, so an image melt reads with its Qt
producer probes the same with no display as the render will.
A :probe for the timeline: path -> {:length frames :fps [num den]} |
{:error ...}, read from melt's own description of the file
(`melt <file> -consumer xml`). :fps is the rate :length is counted at; the
timeline converts it to the project's.
Spawned through render/run-process, so an image melt reads with its Qt
producer probes the same with no display as the render will.(mlt-path project-path)The .mlt written beside PROJECT-PATH: edit.hkd.edn -> edit.mlt.
The .mlt written beside PROJECT-PATH: edit.hkd.edn -> edit.mlt.
(producer-length melt-xml)The length property of the first <producer> in melt's XML description of
a file, as a long, or nil.
The `length` property of the first <producer> in melt's XML description of a file, as a long, or nil.
(profile-fps melt-xml)[num den] of the <profile> in melt's XML description, or nil. The length melt reports is counted at THIS rate, which melt picks from the file (a 30 fps video) or defaults (25 fps for audio and images), not the project's.
[num den] of the <profile> in melt's XML description, or nil. The length melt reports is counted at THIS rate, which melt picks from the file (a 30 fps video) or defaults (25 fps for audio and images), not the project's.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |