eddy29
6th September 2002, 14:29
First I have ripped a movie with Smartripper, demuxed in AC3 + M2V files, shrinked them with ReMPEG2.
Then I ripped the subtitles with Subrip in:
- a lot of bmp files
- a .son index file
When I imported all the files in Maestro, I discovered that a lot of subtitles overlapped each other. Really a lot did !!
When I checked the .son index file, I saw the times were not correct for consequent subtitles. It looked like if some subtitle times were reset to 00:00:00:00. This happened with the Dutch subtitles 16 times !!
Sometimes the time was reset between the starting and ending times of a subtitles.
I knew that it was a very hard job to correct all these times and after I few hours I found a quick way to do this.
So, I would like to share this with you.
First I analysed the VOB movie files with VOBEdit. I went through the files and discovered that:
- the times at which the LBA packets (2 kB packets) were send to the decoder were determined by the SCR (System Clock Reference).
This times are based on 90 KHz, so devide them by 90000.
- subtitles will always be seen as [Sub-Picture Pack] 0x22
These SCR times were reset to 0 at certain times.
Then when you know that for example the SCR has been reset from
90000000 to 0 at a LBA number 1000, then you know that from LBA number 1000 you have to add up 90000000/90000 = 1000 seconds.
Make a list of each VOB file and write down the LBA and SCR numbers of places were the SCR number was reset.
Example:
VOB 5
LBA SCR
0 20822893.214
235464 89777444.171
235465 184.095
236410 218787.251
236411 184.095
.
.
.
428605 146.085
469786 10790326.257 (last LBA number)
When you do this for each VOB file, you have an overview at which LBA numbers the SCR times have been reset.
Then, with that information you can calculate how much time has to be add up to the LBA ranges.
Then determine in which LBA range which subtitles can be found.
In this case you have the following information:
- 'start' and 'end' times of subtitles
- ranges of LBA numbers in VOB files
You will have to find which subtitles belongs to which LBA range.
So then you know exactly have much time has to be add up to certain subtitles.
From the .son file, it looks like that the times for subtitles has been reset only when the time goes back, but THAT'S NOT ALWAYS THE CASE !!!!
You will find this out later.....
I'll give an example of how I did this, but you can always do it on your own way. Just be creative !!
Example:
1) First I looked at the .son file and see that the time has been reset from LBA number 17.
LBA number 16 goes untill 00:02:46:11. This means 2 minutes, 46 seconds and 11 frames. With a framerate of 25 frames/sec (PAL), this is
166.44 seconds.
2) When I looked at the list I have made I saw that for the first time the SCR had been reset at LBA number 54654 and has SCR value 15573284.171. Devide this by 90000, and you get 173.04 seconds.
The second time it has been reset there is a time range of 2.17 seconds, the third on of 12.4 seconds.
So it looks like Subtitle number 1-16 will belong the LBA range 0-54654. I said it looks like, you always have to check.
3) When subtitles number 16 starts at 00:02:43:09, this is 163.36 seconds. Multiplied by 90000, this is 14702400.
When I looked with VOBEdit I found the subtitle at SCR 14703030.257, so this is the one.
With the above example you can get for each subtitle the amount time you'll have to add up. Sometimes the start and end times of 1 subtitle belong to different ranges.
You'll see that directly in the .son file:
0595 00:03:17:10 00:03:19:01
0596 00:03:23:06 00:00:00:03
0597 00:00:00:03 00:00:01:21
After that you have to manually change all the times in the .son file.............
No you don't have to, I have found that you can change the times in just 30 minutes:
1) Rip the subtitles again with Subrip and set the output format as "MicroDVD .sub", then click Convert. Then save file as matrix.sub
2) Then open the matrix.sub with Time Adjuster 2.8 (Freeware). Then go to File and select Move Time...
- time can only be moved 30000 frames each time
- the whole file will be selected
So you have to be creative to set all the times right
When you have done this, it's time to convert the .sub file back to .son file. If you have not closed Subrip, then open the .sub file, set Output format to "Spruce Maestro .son", click convert and save the file as matrix2.son
I used the .son index file, because I want to Author the DVD with DVDMaestro.
I wish you good luck with the above procedure, and do not hesitate to ask me a question.
Then I ripped the subtitles with Subrip in:
- a lot of bmp files
- a .son index file
When I imported all the files in Maestro, I discovered that a lot of subtitles overlapped each other. Really a lot did !!
When I checked the .son index file, I saw the times were not correct for consequent subtitles. It looked like if some subtitle times were reset to 00:00:00:00. This happened with the Dutch subtitles 16 times !!
Sometimes the time was reset between the starting and ending times of a subtitles.
I knew that it was a very hard job to correct all these times and after I few hours I found a quick way to do this.
So, I would like to share this with you.
First I analysed the VOB movie files with VOBEdit. I went through the files and discovered that:
- the times at which the LBA packets (2 kB packets) were send to the decoder were determined by the SCR (System Clock Reference).
This times are based on 90 KHz, so devide them by 90000.
- subtitles will always be seen as [Sub-Picture Pack] 0x22
These SCR times were reset to 0 at certain times.
Then when you know that for example the SCR has been reset from
90000000 to 0 at a LBA number 1000, then you know that from LBA number 1000 you have to add up 90000000/90000 = 1000 seconds.
Make a list of each VOB file and write down the LBA and SCR numbers of places were the SCR number was reset.
Example:
VOB 5
LBA SCR
0 20822893.214
235464 89777444.171
235465 184.095
236410 218787.251
236411 184.095
.
.
.
428605 146.085
469786 10790326.257 (last LBA number)
When you do this for each VOB file, you have an overview at which LBA numbers the SCR times have been reset.
Then, with that information you can calculate how much time has to be add up to the LBA ranges.
Then determine in which LBA range which subtitles can be found.
In this case you have the following information:
- 'start' and 'end' times of subtitles
- ranges of LBA numbers in VOB files
You will have to find which subtitles belongs to which LBA range.
So then you know exactly have much time has to be add up to certain subtitles.
From the .son file, it looks like that the times for subtitles has been reset only when the time goes back, but THAT'S NOT ALWAYS THE CASE !!!!
You will find this out later.....
I'll give an example of how I did this, but you can always do it on your own way. Just be creative !!
Example:
1) First I looked at the .son file and see that the time has been reset from LBA number 17.
LBA number 16 goes untill 00:02:46:11. This means 2 minutes, 46 seconds and 11 frames. With a framerate of 25 frames/sec (PAL), this is
166.44 seconds.
2) When I looked at the list I have made I saw that for the first time the SCR had been reset at LBA number 54654 and has SCR value 15573284.171. Devide this by 90000, and you get 173.04 seconds.
The second time it has been reset there is a time range of 2.17 seconds, the third on of 12.4 seconds.
So it looks like Subtitle number 1-16 will belong the LBA range 0-54654. I said it looks like, you always have to check.
3) When subtitles number 16 starts at 00:02:43:09, this is 163.36 seconds. Multiplied by 90000, this is 14702400.
When I looked with VOBEdit I found the subtitle at SCR 14703030.257, so this is the one.
With the above example you can get for each subtitle the amount time you'll have to add up. Sometimes the start and end times of 1 subtitle belong to different ranges.
You'll see that directly in the .son file:
0595 00:03:17:10 00:03:19:01
0596 00:03:23:06 00:00:00:03
0597 00:00:00:03 00:00:01:21
After that you have to manually change all the times in the .son file.............
No you don't have to, I have found that you can change the times in just 30 minutes:
1) Rip the subtitles again with Subrip and set the output format as "MicroDVD .sub", then click Convert. Then save file as matrix.sub
2) Then open the matrix.sub with Time Adjuster 2.8 (Freeware). Then go to File and select Move Time...
- time can only be moved 30000 frames each time
- the whole file will be selected
So you have to be creative to set all the times right
When you have done this, it's time to convert the .sub file back to .son file. If you have not closed Subrip, then open the .sub file, set Output format to "Spruce Maestro .son", click convert and save the file as matrix2.son
I used the .son index file, because I want to Author the DVD with DVDMaestro.
I wish you good luck with the above procedure, and do not hesitate to ask me a question.