Habs mal getestet, die Datei /etc/vdr/plugins/burn/ProjectX.ini kannst entweder von Windows nehmen, oder ne leere Datei dorthin kopieren, funkt beides.
Dort kannst du halt eigene ProjectX Parameter definieren.
Habs mal getestet, die Datei /etc/vdr/plugins/burn/ProjectX.ini kannst entweder von Windows nehmen, oder ne leere Datei dorthin kopieren, funkt beides.
Dort kannst du halt eigene ProjectX Parameter definieren.
ich grabe mal diesen uralten thread aus - weil da das script anhängt.
mit vdr 1.6 und noad (0.6) hat das bei mir immer perfekt funktioniert.
nun mit vdr 1.7.12 und noad 0.7 habe ich probleme aber ich finde nicht heruas wo die zu suchen sind - bei dem script oder bei noad :-/
aber mal von vorne:
noad macht ja nun keine marks mehr sondern eine marks.vdr
vdr macht keine index.vdr mehr sondern nur noch eine index.
also kopiere ich mir zuerst die marks nach marks.vdr und die index nach index.vdr (um nicht das marks2bytepos.pl anpassen zu müssen).
danach rufe ich das marks2bytepos.pl entsprechend mit dem pfad auf und schreibe die ausgabe nach marks.prx, die ich in projectx mit "-cut marks.prx" aufrufe.
heraus kommt dann aber ein film, der irgendwo in der mitte abgeschnitten ist. :-/
die marks(.vdr) sieht so aus:
und die marks.prx dann so:
projectx schreibt folgendes log:
Sunday, January 31, 2010 2:09:09 AM CET
ProjectX 0.90.4.00.b32 (12.09.2009)
-> working with collection 0
-> save normal log file
-> log 'packets out of sequence' / bit errors
-> log 'missing startcodes'
-> log 'PES header found in ES'
-> log WSS
-> log VPS
-> log RDS
-> log max. 500 warnings/errors
-> write all video data
-> write all other data
-> patch c.d.flagged infos of pictures
-> add sequence end code
-> set resolution in SDE
-> PVA: strictly specs. for audio streams
-> VOB: determine diff. Cell timelines
-> TS: ignore scrambled packets
-> TS: enhanced search for open packets
-> TS: join file segments (of Dreambox®)
-> TS: generate PMT stream dependent
-> get only enclosed PES/TS packets
-> concatenate different recordings
-> ensure 1st PES-packet start with video
-> generate PCR/SCR from PTS
-> write output files to: '/home/Recording'
-> 2 cutpoint(s) defined ( (0) use BytePos. for cuts )
-> main I/O-Buffersize in bytes 4096000 bytes
FileSegments:
* (0) /home/Recording/Misfits_-_Nicht_gesellschaftsfaehig/2010-01-30.06.00.13-0.rec/00001.ts
* (1) /home/Recording/Misfits_-_Nicht_gesellschaftsfaehig/2010-01-30.06.00.13-0.rec/00002.ts
second. Files:
* ---
+> Input File 0: '/home/Recording/Misfits_-_Nicht_gesellschaftsfaehig/2010-01-30.06.00.13-0.rec/00001.ts' (2,097,253,364 bytes)
-> Filetype is TS (generic PES Container)
-> demux
-> Service ID 0x0084
-> PMT 0x0084 refers to these usable streams:
Video:
PID: 0x0DC1(MPEG-2)
Audio:
PID: 0x0DC4{deu}(Mpg2)
PID: 0x0DC7(AC-3){deu}[PD]
PID: 0x0DC6[PD]
Teletext:
n/a
Subpict.:
n/a
!> missing sync. byte @ 39900440
!> found sync. byte @ 39900556
ok> PID 0x0DC7 has PES-ID 0xBD (private stream 1) (39900744 #2)
ok> PID 0x0DC1 has PES-ID 0xE0 (MPEG Video) (39901684 #7)
ok> PID 0x0DC6 has PES-ID 0xBD (private stream 1) (TTX) (39904692 #23)
ok> PID 0x0DC4 has PES-ID 0xC0 (MPEG Audio) (39913528 #70)
!> PID 0x0000 (PAT) (39968988 #365) -> ignored
!> PID 0x0084 (PMT) (39969176 #366) -> ignored
!> dropping GOP# 12 @ orig.PTS 01:08:37.121 (370540977), errorcode: 24
!> Pics exp/cnt 12/18, inGOP PTS diff. 1440ms, new Timecode 00:00:00.000
-> cut-in @ GOP# 13 / new vframe 0 / new Timecode 00:00:00.000 (41948816)
-> video basics: 720*576 @ 25fps @ 0.6735 (4:3) @ 15000000 bps - vbv 112
-> starting export of video data @ GOP# 13
!> dropping useless B-Frames @ GOP# 13 / new Timecode 00:00:00.000
-> cut-out @ GOP# 5510 (1237463000)
packs: 6335922 59% 1239328524
++> Mpg Video: PID 0x0DC1 / PesID 0xE0 / SubID 0x00 :
-> Video: fr-ct-1p-cg-og-dg -> 65962-19-0-5497-0-1
-> Video length: 65962 frames @ 00:43:58.480
-> GOP summary: min. 20, max. 24 fields; contains interlaced & progressive frames
-> avg. nom. bitrate 2698618bps (min/max: 364800/8072800)
-> set first sequenceheader bitrate to 8072800bps
---> new File: /home/Recording/Misfits_-_Nicht_gesellschaftsfaehig.m2v
++> AC3/DTS Audio: PID 0x0DC7 / PesID 0xBD / SubID 0x00 :
-> check CRC of AC-3 / MPEG-Audio L1,2
-> remove CRC in MPEG-Audio L1,2
-> add frames
-> Audio PTS: first packet 01:08:30.366, last packet 01:52:39.966
-> Video PTS: start 1.GOP 01:08:39.121, end last GOP 01:52:37.601
-> adjusting audio at video-timeline
-> src_audio: AC-3, CM, 2/0(2.0), bsid 6, dn -23dB, DS, 48000Hz, 384kbps @ 00:00:00.000
audio frames: wri-pre-skip-ins-add 82452-0-0-0-0 @ 00:43:58.464 done...
---> new File: '/home/Recording/Misfits_-_Nicht_gesellschaftsfaehig.ac3'
++> Teletext: PID 0x0DC6 / PesID 0xBD / SubID 0x10 :
++> Mpg Audio: PID 0x0DC4 / PesID 0xC0 / SubID 0x00 :
-> check CRC of AC-3 / MPEG-Audio L1,2
-> remove CRC in MPEG-Audio L1,2
-> add frames
-> Audio PTS: first packet 01:08:30.467, last packet 01:52:40.067
-> Video PTS: start 1.GOP 01:08:39.121, end last GOP 01:52:37.601
-> adjusting audio at video-timeline
-> src_audio: MPEG-1, Layer2, 48000Hz, stereo, 192kbps, CRC @ 00:00:00.000
audio frames: wri-pre-skip-ins-add 109936-0-0-0-0 @ 00:43:58.464 done...
---> new File: '/home/Recording/Misfits_-_Nicht_gesellschaftsfaehig.mp2'
summary of created media files:
.Video (m2v): 65962 Frames 00:43:58.480 '/home/Recording/Misfits_-_Nicht_gesellschaftsfaehig.m2v'
Audio 00 (ac3): 82452 Frames 00:43:58.464 0-0-0-0 '/home/Recording/Misfits_-_Nicht_gesellschaftsfaehig.ac3'
Audio 01 (mp2): 109936 Frames 00:43:58.464 0-0-0-0 '/home/Recording/Misfits_-_Nicht_gesellschaftsfaehig.mp2'
=> 1,080,000,908 bytes written...
-> we have 7 warnings/errors.
Alles anzeigen
warum ich das mit der zeit mache und nicht mit bytepositionen: gelegentlich schneide ich die filme dann noch manuell framegenau vor dem umwandeln, und da sind zeitangaben wesentlich leichter zu handeln.
Irgenwer eine Idee wo ich zum Fehlersuchen anfangen soll?
Danke!
>>>cyber
ZitatOriginal von _Cyber_
noad macht ja nun keine marks mehr sondern eine marks.vdr
nicht umgekehrt?
ZitatOriginal von _Cyber_
danach rufe ich das marks2bytepos.pl entsprechend mit dem pfad auf ...
Ich weiß nicht ob das marks2bytepos.pl mit TS-Streams zurecht kommt - IIRC hat sich das interne Format der marks-Dateien geändert
ja, umgekehrt, natürlich
ich hab nun noch einen film angeschaut, der bearbeitet wurde. mir kommt vor, dass die marken ab dem zweiten ts-file nicht mehr passen - im ersten wurde noch hervorragend rausgeschnitten, der bearbeitete film war dann (so grob geschätzt) nach dem ersten ts + die zeit die an werbung rausgeschnitten wurde zu ende.
hier nochmal eine marks(.vdr):
0:00:00.13 Logo start
0:10:12.01 Logo lost
0:10:49.24 moved from [0:10:53.20 Logo start] by checkBlacklineOnmark(new)
0:31:05.08 Logo lost
0:37:42.07 moved from [0:37:42.07 Logo start] by checkBlacklineOnmark(new)
0:58:51.22 moved from [0:58:52.21 Logo lost] by checkBlacklineOffMark
1:05:59.14 moved from [1:06:00.01 Logo start] by checkBlacklineOnmark(new)
1:25:24.13 Logo lost
1:32:46.15 moved from [1:32:46.15 Logo start] by checkBlacklineOnmark(new)
1:51:02.23 Logo lost
1:57:47.02 moved from [1:57:47.02 Logo start] by checkBlacklineOnmark(new)
2:18:26.11 moved from (2:18:43.18 Logo lost) by doOverlapDetection (95)
2:26:01.24 moved from [2:24:39.10 Logo start] by doOverlapDetection
2:47:06.19 Logo lost
2:52:42.07 moved from [2:52:42.07 Logo start] by checkBlacklineOnmark(new)
3:19:57.04 noad mark on last IFrame
Alles anzeigen
die daraus resultierende marks.prx:
0000294408
0347798120
0369344048
1059800744
1285369536
2006889848
0152457096
0814442132
1065689656
1688697216
1918330756
0525315428
0784166236
1502879144
1693533516
0525221052
Alles anzeigen
und das log von projectX:
Sunday, January 31, 2010 1:25:52 AM CET
ProjectX 0.90.4.00.b32 (12.09.2009)
-> working with collection 0
-> save normal log file
-> log 'packets out of sequence' / bit errors
-> log 'missing startcodes'
-> log 'PES header found in ES'
-> log WSS
-> log VPS
-> log RDS
-> log max. 500 warnings/errors
-> write all video data
-> write all other data
-> patch c.d.flagged infos of pictures
-> add sequence end code
-> set resolution in SDE
-> PVA: strictly specs. for audio streams
-> VOB: determine diff. Cell timelines
-> TS: ignore scrambled packets
-> TS: enhanced search for open packets
-> TS: join file segments (of Dreambox®)
-> TS: generate PMT stream dependent
-> get only enclosed PES/TS packets
-> concatenate different recordings
-> ensure 1st PES-packet start with video
-> generate PCR/SCR from PTS
-> write output files to: '/home/Recording'
-> 16 cutpoint(s) defined ( (0) use BytePos. for cuts )
-> main I/O-Buffersize in bytes 4096000 bytes
FileSegments:
* (0) /home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00001.ts
* (1) /home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00002.ts
* (2) /home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00003.ts
* (3) /home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00004.ts
second. Files:
* ---
+> Input File 0: '/home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00001.ts' (2,097,431,400 bytes)
-> Filetype is TS (generic PES Container)
-> demux
-> Service ID 0x0084
-> PMT 0x0084 refers to these usable streams:
Video:
PID: 0x01FA(MPEG-2)
Audio:
PID: 0x01FB{deu}(Mpg2)
PID: 0x01FD[PD]
Teletext:
n/a
Subpict.:
n/a
!> PID 0x0000 (PAT) (0 #1) -> ignored
!> PID 0x0084 (PMT) (188 #2) -> ignored
ok> PID 0x01FA has PES-ID 0xE0 (MPEG Video) (376 #3)
ok> PID 0x01FD has PES-ID 0xBD (private stream 1) (TTX) (18800 #101)
ok> PID 0x01FB has PES-ID 0xC0 (MPEG Audio) (103212 #550)
-> cut-in @ GOP# 0 / new vframe 0 / new Timecode 00:00:00.000 (294784)
-> video basics: 720*576 @ 25fps @ 0.7031 (16:9) @ 4000000 bps - vbv 112
-> starting export of video data @ GOP# 0
!> dropping useless B-Frames @ GOP# 0 / new Timecode 00:00:00.000
-> cut-out @ GOP# 1274 (347798496)
-> cut-in @ GOP# 1353 / new vframe 15286 / new Timecode 00:10:11.440 (369344424)
!> PTS difference of 3412800 (00:00:37.920) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 1353 / new Timecode 00:10:11.440
-> cut-out @ GOP# 3885 (1059801120)
-> cut-in @ GOP# 4712 / new vframe 45668 / new Timecode 00:30:26.720 (1285369912)
!> PTS difference of 35726400 (00:06:36.960) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 4712 / new Timecode 00:30:26.720
-> cut-out @ GOP# 7357 (2006890224)
-> cut-in @ GOP# 7358 / new vframe 77406 / new Timecode 00:51:36.240 (2007142708)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7358 / new Timecode 00:51:36.240
-> cut-out @ GOP# 7359 (2007396884)
-> cut-in @ GOP# 7360 / new vframe 77416 / new Timecode 00:51:36.640 (2007657640)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7360 / new Timecode 00:51:36.640
-> cut-out @ GOP# 7361 (2007938700)
-> cut-in @ GOP# 7362 / new vframe 77426 / new Timecode 00:51:37.040 (2008206788)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7362 / new Timecode 00:51:37.040
-> cut-out @ GOP# 7363 (2008495932)
-> cut-in @ GOP# 7364 / new vframe 77436 / new Timecode 00:51:37.440 (2008775864)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7364 / new Timecode 00:51:37.440
-> cut-out @ GOP# 7365 (2009036056)
-> cut-in @ GOP# 7366 / new vframe 77446 / new Timecode 00:51:37.840 (2009289292)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7366 / new Timecode 00:51:37.840
-> cut-out @ GOP# 7367 (2009559636)
packs: 10674367 95% 2009703456
++> Mpg Video: PID 0x01FA / PesID 0xE0 / SubID 0x00 :
-> Video: fr-ct-1p-cg-og-dg -> 77456-912-0-6456-0-0
-> Video length: 77456 frames @ 00:51:38.240
-> GOP summary: min. 20, max. 24 fields; contains interlaced frames
-> avg. nom. bitrate 4018381bps (min/max: 2917200/5016400)
-> set first sequenceheader bitrate to 5016400bps
---> new File: /home/Recording/Pulp_Fiction.m2v
++> Teletext: PID 0x01FD / PesID 0xBD / SubID 0x10 :
++> Mpg Audio: PID 0x01FB / PesID 0xC0 / SubID 0x00 :
-> check CRC of AC-3 / MPEG-Audio L1,2
-> remove CRC in MPEG-Audio L1,2
-> add frames
-> Audio PTS: first packet 08:38:05.444, last packet 09:37:01.892
-> Video PTS: start 1.GOP 08:38:05.740, end last GOP 09:37:01.820
-> adjusting audio at video-timeline
-> src_audio: MPEG-1, Layer2, 48000Hz, jstereo, 160kbps, CRC @ 00:00:00.000
audio frames: wri-pre-skip-ins-add 129093-0-0-0-0 @ 00:51:38.232 done...
---> new File: '/home/Recording/Pulp_Fiction.mp2'
summary of created media files:
.Video (m2v): 77456 Frames 00:51:38.240 '/home/Recording/Pulp_Fiction.m2v'
Audio 00 (mp2): 129093 Frames 00:51:38.232 0-0-0-0 '/home/Recording/Pulp_Fiction.mp2'
=> 1,618,203,612 bytes written...
-> we have 17 warnings/errors.
Alles anzeigen
Joh, das Format hat sich geändert:
struct tIndexPes {
uint32_t offset;
uchar type;
uchar number;
uint16_t reserved;
};
struct tIndexTs {
uint64_t offset:40; // up to 1TB per file (not using off_t here - must definitely be exactly 64 bit!)
int reserved:7; // reserved for future use
int independent:1; // marks frames that can be displayed by themselves (for trick modes)
uint16_t number:16; // up to 64K files per recording
}
Alles anzeigen
Damit funktioniert das marks2bytepos nur für PES-Aufzeichnungen. Da beim ersten ts-File der Fileoffset noch 0 ist funktioniert es da noch solange die Datei nicht größer 2GB ist.
cool dass du das so schnell gefunden hast.
hast du zufällig lust das anzupassen oder ist das gar nicht mehr möglich?
danke!
>>>Cyber
ZitatOriginal von _Cyber_
cool dass du das so schnell gefunden hast.
Habs ja auch damals programmiert
Probier' mal die aktualisierte Fassung von meiner Website (siehe Signatur unter Patches)
nope, tut noch nicht. :-/
hab's wieder mit Pulp Fiction probiert.
marks:
0:00:00.13 Logo start
0:10:12.01 Logo lost
0:10:49.24 moved from [0:10:53.20 Logo start] by checkBlacklineOnmark(new)
0:31:05.08 Logo lost
0:37:42.07 moved from [0:37:42.07 Logo start] by checkBlacklineOnmark(new)
0:58:51.22 moved from [0:58:52.21 Logo lost] by checkBlacklineOffMark
1:05:59.14 moved from [1:06:00.01 Logo start] by checkBlacklineOnmark(new)
1:25:24.13 Logo lost
1:32:46.15 moved from [1:32:46.15 Logo start] by checkBlacklineOnmark(new)
1:51:02.23 Logo lost
1:57:47.02 moved from [1:57:47.02 Logo start] by checkBlacklineOnmark(new)
2:18:26.11 moved from (2:18:43.18 Logo lost) by doOverlapDetection (95)
2:26:01.24 moved from [2:24:39.10 Logo start] by doOverlapDetection
2:47:06.19 Logo lost
2:52:42.07 moved from [2:52:42.07 Logo start] by checkBlacklineOnmark(new)
3:19:57.04 noad mark on last IFrame
Alles anzeigen
und die aus dem script resultierende marks.prx:
294408
347798120
369344048
1059800744
1285369536
2006889848
-2045078800
-1383093764
-1131846240
-508838680
-279205140
425062036
683912844
1402625752
1593280124
-1772766952
Alles anzeigen
da sehen die - schon mal sehr auffällig auf - trotzdem noch das Project-X-log:
Sunday, February 14, 2010 5:16:00 PM CET
ProjectX 0.90.4.00.b32 (12.09.2009)
-> working with collection 0
-> save normal log file
-> log 'packets out of sequence' / bit errors
-> log 'missing startcodes'
-> log 'PES header found in ES'
-> log WSS
-> log VPS
-> log RDS
-> log max. 500 warnings/errors
-> write all video data
-> write all other data
-> patch c.d.flagged infos of pictures
-> add sequence end code
-> set resolution in SDE
-> PVA: strictly specs. for audio streams
-> VOB: determine diff. Cell timelines
-> TS: ignore scrambled packets
-> TS: enhanced search for open packets
-> TS: join file segments (of Dreambox®)
-> TS: generate PMT stream dependent
-> get only enclosed PES/TS packets
-> concatenate different recordings
-> ensure 1st PES-packet start with video
-> generate PCR/SCR from PTS
-> write output files to: '/home/Recording'
-> 16 cutpoint(s) defined ( (0) use BytePos. for cuts )
-> main I/O-Buffersize in bytes 4096000 bytes
FileSegments:
* (0) /home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00001.ts
* (1) /home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00002.ts
* (2) /home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00003.ts
* (3) /home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00004.ts
second. Files:
* ---
+> Input File 0: '/home/Recording/Pulp_Fiction/2010-01-29.21.55.3-0.rec/00001.ts' (2,097,431,400 bytes)
-> Filetype is TS (generic PES Container)
-> demux
-> Service ID 0x0084
-> PMT 0x0084 refers to these usable streams:
Video:
PID: 0x01FA(MPEG-2)
Audio:
PID: 0x01FB{deu}(Mpg2)
PID: 0x01FD[PD]
Teletext:
n/a
Subpict.:
n/a
!> PID 0x0000 (PAT) (0 #1) -> ignored
!> PID 0x0084 (PMT) (188 #2) -> ignored
ok> PID 0x01FA has PES-ID 0xE0 (MPEG Video) (376 #3)
ok> PID 0x01FD has PES-ID 0xBD (private stream 1) (TTX) (18800 #101)
ok> PID 0x01FB has PES-ID 0xC0 (MPEG Audio) (103212 #550)
-> cut-in @ GOP# 0 / new vframe 0 / new Timecode 00:00:00.000 (294784)
-> video basics: 720*576 @ 25fps @ 0.7031 (16:9) @ 4000000 bps - vbv 112
-> starting export of video data @ GOP# 0
!> dropping useless B-Frames @ GOP# 0 / new Timecode 00:00:00.000
-> cut-out @ GOP# 1274 (347798496)
-> cut-in @ GOP# 1353 / new vframe 15286 / new Timecode 00:10:11.440 (369344424)
!> PTS difference of 3412800 (00:00:37.920) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 1353 / new Timecode 00:10:11.440
-> cut-out @ GOP# 3885 (1059801120)
-> cut-in @ GOP# 4712 / new vframe 45668 / new Timecode 00:30:26.720 (1285369912)
!> PTS difference of 35726400 (00:06:36.960) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 4712 / new Timecode 00:30:26.720
-> cut-out @ GOP# 7357 (2006890224)
-> cut-in @ GOP# 7358 / new vframe 77406 / new Timecode 00:51:36.240 (2007142708)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7358 / new Timecode 00:51:36.240
-> cut-out @ GOP# 7359 (2007396884)
-> cut-in @ GOP# 7360 / new vframe 77416 / new Timecode 00:51:36.640 (2007657640)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7360 / new Timecode 00:51:36.640
-> cut-out @ GOP# 7361 (2007938700)
-> cut-in @ GOP# 7362 / new vframe 77426 / new Timecode 00:51:37.040 (2008206788)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7362 / new Timecode 00:51:37.040
-> cut-out @ GOP# 7363 (2008495932)
-> cut-in @ GOP# 7364 / new vframe 77436 / new Timecode 00:51:37.440 (2008775864)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7364 / new Timecode 00:51:37.440
-> cut-out @ GOP# 7365 (2009036056)
-> cut-in @ GOP# 7366 / new vframe 77446 / new Timecode 00:51:37.840 (2009289292)
!> PTS difference of 43200 (00:00:00.480) to last exported GOP detected
!> dropping useless B-Frames @ GOP# 7366 / new Timecode 00:51:37.840
-> cut-out @ GOP# 7367 (2009559636)
packs: 10674367 95% 2009703456
++> Mpg Video: PID 0x01FA / PesID 0xE0 / SubID 0x00 :
-> Video: fr-ct-1p-cg-og-dg -> 77456-912-0-6456-0-0
-> Video length: 77456 frames @ 00:51:38.240
-> GOP summary: min. 20, max. 24 fields; contains interlaced frames
-> avg. nom. bitrate 4018381bps (min/max: 2917200/5016400)
-> set first sequenceheader bitrate to 5016400bps
---> new File: /home/Recording/Pulp_Fiction.m2v
++> Teletext: PID 0x01FD / PesID 0xBD / SubID 0x10 :
++> Mpg Audio: PID 0x01FB / PesID 0xC0 / SubID 0x00 :
-> check CRC of AC-3 / MPEG-Audio L1,2
-> remove CRC in MPEG-Audio L1,2
-> add frames
-> Audio PTS: first packet 08:38:05.444, last packet 09:37:01.892
-> Video PTS: start 1.GOP 08:38:05.740, end last GOP 09:37:01.820
-> adjusting audio at video-timeline
-> src_audio: MPEG-1, Layer2, 48000Hz, jstereo, 160kbps, CRC @ 00:00:00.000
audio frames: wri-pre-skip-ins-add 129093-0-0-0-0 @ 00:51:38.232 done...
---> new File: '/home/Recording/Pulp_Fiction.mp2'
summary of created media files:
.Video (m2v): 77456 Frames 00:51:38.240 '/home/Recording/Pulp_Fiction.m2v'
Audio 00 (mp2): 129093 Frames 00:51:38.232 0-0-0-0 '/home/Recording/Pulp_Fiction.mp2'
=> 1,618,203,612 bytes written...
-> we have 17 warnings/errors.
Alles anzeigen
danke für deine Mühe!
>>>cyber
ihr grabt ja altes zeugs aus
Joh, mit negativen Bytepositionen kann das nicht gehen. Habe hier keine größere TS-Aufnahme und kanns deshalb nicht testen. Was für ein Perl hast Du denn? 32 Bit ? das soll bis 2 hoch 53 die Zahlen richtig darstellen ?!
Ich wollte möglichst auf Math::BigInt verzichten ...
Habs nochmal korrigiert, aktualisierte Fassung ist auf der Website
ich hab soeben die schnittmarken der filme nochmal überprüft, mit dieser version passen die wieder perfekt.
danke nochmals!
>>>cyber
Hi, hab mir gerade auch mal die aktuelle Version von marks2bytecode geladen, allerding habe ich Probleme mit allen ts-Files größer als ca 4.5GB.
Unterhalb dieser Grenze werden die Schnittmarken korrekt umgewandelt, oberhalb kommt allerdings nur noch schwachsinn raus. z.B.
Shanghai_Knights
6.0 GB ts-file
marks
0:07:23.14 audio channel change from 2 to 6 (11088)*
0:38:31.18 audio channel change from 6 to 2 (57780)
0:44:23.14 audio channel change from 2 to 6 (66588)*
1:06:00.25
1:12:25.12
1:34:53.20
1:41:17.20
2:10:47.14 audio channel change from 6 to 2 (196068)
cut.px
Werden die Zahlen irgendwann zu groß für das Perlscript und muss ich mir eine andere Art der Weiterverarbeitung suchen oder lässt sich das noch irgendwie lösen?
da gibts ein ausgebessertes marks2bytecode, das mit den großen files umgehen kann. schaue im Forum, das ist entsprechend gepostet worden, ansonsten suche in meinen beiträgen, da solltest das Problem auch finden.
LG
hi
ich habe eigentlich fertige routinen die die
a:
die marks ausliest
b:
die entsprechenden bytewerte liefert
fuer 1.7 ...
getestet selbst mit HD aufnahmen.
das ganze ist in perl und objekte ( Traco.pm )
das ganze ist zwar aus einem anderen hintergrund entstanden ( umtrechnen mit handbrake ) man kann das ganze aber auch ausserhalb des server nutzen.
einfach mal die letze beta runterladen .link siehe thread ( handbrake und traco hier im forum )
dabei kann man dann das ganze so nutzen
#!/usr/bin/perl -w
use strict;
use Traco.pm
user Data::Dumper;
my $a=Traco->[);
my $index = 'path/zur/aufname/index';
my ($offset,$filenumber) = $a->_getoffset({frame=>'Framenummer',index=>$index vdrversion=>'1.7 oder 1.6',debug=>'1';});
Alles anzeigen
man bekommt den byteposition fuer die frame zurueck und die passen file nummer.
um die marks aus zuwerten
#!/usr/bin/perl -w
use strict;
use Traco.pm
user Data::Dumper;
my $a=Traco->[);
my $dir = 'path/zur/aufname/index';
my $vdrmarks = $a->_parsevdrmarks({dir=>$dir,fps=>'25(default) oder 50',debug=>'1';});
print Dumper $vdrmarks
Alles anzeigen
hier sind u.a. fertig umgerechnet die start und stop frame n sekunden im feld $vdrmarks->{'start_fpsX'} und $vdrmarks->{'stop_fpsX'}
das X steht fuer ein cut nummer ( 1 cut ist gleich 1x start + 1xstop )
sorry wegen den feldname die sind gewachsen ..
$vdrmarks benhaltet noch ein paar mehr felder , wechle koennt ihr anhand vom Dumper sehen.
vieleicht hilft euch das ja weiter in bezug auch projectx .
ich habe das ganze dann mit einer zusaetlichen routine kombiniert combine_ts welche dann anhand von marks und der index datei die aufnahmen schneidet in eine neue datei hinein.
ihr koennt den code gerne verwenden.
holger
da gibts ein ausgebessertes marks2bytecode, das mit den großen files umgehen kann. schaue im Forum, das ist entsprechend gepostet worden, ansonsten suche in meinen beiträgen, da solltest das Problem auch finden.
LG
Ja, der Hinweis ist ja auch in diesem Thread, dass die aktualliesiert Version auf der Homepage zu finden ist.
http://firefly.vdr-developer.o…ches/marks2bytepos.pl.tgz
Aber dieses Script funktioniert bei mir nur bis ts-Datei ca 4.5GB
Als beispiel mal Zwei verschiedene ts-Datei. Bei der einen funktionierts, bei der anderen nicht.
Wo_die_Liebe_hinfällt: (Funktioniert)
marks:
0:07:12.01 detected logo start (10800)*
0:41:34.03 detected logo stop (62352)
0:48:33.01 detected logo start (72900)*
1:13:37.06 detected logo stop (110430)
1:21:39.13 detected logo start (122475)*
1:44:35.11 detected logo stop (156867)
1:52:14.23 detected logo start (168363)
cut.px
247302908
1498324656
1766153028
2632460976
2942657404
3738753368
4017842188
4217344404
Dateigrößen:
-rw-r--r-- 4506955960 15. Mai 22:14 00001.ts
-rw-r--r-- 11523288 15. Mai 22:14 index
Alles anzeigen
Brave_Heart (funktioniert nicht)
marks:
0:06:55.03 detected logo start (10362)*
0:45:33.01 overlap before 68790, moved to 68325
0:52:34.21 overlap after 78540, moved to 78870
1:23:38.11 overlap before 125898, moved to 125460
1:31:42.16 overlap after 136212, moved to 137565
2:23:49.03 overlap before 216240, moved to 215727
2:29:43.03 overlap after 223263, moved to 224577
3:02:38.11 overlap before 274035, moved to 273960
3:08:00.01 overlap after 280740, moved to 282000
3:15:19.21
cut.px
237273108
1314872940
1541672568
2461360860
2717853396
98258472
281026808
1203732876
1373104896
1603603424
Dateigrößen:
-rw-r--r-- 1 6274675028 9. Jun 23:35 00001.ts
-rw-r--r-- 1 2483152 9. Jun 23:35 index
Alles anzeigen
Die traco Codeschnippsel hab ich nicht zum laufen gebracht, habe auch leider keine Perl Erfahrung.
nur das Testscript aus traco - transcode mit handbrake Funktioniert bei mir und gibt für die 2 Filme ob folgendes aus:
Wo die Liebe hinfällt
$VAR1 = \{
'start_fps1' => 72826,
'start_time3' => 6734,
'totalframes0' => 51552,
'stop_time3' => 7119,
'option_start_frame1' => '--start-at frame:72826',
'start_fps3' => 168373,
'option_start_frame3' => '--start-at frame:168373',
'stop_fps1' => 110431,
'start_frame0' => '01',
'start_fps0' => 10801,
'stop_time2' => 6275,
'stop_frame0' => '03',
'option_stop_frame2' => '--stop-at frame:156886',
'totalframes2' => 34398,
'stop_fps2' => 156886,
'start_frame2' => 13,
'start_time0' => 432,
'option_start_frame2' => '--start-at frame:122488',
'start_frame3' => 23,
'option_stop_frame0' => '--stop-at frame:62353',
'totalframes1' => 37605,
'start_fps2' => 122488,
'option_start_frame0' => '--start-at frame:10801',
'stop_fps0' => 62353,
'stop_time1' => 4417,
'cutcount' => 4,
'start_time2' => 4899,
'stop_time0' => 2494,
'stop_frame2' => 11,
'start_frame1' => '01',
'stop_frame1' => '06',
'stop_fps3' => 177991,
'option_stop_frame3' => '--stop-at frame:177991',
'totalframes3' => 9618,
'option_stop_frame1' => '--stop-at frame:110431',
'start_time1' => 2913,
'stop_frame3' => 16
};
Alles anzeigen
Braveheart
$VAR1 = \{
'start_fps1' => 78871,
'start_time3' => 8983,
'totalframes0' => 57948,
'stop_time3' => 10958,
'option_start_frame1' => '--start-at frame:78871',
'start_fps3' => 224578,
'stop_frame4' => 21,
'option_start_frame3' => '--start-at frame:224578',
'stop_fps1' => 125461,
'start_frame0' => '03',
'start_fps0' => 10378,
'stop_time2' => 8629,
'stop_frame0' => '01',
'option_stop_frame2' => '--stop-at frame:215728',
'totalframes2' => 78162,
'stop_fps2' => 215728,
'start_frame2' => 16,
'start_time0' => 415,
'totalframes4' => 10995,
'start_time4' => 11280,
'option_start_frame2' => '--start-at frame:137566',
'start_frame3' => '03',
'option_stop_frame0' => '--stop-at frame:68326',
'totalframes1' => 46590,
'start_fps2' => 137566,
'option_start_frame0' => '--start-at frame:10378',
'stop_fps0' => 68326,
'stop_time1' => 5018,
'stop_fps4' => 292996,
'option_start_frame4' => '--start-at frame:282001',
'cutcount' => 5,
'stop_frame2' => '03',
'start_time2' => 5502,
'stop_time0' => 2733,
'start_frame4' => '01',
'start_frame1' => 21,
'stop_fps3' => 273961,
'stop_frame1' => 11,
'option_stop_frame3' => '--stop-at frame:273961',
'option_stop_frame4' => '--stop-at frame:292996',
'totalframes3' => 49383,
'stop_time4' => 11719,
'start_fps4' => 282001,
'option_stop_frame1' => '--stop-at frame:125461',
'start_time1' => 3154,
'stop_frame3' => 11
};
Alles anzeigen
hi
jo
hierbei sind wichtig die start_fpsX und die stop_fpsX werte. das ist jeweils die start und die stop frame eines cut (X)
nun kann man diese werte nehmen
und verwenden z.b. bravehart
'start_fps1' => 78871,
'start_fps3' => 224578,
'stop_fps1' => 125461,
'start_fps0' => 10378,
'stop_fps2' => 215728,
'start_fps2' => 137566,
'stop_fps0' => 68326,
'stop_fps4' => 292996,
'stop_fps3' => 273961,
'start_fps4' => 282001,
#!/usr/bin/perl -w
use strict;
use Traco.pm
user Data::Dumper;
my $a=Traco->[);
my $index = 'bravehartpath/ndex';
# start_fps0
my ($offset_start,$filenumber_start) = $a->_getoffset({frame=>'10378',index=>$index vdrversion=>'1.7',debug=>'1';});
my ($offset_stop,$filenumber_stop) = $a->_getoffset({frame=>'68326',index=>$index vdrversion=>'1.7',debug=>'1';});
print "$offset_start / $offset_stop \n";
Alles anzeigen
somit habe ich den jeweiligen start und stop bytewert mit dem ich dann , z.b in perl mit seek und tell , die files schneiden kann.
die start/stop_fps werden wie folgt berechnet
my $time_in_seconds = ( ( $hour * DREISECHSNULLNULL ) + ( $minute * SECHSNULL ) + $sec ) ;
my $overall_fps = ( $time_in_seconds * $fps ) + $frame ;
die zeit ist die aus der marks datei
holger
Ja, der Hinweis ist ja auch in diesem Thread, dass die aktualliesiert Version auf der Homepage zu finden ist.
http://firefly.vdr-developer.o…ches/marks2bytepos.pl.tgz
Die Aktualisierung betraf damals nur den TS-Support - IIRC. Es gab damals auch Berichte, dass es irgendwo nicht funktionierte, was ich aber nie nachstellen konnte. Liegts evtl. an der Perl-Version? Ich nutze ein 64bittiges Perl, es sollte aber auch mit 32 gehen, da bigint benutzt wird.
@ FireFly
Ob es am 32bit liegt kann ich dir gerade nicht sagen.Nutze hier gerade eine 32bit Rechner, komme im laufe des Tage aber auch noch an einen 64bit Rechner und kann da mal schaun ob es was ändert.
@mark05
So langsam wird es mit deinem Perlscript, aber leider noch nicht ganz.
Der einfacherheithalber nehme ich nun erst mal eine Datei die mit marks2bytepos funktioniert und nur 2 Schnittmarken hat, um das ganze besser zu vergleichen.
Das Auslesen der marks mit deinem Script sieht bei mir wiefolgt aus:
#!/usr/bin/perl -w
use Traco ;
use Data::Dumper ;
my $dir ='/home/udatt/Files/mnt/VDRAufzeichnung/Brothers_Grimm/2011-05-22.02.03.8-0.rec/';
my $vdrtranscode = Traco->new();
my $vdrmarks = \$vdrtranscode->_parsevdrmarks({dir=>$dir,,debug=>'1',});
print Dumper $vdrmarks;
und ergibt:
Dann trage ich die Werte in folgendes ein:
#!/usr/bin/perl -w
use strict;
use Traco ;
use Data::Dumper;
my $a=Traco->new();
my $index = '/home/udatt/Files/mnt/VDRAufzeichnung/Brothers_Grimm/2011-05-22.02.03.8-0.rec/index';
# start_fps0
my ($offset_start,$filenumber_start) = $a->_getoffset({frame=>'19213',index=>$index, vdrversion=>'1.7',debug=>'1'});
my ($offset_stop,$filenumber_stop) = $a->_getoffset({frame=>'178921',index=>$index, vdrversion=>'1.7',debug=>'1'});
print "$offset_start / $offset_stop \n";
Und erhalte als Ergebnis:
Als Vergleich die cut.px
Der erste Wert stimmt also schon mal nur der letzte nicht.
Hast du eine Idee wie oder wo ich da noch weiter Suchen könnte?
moin
kann mich erst jetzt melden da ich erstmal meine router zuhause reaktivieren muss
udatt bedenke das ganze ist grundsaetzlich nicht nicht fuer projectx entwickelt worden.
wenn du mal einen kompletten schnitt machen moechtes ueber das tool von mir ... schau mal im contrib verzeichnisss ,
dort sollte eine datei "test-combine-ts.pl " enthalten sein.
diese mal anpassen , path , und dann laufen lassen.
es sollte dann eine datei erstellt werden namens vdrtranscode.ts diese ist dann um die schnittmarken bereinigt.
alternativ kannst du mir mai ein perl -V zukommen lassen ?
ich selber habe hier nen yavdr 0.3 aufgesetzt mit einem digitainer sprich 32 bit, incl allen updates.
ggf kann ich dann nochmal schauen ob ich da was machen kann.
frage im allgemeinen ,warum mit projectx schneiden ?
eingetlich kann man recht gut ein cut tool bauen .
holger
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!