如何从kdenlive添加章节到MKV文件?


Answers:


0

2012年,^ rooker 发布了一个使用过时的kdenlive架构的问题的解决方案。不幸的是,在他的论坛上禁用了注册,或者我会在那里发布。

我更新了文件,现在您可以将此XSLT应用于任何.kdenlive文件并返回可用的章节。你需要的只是xsltprocmkvmerge(mkvtoolnix的一部分)。

在kdenlive中添加标记并首先保存。

我更新的XSLT

<?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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.