Geteilte PGS-Untertitel (.sup-Datei)

Ich würde gerne wissen, ob es eine Methode gibt, einen Untertitel im PGS-Format aufzuteilen, der aus einem Bluray als .sup-Datei gezogen wurde.

Es ist nicht klar, was Ihr Ziel ist. was meinst du mit "untertitel teilen"
Die Sup-Datei, die ich habe, enthält mehrere Episoden. Ich möchte es in mehrere Sup-Dateien aufteilen, von denen jede eine einzelne Episode enthalten würde.

Antworten (1)

Hier ist die Struktur einer .sup-Untertiteldatei und ein Link zu dem von mir erstellten Splitter. Die Informationen stammen entweder aus verlinkten Referenzen oder aus meiner eigenen Recherche.

Der von mir erstellte .sup-Untertitel-Splitter. http://forum.doom9.org/showthread.php?p=1737122

SupRip-Github-Seite mit sup-bezogenem Code. Sie können hier weitere Einzelheiten zu jedem Abschnitt lesen, die ich nicht erörtere. https://github.com/peterdk/SupRip/blob/master/Bluray%20Sup.txt

Die Hexadezimalzahlen 0x50 0x47 sind Überschriften für Abschnitte in der .sup-Datei, es gibt jedoch mehrere Abschnitte pro Untertitelzeile. Es gibt (meiner Erfahrung nach) immer einen mit 0x16, 0x17, 0x14, 0x15 und 0x80 gekennzeichneten Abschnitt für angezeigte Untertitel. Wenn die Bitmap-Daten groß sind, können mehrere 0x15-Abschnitte vorhanden sein. Es gibt auch "leere" Untertitel, die verwendet werden, um einen Untertitel zu beenden, der nur 0x16-, 0x17- und 0x80-Flags hat. Untertitel haben nur eine Startzeit und keine Endzeit oder Dauer, sodass ein Untertitel durch den nächsten Untertitel beendet wird. Wenn also zwei Untertitelzeilen durch einen Zeitraum getrennt sind, wird ein leerer Untertitelabschnitt verwendet, um den ersten Untertitel zu beenden.

Unter Bezugnahme auf die verlinkte Seite sind dies die Flags, die jeder Header haben kann.

TIMES = 0x16
SIZE = 0x17
PALETTE = 0x14
BITMAP = 0x15
END = 0x80

Hoffentlich sollte es helfen, alles mit dem Hex-Code eines vollständigen Untertitels zu erklären. Ich habe jeden der Abschnitte getrennt und die Paletten- und Bitmap-Abschnitte abgeschnitten.

Header-Struktur, immer 13 Bytes lang

50 47        start of header
00 01 E3 E0  time code
00 00 00 00  second time code (normally zero)
16           flag
00 13        data size

Um den Zeitcode in eine verwendbare Form zu bringen, nehmen Sie das Hexadezimal und wandeln es in Dezimalzahlen um, dann multiplizieren Sie es mit 100.000 und dividieren es durch 9, um Nanosekunden zu erhalten.

0001e3e0 -> 123872 *100.000/9 = 137635555 ns = 1,37635555 Sek

start of .sup file
1st subtitle

50 47 00 01 E3 E0 00 00 00 00 16 00 13 07 80 04 38 10 00 02 80 00 00 01 00 00 00 00 05 41 02 6F   Times section of subtitle, gives the start time of the subtitle

50 47 00 01 E3 34 00 00 00 00 17 00 13 02 00 05 41 02 6F 00 81 00 37 01 02 40 03 CB 03 04 00 46   Size section of subtitle

50 47 00 01 CD 04 00 00 00 00 14 01 47 00 00 00 ...       Palette section of subtitle

50 47 00 01 CD 2C 00 00 00 00 15 0C 68 00 00 00 ...      Bitmap section of subtitle

50 47 00 01 CD 2C 00 00 00 00 80 00 00     End section of subtitle, denotes the end of one subtitle

2nd subtitle (actually blank which ends 1st subtitle)

50 47 00 07 E7 80 00 00 00 00 16 00 0B 07 80 04 38 10 00 05 00 00 00 00   Times section of subtitle, gives the start time of the subtitle. Previous subtitle ends when this "subtitle" begins

50 47 00 07 E6 D4 00 00 00 00 17 00 13 02 00 05 41 02 6F 00 81 00 37 01 02 40 03 CB 03 04 00 46   Size section of subtitle

50 47 00 07 E6 D3 00 00 00 00 80 00 00      End section of subtitle, denotes the end of one subtitle
Was ist die "Größe" eines Untertitels? die Breite? Höhe? Schriftgröße? Warum kann ein leerer/leerer Untertitel eine Größe haben?
Wenn Sie sich auf einen Abschnitt mit dem Größenflag 0x17 beziehen. Gemäß der verlinkten Referenz enthält dieser Abschnitt Positions- und Größeninformationen und ist entweder 10 oder 19 Bytes lang. Da pgs subs Bitmap-basiert sind, sollte diese Größe und Position nur dafür gelten, wie groß und wo die Bitmap-Daten auf dem Bildschirm angezeigt werden. Ich weiß nicht, warum ein leerer pgs-Untertitel eine Größe haben kann. Ich weiß nur, dass einige tatsächliche Bluray-Untertitel so formatiert wurden. Die verlinkte Referenz enthält weitere Informationen darüber, welche Art von Daten die Abschnitte enthalten.