Niestety kdenlive nie zapewnia sposobu dodawania rozdziałów do pliku MKV, tylko do DVD.
Jak mogę dodawać rozdziały?
W 2012 roku ^ rooker opublikował rozwiązanie tego problemu, który wykorzystuje nieaktualny schemat Kdenlive. Niestety rejestracja jest wyłączona na jego forum, inaczej bym go tam opublikował.
Zaktualizowałem plik, teraz możesz zastosować ten XSLT do dowolnego .kdenlive
pliku i odzyskać użyteczne rozdziały. Wszystko czego potrzebujesz to xsltproc
i mkvmerge
(część mkvtoolnix).
Dodaj znaczniki w kdenlive i zapisz je jako pierwsze.
<?xml version="1.0"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Chapters>
<EditionEntry>
<xsl:for-each select="mlt/playlist/property[contains(@name, 'marker')]">
<xsl:variable name="step1" select="translate(@name, 'kdenlive:marker', '')"/>
<xsl:variable name="time" select="substring($step1, 3, string-length($step1) - 3)"/>
<xsl:variable name="seconds" select="$time mod 60" />
<xsl:variable name="minutes" select="floor($time div 60) mod 60" />
<xsl:variable name="hours" select="floor(($time div 60) div 60)" />
<!-- hh:mm:ss.msec -->
<xsl:variable name="timecode">
<xsl:value-of select="format-number($hours, '00')"/>:<xsl:value-of select="format-number($minutes, '00')"/>:<xsl:value-of select="format-number($seconds, '00.000')"/>
</xsl:variable>
<ChapterAtom>
<ChapterDisplay>
<ChapterString>
<xsl:value-of select="text()"/>
</ChapterString>
</ChapterDisplay>
<ChapterFlagHidden>0</ChapterFlagHidden>
<ChapterFlagEnabled>1</ChapterFlagEnabled>
<ChapterTimeStart>
<xsl:value-of select="$timecode"/>
</ChapterTimeStart>
</ChapterAtom>
</xsl:for-each>
</EditionEntry>
</Chapters>
</xsl:template>
</xsl:stylesheet>
xsltproc 4subs.xslt 4subs.kdenlive > chaps
mkvmerge --chapters chaps -o cm2.mkv cm.mkv