本來這個blog是記錄開發輸入法的點滴的,後來越來越雜,現在什麼都記錄了。

2014年12月26日 星期五

How to fix the color problem in the idx / sub file?

How to fix the color problem in the idx / sub file?

Sometimes, even the trick of changing the palette:

palette: 000000, 000000, 000000, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, 000000

 in idx file, there are still problem in the subtitle. Using SubResync in VobSub, some of the subtitle, some of subtitle look ugly:




To fix this:
  1. With subresync, save the final.idx / final.sub as DVDMaestro format.

     
  2. You will see final.son, final.spf (palette) and some bitmaps.

     
  3. Open the bitmap file, you will see something like this:


    Open it with image editor (e.g. GIMP)  it is noted it is a bitmap with 16 color palette.
    But only 4 of color palette entries are used.

     

    The 4 colors are: 0x0000ff00 (blue), 0xff000000 (red), 0x00000000 (black) and 0xffffff00 (white)

    We are using this color palette for the subtitle. This color palette must be saved in final.spf.

    With notepad, save the following to a text file final.spf.xxd:

    0000000: 0000 ff00 ff00 0000 0000 0000 ffff ff00 ................
    0000010: ffff ff00 ffff ff00 ffff ff00 ffff ff00 ................
    0000020: ffff ff00 ffff ff00 ffff ff00 ffff ff00 ................
    0000030: ffff ff00 ffff ff00 ffff ff00 ffff ff00 ................

    Using xxd (link) to convert it to final.spf.

    xxd -r < final.spf.xxd > final.spf
     
  4. Fix the final.son  so that the color palette is fixed.
     
    st_format 2
    Display_Start non_forced
    TV_Type PAL
    Tape_Type NON_DROP
    Pixel_Area (0 573)
    Directory .
    Subtitle final
    Display_Area (0 2 719 575)
    Contrast (15 15 15 0)

    SP_NUMBER START END FILE_NAME
    Color (1 3 0 9)
    Contrast (4 15 0 15)

    0001 00:03:02:12 00:03:05:02 final_0001.bmp
    Color (12 15 0 9)
    Contrast (15 15 0 15)

    0002 00:03:05:05 00:03:07:08 final_0002.bmp
    Color (12 2 0 14)
    0003 00:03:07:10 00:03:11:08 final_0003.bmp
    Color (1 3 0 9)
    Contrast (4 15 0 15)
    0004 00:03:11:16 00:03:14:11 final_0004.bmp
    Color (3 2 0 3)
    Contrast (15 15 0 15)
    0005 00:03:15:05 00:03:17:07 final_0005.bmp
    Color (9 2 0 15)
    0006 00:03:17:10 00:03:21:01 final_0006.bmp
    Color (1 3 0 9)
    Contrast (4 15 0 15)
    0007 00:03:21:03 00:03:23:03 final_0007.bmp
     

    The lines in red above caused the wrong subtitle used. So modify it to something like:
     
    st_format 2
    Display_Start non_forced
    TV_Type PAL
    Tape_Type NON_DROP
    Pixel_Area (0 573)
    Directory .
    Subtitle final-2
    Display_Area (0 2 719 575)
    Contrast (15 15 0 15)
    Color (1 2 0 3)

    SP_NUMBER START END FILE_NAME
    0001 00:03:02:12 00:03:05:02 final-2_0001.bmp
    0002 00:03:05:05 00:03:07:08 final-2_0002.bmp
    0003 00:03:07:10 00:03:11:08 final-2_0003.bmp
    0004 00:03:11:16 00:03:14:11 final-2_0004.bmp
    0005 00:03:15:05 00:03:17:07 final-2_0005.bmp
    0006 00:03:17:10 00:03:21:01 final-2_0006.bmp
    0007 00:03:21:03 00:03:23:03 final-2_0007.bmp
    0008 00:03:23:08 00:03:27:00 final-2_0008.bmp
    0009 00:03:27:12 00:03:29:13 final-2_0009.bmp
    0010 00:03:29:15 00:03:30:23 final-2_0010.bmp
    0011 00:03:37:06 00:03:40:14 final-2_0011.bmp
    0012 00:03:40:16 00:03:41:21 final-2_0012.bmp
    0013 00:03:44:09 00:03:47:06 final-2_0013.bmp
    0014 00:03:47:09 00:03:50:01 final-2_0014.bmp
    0015 00:03:50:02 00:03:51:02 final-2_0015.bmp
    0016 00:03:51:04 00:03:53:08 final-2_0016.bmp
    ...

    Note: index 0 is the transparent color.

  5. Download SON2VOBSUB. Open the final.son. Change the height to 576.



    Click Convert.
     
  6. Reopen final.idx with subresync. The subtitle is fixed.

     

 

2014年12月20日 星期六

How to convert TV program to mkv file with subtitle and everything?

This is an example recorded with Magic TV recorder. The movie recorded is "Life of Pi".

  1. Save the recorded program in a USB stick. Copy the *.ts file to d:\temp  and rename it to Pi.ts
     
  2. Use  Handbrake to convert it to a MKV file.

    • De-interlace

       
    • Add all the audio's

       
    • Destination set to "d:\temp\Pi.mkv"
       
    • Start convert.
     
  3. Subtitle handling. Download Project X - DVB demux Tool

    • Drag d:\temp\Pi.ts to it.
       
       
    • Goto PreSettings menu. Choose only to output subtitle:


       
    • Subtitle settings:


       
    • Start convert by clicking "Quick start" and you should get the following files:

      Pi.sup.idx, Pi.sup.sub, Pi-02.sup.idx, Pi-02-sup.sub
       
     
  4. Fix the problem (color and time) of the subtitles. Download VobSub.
     
    • Open SubResync under VobSub. Drag Pi.sup.idx to it. The subtitle color is not correct and the subtitle is not clear.

       
    • Open P1.sup.idx with Notepad. The color index is:
       
      ...
      time offset: 0
      forced subs: OFF
      palette: 000060, 2b2b2b, 2c2c2c, 535353, 353535, 414141, 636363, 7d7d7d, c9c9c9, 8f8f8f, dbdbdb, a9a9a9, ebebeb, 9c9c9c, b8b8b8, 2b2b2b
      custom colors: OFF, tridx: 1000, colors: 600000, 101010, ffffff, a9a9a9
      langidx: 0
      id: --, index: 0

      ....

      By experiment, it is noted that the color marked in red above are the outline of the characters. Suggest to change it to pure black 000000.
      Change the rest to white (ffffffff), i.e.

      palette: 000000, 000000, 000000, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, ffffff, 000000

       
       

    • It is also noted that the timestamp of the subtitle is incorrect.
      Example the first valid subtitle extracted is at 00:09:57.807


      But it actually happens at 00:05:52.500 in the movie (by manually playing the P1.mkv file generated)
      To fix it, double right click the circle of the subtitle item until it becomes a download triangle.
      And type in the correct time.


         
      Save the subtitle as Pi-1-final.idx / sub.

       
    • Do the same to other subtitle Pi-02.sup.idx/sub. Save as Pi-2-final.idx/sub

       
  5. Put the subtitle in the P1mkv file. Download mkvmerge
     
    • Open it. Add Pi-1-final.idx/sub Pi-2-final.idx/sub

       
    • Start muxing as P1-subtitled.mkv
       
    • The final movie has everything: