Batch-Verarbeitung führt zusätzliche Arbeitsschritte durch (auch in 2.0)

Begonnen von hurda, November 15, 2015, 10:24:15

« vorheriges - nächstes »

hurda

Quelldatei von http://forum.cypheros.de/index.php?topic=3230.0
Einstellungen: [attach=1] (zusätzlich "Teletext-Stream behalten")
Logs: [attachurl=2]










Datei in TSD (.179 & 2.03b, evtl. auch .171) laden,
"Neue Datei erzeugen" und speichern:
Datei in TSD laden, "Neue Datei erzeugen",
zur Batchliste hinzufügen und starten:
ZitatFirst video PTS is 6600718583 20:22:21.318
Last video PTS  is 6606411983 20:23:24.578

First PCR  is 1980191331900 20:22:20.420
Last PCR  is 1981894857985 20:23:23.513
Duration of video stream is 5678420 00:01:03.094
Strange PCR Jump: 20:23:23.246 [00:01:02.826] -> 20:23:23.513 [00:01:03.094]
                  381021  -> 382112


Video PCR to PTS difference -1049 ms
Patch time base for PID 0835 = -9831180 ms
$07F9: Delay to video stream = -799ms
$0835: Delay to video stream = 9832229ms
$07FA: Delay to video stream = -756ms
ZitatFirst video PTS is 6600718583 20:22:21.318
Last video PTS  is 6606411983 20:23:24.578

First PCR  is 1980191331900 20:22:20.420
Last PCR  is 1981894857985 20:23:23.513
Duration of video stream is 5678420 00:01:03.094
Strange PCR Jump: 20:23:23.246 [00:01:02.826] -> 20:23:23.513 [00:01:03.094]
                  381021  -> 382112
Loading batch cutting list
Cut: 00:00:00.000 - 00:01:03.094

Video PCR to PTS difference -1049 ms
Patch time base for PID 0835 = -9831180 ms
$07F9: Delay to video stream = -799ms
$0835: Delay to video stream = 9832229ms
$07FA: Delay to video stream = -756ms
ZitatFirst teletext header at 23:06:13.467 208 ORFeins Mo 02.11.15 18:54:46
  Last teletext header at  23:07:16.627 466 ORFeins Mo 02.11.15 18:55 49







No cutting






Cut in  at PCR: 00:00:00.000 (20:22:20.420)
Cut out at PCR: 00:01:03.094 (20:23:23.513)
First packet  : 00000002
Last packet   : 0005D535
Using first PCR as start PCR

Starting at packet 00000002 PCR: 00:00:00.000 (-00:00:00.000)
Ending at packet 0005D535 PCR: 00:01:03.094 (20:23:23.513)

File sizes:
            C:\Temp\batch\direkt_fixed.ts 69.890 KB [CRC=E8A1BD1B]
            C:\Temp\batch\direkt_fixed.[777].srt 2 KB
ZitatFirst teletext header at 23:06:13.467 208 ORFeins Mo 02.11.15 18:54:46
  Last teletext header at  23:07:16.627 466 ORFeins Mo 02.11.15 18:55 49
End PCR not found for PID 07D1: 20:23:26.411 [20:23:23.513]
End PCR not found for PID 07F9: 20:23:26.278 [20:23:23.513]
Patching PTS of PES packets for PID 0835 -02:43:51.180
Patching PTS of PES packets for PID 0835 -02:43:51.180
End PCR not found for PID 0835: 20:23:26.278 [20:23:23.513]
End PCR not found for PID 07FA: 20:23:26.278 [20:23:23.513]

Cutting areas (I-Frame aligned)
Cut 1 In : 20:22:22.598 (AUD|SPS|PPS|SEI|I-SLICE|)
Cut 1 Out: 20:23:24.278 (AUD|SPS|PPS|SEI|I-SLICE|)
Cut 1 PCR/PTS/DTS offset: 00:00:00.000




