Đáng tiếc kdenlive không cung cấp cách thêm chương vào tệp MKV, chỉ vào DVD.
Làm thế nào tôi có thể thêm các chương?
Đáng tiếc kdenlive không cung cấp cách thêm chương vào tệp MKV, chỉ vào DVD.
Làm thế nào tôi có thể thêm các chương?
Câu trả lời:
Vào năm 2012, ^ tân binh đã đăng một giải pháp cho vấn đề này bằng cách sử dụng lược đồ kdenlive lỗi thời. Thật không may đăng ký bị vô hiệu hóa trên diễn đàn của anh ấy, hoặc tôi sẽ đăng nó ở đó.
Tôi đã cập nhật tệp, bây giờ bạn có thể áp dụng XSLT này cho bất kỳ .kdenlive
tệp nào và lấy lại các chương có thể sử dụng được. Tất cả bạn cần là xsltproc
và mkvmerge
(một phần của mkvtoolnix).
Thêm các điểm đánh dấu trong kdenlive và lưu nó trước.
<?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