Cut in  at PCR: 00:00:01.280 (20:22:21.700)
Cut out at PCR: 00:01:02.960 (20:23:23.380)
First packet  : 00000646
Last packet   : 0005D43E
Using current PCR as start PCR

Starting at packet 00000646 PCR: 00:00:00.229 (20:22:20.649)
Cutting the end at packet 0005D43F PCR: 00:01:02.819 (20:23:23.468)

File sizes:
            C:\Temp\batch\batch_fixed.ts 68.666 KB [CRC=682957C3]
            C:\Temp\batch\batch_fixed.[777].srt 2 KB
ZitatCutted packets at the beginning: 0
Cutted packets at the end: 1
Discarded packets (not needed): 1666


PID stream sizes
$07D1:      60.594 KB
$07F9:       3.627 KB
$0835:       2.031 KB
$07FA:       3.625 KB
ZitatCutted packets at the beginning: 1601
Cutted packets at the end: 247
Discarded packets (to synch audio/video): 5451
Discarded packets (not needed): 1032

PID stream sizes
$07D1:      59.572 KB
$07F9:       3.491 KB
$0835:       1.982 KB
$07FA:       3.496 KB

Untertitel:
Zitat1
23:46:55,457 --> 23:46:59,137
<font color="yellow">Okay, setzen wir die künftige</font>
<font color="yellow">gramgebeugte Witwe an Nummer eins.</font>
Zitat1
00:00:02,609 --> 00:00:06,289
<font color="yellow">Okay, setzen wir die künftige</font>
<font color="yellow">gramgebeugte Witwe an Nummer eins.</font>




Werden Schnittmarken gesetzt, gibt es auch Unterschiede:
ZitatFirst video PTS is 6600718583 20:22:21.318
Last video PTS  is 6606411983 20:23:24.578

First PCR  is 1980191331900 20:22:20.420
Last PCR  is 1981894857985 20:23:23.513
Duration of video stream is 5678420 00:01:03.094
Strange PCR Jump: 20:23:23.246 [00:01:02.826] -> 20:23:23.513 [00:01:03.094]
                  381021  -> 382112


Video PCR to PTS difference -1049 ms
Patch time base for PID 0835 = -9831180 ms
$07F9: Delay to video stream = -799ms
$0835: Delay to video stream = 9832229ms
$07FA: Delay to video stream = -756ms
ZitatFirst video PTS is 6600718583 20:22:21.318
Last video PTS  is 6606411983 20:23:24.578

First PCR  is 1980191331900 20:22:20.420
Last PCR  is 1981894857985 20:23:23.513
Duration of video stream is 5678420 00:01:03.094
Strange PCR Jump: 20:23:23.246 [00:01:02.826] -> 20:23:23.513 [00:01:03.094]
                  381021  -> 382112
Loading batch cutting list
Cut: 00:00:02.400 - 00:01:01.140

Video PCR to PTS difference -1049 ms
Patch time base for PID 0835 = -9831180 ms
$07F9: Delay to video stream = -799ms
$0835: Delay to video stream = 9832229ms
$07FA: Delay to video stream = -756ms
ZitatFirst teletext header at 23:06:13.467 208 ORFeins Mo 02.11.15 18:54:46
  Last teletext header at  23:07:16.627 466 ORFeins Mo 02.11.15 18:55 49
End PCR not found for PID 07D1: 20:23:24.458 [20:23:23.513]
End PCR not found for PID 07F9: 20:23:24.458 [20:23:23.513]
Patching PTS of PES packets for PID 0835 -02:43:51.180
Patching PTS of PES packets for PID 0835 -02:43:51.180
End PCR not found for PID 0835: 20:23:24.458 [20:23:23.513]
End PCR not found for PID 07FA: 20:23:24.458 [20:23:23.513]

Cutting areas (I-Frame aligned)
Cut 1 In : 20:22:23.718 (AUD|SPS|PPS|SEI|I-SLICE|)
Cut 1 Out: 20:23:22.458 (AUD|SPS|PPS|SEI|I-SLICE|)
Cut 1 PCR/PTS/DTS offset: 00:00:00.000



Cut in  at PCR: 00:00:02.400 (20:22:22.820)
Cut out at PCR: 00:01:01.140 (20:23:21.560)
First packet  : 00001C8B
Last packet   : 0005C417
Using current PCR as start PCR

Starting at packet 00001C8B PCR: 00:00:01.332 (20:22:21.752)
Cutting the end at packet 0005C418 PCR: 00:01:00.791 (20:23:22.543)

File sizes:
            C:\Temp\batch\direkt schnitt_fixed.ts 65.517 KB [CRC=AC820396]
            C:\Temp\batch\direkt schnitt_fixed.[777].srt 2 KB
ZitatFirst teletext header at 23:06:13.467 208 ORFeins Mo 02.11.15 18:54:46
  Last teletext header at  23:07:16.627 466 ORFeins Mo 02.11.15 18:55 49
End PCR not found for PID 07D1: 20:23:24.458 [20:23:23.513]
End PCR not found for PID 07F9: 20:23:24.458 [20:23:23.513]
Patching PTS of PES packets for PID 0835 -02:43:51.180
Patching PTS of PES packets for PID 0835 -02:43:51.180
End PCR not found for PID 0835: 20:23:24.458 [20:23:23.513]
End PCR not found for PID 07FA: 20:23:24.458 [20:23:23.513]

Cutting areas (I-Frame aligned)
Cut 1 In : 20:22:23.718 (AUD|SPS|PPS|SEI|I-SLICE|)
Cut 1 Out: 20:23:22.458 (AUD|SPS|PPS|SEI|I-SLICE|)
Cut 1 PCR/PTS/DTS offset: 00:00:00.000



Cut in  at PCR: 00:00:02.400 (20:22:22.820)
Cut out at PCR: 00:01:01.140 (20:23:21.560)
First packet  : 00001C8B
Last packet   : 0005C417
Using current PCR as start PCR

Starting at packet 00001C8B PCR: 00:00:01.332 (20:22:21.752)
Cutting the end at packet 0005C418 PCR: 00:01:00.791 (20:23:22.543)

File sizes:
            C:\Temp\batch\batch schnitt_fixed.ts 65.625 KB [CRC=94871D72]
            C:\Temp\batch\batch schnitt_fixed.[777].srt 2 KB
ZitatCutted packets at the beginning: 7268
Cutted packets at the end: 4382
Discarded packets (to synch audio/video): 12189
Discarded packets (not needed): 1641

PID stream sizes
$07D1:      56.874 KB
$07F9:       3.371 KB
$0835:       1.888 KB
$07FA:       3.371 KB
ZitatCutted packets at the beginning: 7284
Cutted packets at the end: 4382
Discarded packets (to synch audio/video): 12209
Discarded packets (not needed): 1017

PID stream sizes
$07D1:      56.874 KB
$07F9:       3.371 KB
$0835:       1.888 KB
$07FA:       3.371 KB

Wenn man die Untertitel und die automatisch gesetzten Schnitte vom ersten Vergleich als Maßstab nimmt, dann dürfte die Batchverarbeitung des richtige Ergebnis liefern, und die direkte Speicherung einige Arbeitsschritte auslassen.

Warum allerdings beim Beispiel mit den vom User gesetzten Schnittmarken die Batch-Datei größer ist als die direkt gespeicherte Datei, ist mir schleierhaft.

hurda

Beim Schnitt eines Films ist der Unterschied noch gravierender.
Schnittmarken, welche Streams übernommen werden, Einstellungen, alles gleich.

Direkt gespeichert:Batch:
ZitatFile sizes:
            C:\temp\film_normal.ts 3.664.841 KB [CRC=E7646A02]

[...]

Cutted packets at the beginning: 99259
Cutted packets at the end: 4935504
Discarded packets (to synch audio/video): 5154
Discarded packets (not needed): 114812

PID stream sizes
$0961:   3.003.081 KB
$0989:     258.214 KB
$09C5:     144.600 KB
$098A:     258.214 KB
ZitatFile sizes:
            C:\temp\film_batch.ts 3.673.105 KB [CRC=02889D2C]

[...]

Cutted packets at the beginning: 99545
Cutted packets at the end: 4935504
Discarded packets (to synch audio/video): 5175
Discarded packets (not needed): 69499

PID stream sizes
$0961:   3.003.081 KB
$0989:     258.214 KB
$09C5:     144.600 KB
$098A:     258.214 KB

Unterschied: 8MiB.  ???

EDIT:
Öffne ich die beiden bearbeiteten Dateien in Mediainfo, wird der Videostream der Batch-Datei als geringfügig größer angezeigt, ca. 1%.

Demuxe ich die beiden Dateien mit tsMuxer 2.6.12 oder TSD, sind die Audio- als auch die Videostreams jedoch identisch.  ???

Cypheros

Ja, die Batch-Verarbeitung speichert die Schnittpunkte. Wenn keine Schnittpunkte gesetzt wurden, wird der Start und das Ende verwendet.
Schnittpunkte werden auf I-Frame bzw. P-Frame gelegt, so wie es auch der tsMuxeR macht.

hurda

Zitat von: Cypheros am November 26, 2015, 22:35:36
Ja, die Batch-Verarbeitung speichert die Schnittpunkte. Wenn keine Schnittpunkte gesetzt wurden, wird der Start und das Ende verwendet.
Eben nicht!
Vergleich die Werte z.B. beim ersten Log bei "Starting at packet" und darunter.

Der gleiche Vorgang, aber unterschiedliche Ergebnisse bei Batch und beim Direktspeichern!
Dasselbe dann beim zweiten Log mit den vom Nutzer gesetzten Schnittmarken.

hurda

TL;DR
Bei meinen Beispielen haben die Batchverarbeitung und die direkt gespeicherte Datei die _gleichen_ Schnittpunkte (oder eben keine), die _gleichen_ Einstellungen und die _gleichen_ Streams übernommen.

Jedoch kommen bei den beiden Speicherarten verschiedene TS-Dateien raus.

Cypheros

Zitat
ZitatJa, die Batch-Verarbeitung speichert die Schnittpunkte. Wenn keine Schnittpunkte gesetzt wurden, wird der Start und das Ende verwendet.
Eben nicht!


Eben doch:

No cutting  ->   
Cutting areas (I-Frame aligned)
                 Cut 1 In : 20:22:22.598 (AUD|SPS|PPS|SEI|I-SLICE|)
                 Cut 1 Out: 20:23:24.278 (AUD|SPS|PPS|SEI|I-SLICE|)
                 Cut 1 PCR/PTS/DTS offset: 00:00:00.000




Djfe

Das Problem hier ist, dass der TSD beim Speichern der Batchliste Schnittpunkte in die Datei speichert, aber diese von denen vom Anfang und Ende abweichen, die der TSD setzt, wenn er ohne Schnitt speichert
mit eben nicht, meinte er, dass der TSD das in der Batchverarbeitung nicht macht:
(bei normalen Dateien funktioniert es -> steht ja in deinem Zitat)

aber vergleiche die mal mit denen aus der batchliste ;)
Loading batch cutting list
Cut: 00:00:00.000 - 00:01:03.094
[...]

Cutting areas (I-Frame aligned)
Cut 1 In : 20:22:22.598 (AUD|SPS|PPS|SEI|I-SLICE|)
Cut 1 Out: 20:23:24.278 (AUD|SPS|PPS|SEI|I-SLICE|)
Cut 1 PCR/PTS/DTS offset: 00:00:00.000



außerdem bin ich verblüfft, von wo du zitiert hast?
ich lese da:
No cutting






Cut in  at PCR: 00:00:00.000 (20:22:20.420)
Cut out at PCR: 00:01:03.094 (20:23:23.513)

20:22:20.420 ist ja wohl != 20:22:22:598

das ist 2 Sekunden vorher

(selbiges für das Ende)

hurda

Zitat von: Cypheros am November 28, 2015, 20:38:25
Zitat
ZitatJa, die Batch-Verarbeitung speichert die Schnittpunkte. Wenn keine Schnittpunkte gesetzt wurden, wird der Start und das Ende verwendet.
Eben nicht!


Eben doch:

No cutting  ->   
Cutting areas (I-Frame aligned)
                 Cut 1 In : 20:22:22.598 (AUD|SPS|PPS|SEI|I-SLICE|)
                 Cut 1 Out: 20:23:24.278 (AUD|SPS|PPS|SEI|I-SLICE|)
                 Cut 1 PCR/PTS/DTS offset: 00:00:00.000




Und warum wird beim direkten Speichern nicht in dieser Art geschnitten, obwohl in den Einstellungen die Flags für "nur bei I-Frames schneiden" gesetzt sind?

Ähnliches bei den Untertiteln: Beim direkten Speichern findet bei dieser Quelldatei keine Anpassung der Timecodes bzgl. des TS-Files statt, bei der Batchverarbeitung schon.

Sollte die Batchverarbeitung nicht die exakt gleichen Arbeitsschritte in der exakt gleichen Art durchführen wie das direkte Speichern, und umgekehrt?

hurda

Ist die unterschiedliche Behandlung und Endergebnis von identischen Einstellungen und Bearbeitungsvorgängen durch Batch- und Direktspeichern nun ein Bug oder so gewolltes und lediglich nicht dokumentiertes Verhalten?

Cypheros

Ist ein Verhalten, dass bisher niemanden gestört hat. Die meisten Anwender schneiden die Aufnahmen, da tritt kein Unterschied auf. Lediglich bei nicht geschnittenen Aufnahmen kürzt der TS-Doctor die Aufnahme am Anfang auf das erste I-Frame.
Korrekt ist, dass das inkonsistent ist. Danke für den Hinweis. Sehe da aber keinen wirklichen Handlungsbedarf momentan, es sei denn es gibt dafür Anwendungsfälle wo das wichtig ist.

hurda

Zitat von: Cypheros am Dezember 06, 2015, 22:41:29
Ist ein Verhalten, dass bisher niemanden gestört hat. Die meisten Anwender schneiden die Aufnahmen, da tritt kein Unterschied auf.
Woher kommt dann der Größenunterschied beim Schnittbeispiel? 65.517 KB direkt vs. 65.625 KB batch
Ich kann dir sagen woher: Beim Batch-Speichern fügt TSD zahlreiche PAT-Payloads rein. Beim Direktspeichern passiert das nicht. Wieso?
[attach=1]

Zitat von: Cypheros am Dezember 06, 2015, 22:41:29Lediglich bei nicht geschnittenen Aufnahmen kürzt der TS-Doctor die Aufnahme am Anfang auf das erste I-Frame.
Die TSD-Logs im OP widersprechen dir da.
Nur beim Batch-Speichern passiert die Ausrichtung auf die nächsten I-Frames, nicht beim Direkt-Speichern. Wieso?

Zitat von: Cypheros am Dezember 06, 2015, 22:41:29
Korrekt ist, dass das inkonsistent ist. Danke für den Hinweis. Sehe da aber keinen wirklichen Handlungsbedarf momentan, es sei denn es gibt dafür Anwendungsfälle wo das wichtig ist.
Ein Hinweis würde schon helfen.
Aber ja, dringender Handlungsbedarf besteht keiner, immerhin werden so keine kaputten Dateien produziert.

Cypheros

Die PATs und PMTs sind wichtige Systemtabellen und werden regelmäßig eingefügt. Möglicherweise nicht zwingend an den gleichen Stellen.

Werde da mal beizeiten schauen, was ich da machen kann obwohl ich aus langjähriger Erfahrung weiss, dass bei Änderungen bestimmt wieder welche Aufschreien, dass ein anderes Verhalten unakzeptabel ist, waum auch immer.


www.cypheros.de