Opened 9 years ago

Last modified 7 years ago

#4344 new defect

XSUBs are too low in PAL video, on PS3

Reported by: edumj Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords: xsub
Cc: edumj Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Hi,

I'm making test with subtitles, and when I try to convert a PAL VOB to Xvid with embed subs (idx/sub to xsub) it looks ok in VLC, but stretched and off the screen in PS3.
It seems that only happens with videos with height over 480 pixels, because 720x480 subs are ok in PS3.
It's like the PS3 thinks the bitmap subtitle are 720x480 and stretches them to 720x576, so lower subs are off the screen.

Does the "-scodec xsub" encoder has any options?? I didn't find any info about xsub encoder, nor any parameters in FFMPEG documentation.
Are the bitmaps fullscreen or clipped? Is there a way to set position of subs?

It's like the bitmaps are 720x576 but marked somewhere as 720x480??

Summary of the bug:
How to reproduce:

ffmpeg -i input -scodec xsub output
ffmpeg versión N-70148-g418be7c
built with gcc 4.9.2 (GCC)

Attachments (1)

VTS_01_1 720x576_fixed_res.avi (2.3 MB ) - added by Carl Eugen Hoyos 8 years ago.

Change History (20)

comment:1 by Cigaes, 9 years ago

Currently, FFmpeg has almost nothing to manipulate the contents of subtitles (either bitmap or text, for that matter). If your source had a certain resolution, then most likely the output file will have subtitles with the same resolution, and there are no options to change that.

comment:2 by edumj, 9 years ago

I don't know if it's a bug of DivX subtitles, because I remember also happened with AVIAddXSubs, but it can change the Vertical Position of subtitles.

But, in the source code https://www.ffmpeg.org/doxygen/0.6/xsubenc_8c-source.html I think there are x, y, width and height parameters. It should be possible to change them, although subs may be higher in VLC, but they will look ok in PS3.

comment:3 by edumj, 8 years ago

With DivXMux.exe the subs are Ok, and it always makes Subtitle Track of 640x480 with any video resolution (like 720x540). May be that's why subs are too low if ffmpeg takes 720x576 as the sub resolution, when xsubs should be always 640x480.

There should be some way of passing xsub_encode fuction width and height parameters (and not let it take video source resolution) or just make xsubs always 640x480 like DivXMux does.

PD: It doesn't happen only in PS3, also in TV's and DVD's.

Last edited 8 years ago by edumj (previous) (diff)

comment:4 by Carl Eugen Hoyos, 8 years ago

Cc: edumj added
Keywords: dxsb removed

If you want to help with this ticket, please provide the FFmpeg command line that produces the incorrect output together with the complete, uncut console output (and point to the input sample) and, if possible, a "correct" output from the same source.

comment:5 by edumj, 8 years ago

Ok, I will, but I found this sample in your samples directory https://samples.ffmpeg.org/sub/small.divx and they have the same problem: ok in VLC, but too low in TV (half off the screen).

comment:6 by edumj, 8 years ago

Ok, I found this VOB in yours sample folder:

https://samples.ffmpeg.org/sub/starwarssub2.vob

It's PAL and has lots of Vobsubs.

I convert it to AVI, scaling video to 720x400 (with scale filter) and embeding XSUBs with this:

"ffmpeg.exe" -palette "000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,111111,ffffff,000000" -i "starwarssub2.vob" -map 0:v -map 0:a:0 -map 0:s:1 -scodec xsub -f avi -c:v libxvid -b:v 1500k -vtag XVID -c:a libmp3lame -b:a 128k -vf scale=720:400,setsar=sar=1/1 "starwarssub2 a xsub, scale 720x400.avi"

This is the output:

ffmpeg version N-81452-g01aee81 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --

enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --

enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --

enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --

enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-

libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 29.100 / 55. 29.100
  libavcodec     57. 54.100 / 57. 54.100
  libavformat    57. 48.100 / 57. 48.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 54.100 /  6. 54.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mpeg, from 'starwarssub2.vob':
  Duration: 00:00:39.35, start: 2891.089167, bitrate: 7702 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, bt470bg), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x28]: Subtitle: dvd_subtitle
    Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
    Stream #0:3[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
    Stream #0:4[0x82]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:5[0x20]: Subtitle: dvd_subtitle
    Stream #0:6[0x21]: Subtitle: dvd_subtitle
    Stream #0:7[0x22]: Subtitle: dvd_subtitle
    Stream #0:8[0x23]: Subtitle: dvd_subtitle
    Stream #0:9[0x24]: Subtitle: dvd_subtitle
    Stream #0:10[0x25]: Subtitle: dvd_subtitle
    Stream #0:11[0x26]: Subtitle: dvd_subtitle
    Stream #0:12[0x27]: Subtitle: dvd_subtitle
    Stream #0:13[0x29]: Subtitle: dvd_subtitle
    Stream #0:14[0x2a]: Subtitle: dvd_subtitle
    Stream #0:15[0x2b]: Subtitle: dvd_subtitle
    Stream #0:16[0x2c]: Subtitle: dvd_subtitle
    Stream #0:17[0x2d]: Subtitle: dvd_subtitle
    Stream #0:18[0x2e]: Subtitle: dvd_subtitle
    Stream #0:19[0x2f]: Subtitle: dvd_subtitle
[avi @ 051417c0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 2 times
[null @ 049090e0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 1 times
Output #0, avi, to 'starwarssub2 a xsub, scale 720x400.avi':
  Metadata:
    ISFT            : Lavf57.48.100
    Stream #0:0: Video: mpeg4 (libxvid) (XVID / 0x44495658), yuv420p, 720x400 [SAR 1:1 DAR 9:5], q=2-31, 1500 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.54.100 libxvid
    Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, delay 1105, padding 0, 128 kb/s
    Metadata:
      encoder         : Lavc57.54.100 libmp3lame
    Stream #0:2: Subtitle: xsub (DXSB / 0x42535844)
    Metadata:
      encoder         : Lavc57.54.100 xsub
Output #1, null, to 'nul':
  Metadata:
    encoder         : Lavf57.48.100
    Stream #1:0: Video: wrapped_avframe, yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.54.100 wrapped_avframe
    Stream #1:1: Audio: pcm_s16le, 48000 Hz, 5.1(side), s16, 4608 kb/s
    Metadata:
      encoder         : Lavc57.54.100 pcm_s16le
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> mpeg4 (libxvid))
  Stream #0:2 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
  Stream #0:5 -> #0:2 (dvd_subtitle (dvdsub) -> xsub (native))
  Stream #0:0 -> #1:0 (mpeg2video (native) -> wrapped_avframe (native))
  Stream #0:2 -> #1:1 (ac3 (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
[ac3 @ 04e3ad60] frame sync error
Error while decoding stream #0:2: Invalid data found when processing input
[null @ 049090e0] Application provided invalid, non monotonically increasing dts to muxer in stream 1: 1536 >= 1536
[libmp3lame @ 05338960] Queue input is backward in time
frame=  117 fps=0.0 q=3.0 q=-0.0 size=     230kB time=00:00:04.92 bitrate= 383.0kbits/s speed=9.81x    
frame=  234 fps=233 q=2.0 q=-0.0 size=    1781kB time=00:00:09.60 

bitrate=1519.8kbits/s speed=9.57x    
frame=  345 fps=229 q=3.0 q=-0.0 size=    2902kB time=00:00:14.04 bitrate=1693.5kbits/s speed=9.33x    
frame=  460 fps=229 q=3.0 q=-0.0 

size=    3434kB time=00:00:18.64 bitrate=1509.4kbits/s speed=9.28x    
frame=  574 fps=229 q=4.0 q=-0.0 size=    4818kB time=00:00:23.20 bitrate=1701.3kbits/s speed=9.25x    


frame=  692 fps=230 q=3.0 q=-0.0 size=    5492kB time=00:00:27.92 bitrate=1611.4kbits/s speed=9.27x    
frame=  809 fps=230 q=4.0 q=-0.0 size=    6280kB time=00:00:32.60 

bitrate=1578.1kbits/s speed=9.29x    
frame=  916 fps=228 q=3.0 q=-0.0 size=    7452kB time=00:00:36.88 bitrate=1655.3kbits/s speed=9.19x    
[mpeg2video @ 04e3a4c0] ac-tex 

damaged at 9 31
[mpeg2video @ 04e3a4c0] Warning MVs not available
[mpeg2video @ 04e3a4c0] concealing 225 DC, 225 AC, 225 MV errors in P frame
[ac3 @ 04e3ad60] incomplete frame
frame=  953 fps=228 q=3.0 Lq=-0.0 size=    7847kB time=00:00:38.36 bitrate=1675.8kbits/s speed=9.16x    
video:7509kB audio:22053kB subtitle:25kB other streams:0kB global headers:0kB muxing overhead: unknown

If I use the "-s" option to scale the video, like this:

"ffmpeg.exe" -palette "000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,111111,ffffff,000000" -i "starwarssub2.vob" -map 0:v -map 0:a:0 -map 0:s:1 -scodec xsub -f avi -c:v libxvid -b:v 1500k -vtag XVID -c:a libmp3lame -b:a 128k -s 720x400 "starwarssub2 a xsub, -s 720x400.avi"	

This is the output:

ffmpeg version N-81452-g01aee81 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --

enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --

enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --

enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --

enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-

libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 29.100 / 55. 29.100
  libavcodec     57. 54.100 / 57. 54.100
  libavformat    57. 48.100 / 57. 48.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 54.100 /  6. 54.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mpeg, from 'starwarssub2.vob':
  Duration: 00:00:39.35, start: 2891.089167, bitrate: 7702 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, bt470bg), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x28]: Subtitle: dvd_subtitle
    Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
    Stream #0:3[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
    Stream #0:4[0x82]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:5[0x20]: Subtitle: dvd_subtitle
    Stream #0:6[0x21]: Subtitle: dvd_subtitle
    Stream #0:7[0x22]: Subtitle: dvd_subtitle
    Stream #0:8[0x23]: Subtitle: dvd_subtitle
    Stream #0:9[0x24]: Subtitle: dvd_subtitle
    Stream #0:10[0x25]: Subtitle: dvd_subtitle
    Stream #0:11[0x26]: Subtitle: dvd_subtitle
    Stream #0:12[0x27]: Subtitle: dvd_subtitle
    Stream #0:13[0x29]: Subtitle: dvd_subtitle
    Stream #0:14[0x2a]: Subtitle: dvd_subtitle
    Stream #0:15[0x2b]: Subtitle: dvd_subtitle
    Stream #0:16[0x2c]: Subtitle: dvd_subtitle
    Stream #0:17[0x2d]: Subtitle: dvd_subtitle
    Stream #0:18[0x2e]: Subtitle: dvd_subtitle
    Stream #0:19[0x2f]: Subtitle: dvd_subtitle
[avi @ 05013da0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 2 times
[null @ 0500daa0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 1 times
Output #0, avi, to 'starwarssub2 a xsub, -s 720x400.avi':
  Metadata:
    ISFT            : Lavf57.48.100
    Stream #0:0: Video: mpeg4 (libxvid) (XVID / 0x44495658), yuv420p, 720x400 [SAR 80:81 DAR 16:9], q=2-31, 1500 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.54.100 libxvid
    Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, delay 1105, padding 0, 128 kb/s
    Metadata:
      encoder         : Lavc57.54.100 libmp3lame
    Stream #0:2: Subtitle: xsub (DXSB / 0x42535844), 720x400
    Metadata:
      encoder         : Lavc57.54.100 xsub
Output #1, null, to 'nul':
  Metadata:
    encoder         : Lavf57.48.100
    Stream #1:0: Video: wrapped_avframe, yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.54.100 wrapped_avframe
    Stream #1:1: Audio: pcm_s16le, 48000 Hz, 5.1(side), s16, 4608 kb/s
    Metadata:
      encoder         : Lavc57.54.100 pcm_s16le
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> mpeg4 (libxvid))
  Stream #0:2 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
  Stream #0:5 -> #0:2 (dvd_subtitle (dvdsub) -> xsub (native))
  Stream #0:0 -> #1:0 (mpeg2video (native) -> wrapped_avframe (native))
  Stream #0:2 -> #1:1 (ac3 (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
[ac3 @ 05009e20] frame sync error
Error while decoding stream #0:2: Invalid data found when processing input
[null @ 0500daa0] Application provided invalid, non monotonically increasing dts to muxer in stream 1: 1536 >= 1536
[libmp3lame @ 055138a0] Queue input is backward in time
frame=  117 fps=0.0 q=3.0 q=-0.0 size=     230kB time=00:00:04.92 bitrate= 383.0kbits/s speed=9.83x    
frame=  230 fps=230 q=3.0 q=-0.0 size=    1781kB time=00:00:09.44 

bitrate=1545.6kbits/s speed=9.43x    
frame=  341 fps=227 q=3.0 q=-0.0 size=    2861kB time=00:00:13.88 bitrate=1688.5kbits/s speed=9.24x    
frame=  453 fps=226 q=3.0 q=-0.0 

size=    3434kB time=00:00:18.36 bitrate=1532.4kbits/s speed=9.16x    
frame=  566 fps=226 q=4.0 q=-0.0 size=    4753kB time=00:00:22.91 bitrate=1699.5kbits/s speed=9.15x    


frame=  681 fps=226 q=4.0 q=-0.0 size=    5492kB time=00:00:27.48 bitrate=1637.2kbits/s speed=9.14x    
frame=  796 fps=227 q=4.0 q=-0.0 size=    6280kB time=00:00:32.08 

bitrate=1603.7kbits/s speed=9.14x    
frame=  905 fps=226 q=3.0 q=-0.0 size=    6969kB time=00:00:36.44 bitrate=1566.8kbits/s speed=9.09x    
[mpeg2video @ 050095a0] ac-tex 

damaged at 9 31
[mpeg2video @ 050095a0] Warning MVs not available
[mpeg2video @ 050095a0] concealing 225 DC, 225 AC, 225 MV errors in P frame
[ac3 @ 05009e20] incomplete frame
frame=  953 fps=225 q=3.0 Lq=-0.0 size=    7847kB time=00:00:38.36 bitrate=1675.8kbits/s speed=9.05x    
video:7509kB audio:22053kB subtitle:25kB other streams:0kB global headers:0kB muxing overhead: unknown

Appart from the fact that with "-s", setsar filter doesn't seem to work, the only difference I see in the output is:

with -s option:

Stream #0:2: Subtitle: xsub (DXSB / 0x42535844), 720x400

with scale filter:

Stream #0:2: Subtitle: xsub (DXSB / 0x42535844)

Does the -s option try to scale subtitles?

Because the subtitles looks the same (only looks different in VLC, and only if I don't scale video). But all of them looks the same and are too low (half off the screen) in TV.

PD: That doesn't happen with IDX/SUB createad with TXT2Vobsub, neither with NTSC DVDs, so it seems to happen only with PAL DVDs.

comment:7 by Carl Eugen Hoyos, 8 years ago

Please provide a "correct" variant of the same file.

comment:8 by edumj, 8 years ago

I made this with Divxmux starwarssub2 (.vob).divx but using different IDX/SUB, because without IFO the only way to extract Vobsub from a VOB, is with Mencoder, and with IDX/SUB extracted by Mencoder, DivxMux freezes!

If you want the exact subs, this is another test with a PAL DVD:

"%~dps0\ffmpeg" -palette "ffffff,000000,444444,ffffff,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000" -i "%~1" -map 0:v -map 0:a:0 -map 0:s:2 -scodec xsub -t 60 -f avi -c:v libxvid -b:v 1500k -vtag XVID -c:a libmp3lame -b:a 128k "%~dps0\%~n1 720x576.avi"

And the output:

ffmpeg version N-81452-g01aee81 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --

enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --

enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --

enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --

enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-

libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 29.100 / 55. 29.100
  libavcodec     57. 54.100 / 57. 54.100
  libavformat    57. 48.100 / 57. 48.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 54.100 /  6. 54.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mpeg, from 'H:\SEINFELD_BONUS_DISC\VIDEO_TS\VTS_01_1.VOB':
  Duration: 00:27:05.88, start: 0.049756, bitrate: 5283 kb/s
    Stream #0:0[0x1bf]: Data: dvd_nav_packet
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 16:15 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:3[0x25]: Subtitle: dvd_subtitle
    Stream #0:4[0x24]: Subtitle: dvd_subtitle
    Stream #0:5[0x23]: Subtitle: dvd_subtitle
    Stream #0:6[0x22]: Subtitle: dvd_subtitle
    Stream #0:7[0x21]: Subtitle: dvd_subtitle
    Stream #0:8[0x20]: Subtitle: dvd_subtitle
[avi @ 05005cc0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 2 times
[null @ 05004cc0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 1 times
Output #0, avi, to 'E:\MISDOC~1\CONVER~1\_PACON~1\MEDIAI~1\FFD8CF~1\DVDAXS~1\CONDIV~1\\VTS_01_1 720x576 ffmpeg.avi':
  Metadata:
    ISFT            : Lavf57.48.100
    Stream #0:0: Video: mpeg4 (libxvid) (XVID / 0x44495658), yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 1500 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.54.100 libxvid
    Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, delay 1105, padding 0, 128 kb/s
    Metadata:
      encoder         : Lavc57.54.100 libmp3lame
    Stream #0:2: Subtitle: xsub (DXSB / 0x42535844)
    Metadata:
      encoder         : Lavc57.54.100 xsub
Output #1, null, to 'nul':
  Metadata:
    encoder         : Lavf57.48.100
    Stream #1:0: Video: wrapped_avframe, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.54.100 wrapped_avframe
    Stream #1:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      encoder         : Lavc57.54.100 pcm_s16le
Stream mapping:
  Stream #0:1 -> #0:0 (mpeg2video (native) -> mpeg4 (libxvid))
  Stream #0:2 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
  Stream #0:5 -> #0:2 (dvd_subtitle (dvdsub) -> xsub (native))
  Stream #0:1 -> #1:0 (mpeg2video (native) -> wrapped_avframe (native))
  Stream #0:2 -> #1:1 (ac3 (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
frame=  112 fps=0.0 q=5.0 q=-0.0 size=     712kB time=00:00:04.51 bitrate=1292.8kbits/s speed=9.02x    
frame=  207 fps=207 q=5.0 q=-0.0 size=    1772kB time=00:00:08.28 bitrate=1751.2kbits/s speed=8.28x    
frame=  296 fps=197 q=5.0 q=-0.0 size=    1772kB time=00:00:11.84 bitrate=1225.9kbits/s speed=7.87x    
frame=  392 fps=195 q=5.0 q=-0.0 size=    3389kB time=00:00:15.68 bitrate=1770.4kbits/s speed=7.81x    
frame=  486 fps=194 q=4.0 q=-0.0 size=    4150kB time=00:00:19.45 bitrate=1747.4kbits/s speed=7.75x    
frame=  583 fps=194 q=5.0 q=-0.0 size=    4184kB time=00:00:23.32 bitrate=1469.3kbits/s speed=7.75x    
frame=  701 fps=200 q=5.0 q=-0.0 size=    5763kB time=00:00:28.06 bitrate=1682.2kbits/s speed=7.99x    
frame=  812 fps=202 q=4.0 q=-0.0 size=    6638kB time=00:00:32.48 bitrate=1674.3kbits/s speed=8.09x    
frame=  924 fps=205 q=4.0 q=-0.0 size=    7215kB time=00:00:37.02 bitrate=1596.4kbits/s speed= 8.2x    
frame= 1038 fps=207 q=3.0 q=-0.0 size=    8353kB time=00:00:41.56 bitrate=1646.2kbits/s speed=8.29x    
frame= 1153 fps=209 q=4.0 q=-0.0 size=    9085kB time=00:00:46.12 bitrate=1613.7kbits/s speed=8.36x    
frame= 1270 fps=211 q=3.0 q=-0.0 size=    9628kB time=00:00:50.84 bitrate=1551.1kbits/s speed=8.45x    
frame= 1392 fps=214 q=3.0 q=-0.0 size=   10901kB time=00:00:55.68 bitrate=1603.8kbits/s speed=8.54x    
frame= 1500 fps=214 q=4.0 q=-0.0 size=   11791kB time=00:01:03.92 bitrate=1511.2kbits/s speed=9.11x    
frame= 1500 fps=199 q=4.0 q=-0.0 size=   11791kB time=00:01:45.56 bitrate= 915.1kbits/s speed=  14x    
frame= 1500 fps=187 q=4.0 q=-0.0 size=   11791kB time=00:02:20.20 bitrate= 689.0kbits/s speed=17.5x    
frame= 1500 fps=176 q=4.0 q=-0.0 size=   11791kB time=00:03:10.94 bitrate= 505.9kbits/s speed=22.4x    
frame= 1500 fps=166 q=4.0 q=-0.0 size=   11791kB time=00:04:01.08 bitrate= 400.7kbits/s speed=26.7x    
frame= 1500 fps=158 q=4.0 q=-0.0 size=   11791kB time=00:04:38.88 bitrate= 346.4kbits/s speed=29.3x    
frame= 1500 fps=150 q=4.0 q=-0.0 size=   11791kB time=00:05:27.28 bitrate= 295.1kbits/s speed=32.7x    
frame= 1500 fps=143 q=4.0 q=-0.0 size=   11791kB time=00:06:23.48 bitrate= 251.9kbits/s speed=36.4x    
frame= 1500 fps=136 q=4.0 q=-0.0 size=   11791kB time=00:07:03.44 bitrate= 228.1kbits/s speed=38.4x    
frame= 1500 fps=130 q=4.0 q=-0.0 size=   11791kB time=00:07:48.80 bitrate= 206.0kbits/s speed=40.7x    
frame= 1500 fps=125 q=4.0 q=-0.0 size=   11791kB time=00:08:27.60 bitrate= 190.3kbits/s speed=42.2x    
frame= 1500 fps=120 q=4.0 q=-0.0 size=   11791kB time=00:09:19.00 bitrate= 172.8kbits/s speed=44.6x    
frame= 1500 fps=115 q=4.0 q=-0.0 size=   11791kB time=00:10:11.61 bitrate= 157.9kbits/s speed=  47x    
frame= 1500 fps=111 q=4.0 q=-0.0 size=   11791kB time=00:11:05.36 bitrate= 145.2kbits/s speed=49.2x    
frame= 1500 fps=107 q=4.0 q=-0.0 size=   11791kB time=00:11:45.92 bitrate= 136.8kbits/s speed=50.3x    
frame= 1500 fps=103 q=4.0 q=-0.0 size=   11791kB time=00:12:27.74 bitrate= 129.2kbits/s speed=51.5x    
frame= 1500 fps=100 q=4.0 q=-0.0 size=   11791kB time=00:13:15.16 bitrate= 121.5kbits/s speed=52.9x    
frame= 1500 fps= 97 q=4.0 q=-0.0 size=   11791kB time=00:14:03.44 bitrate= 114.5kbits/s speed=54.3x    
frame= 1500 fps= 94 q=4.0 q=-0.0 size=   11791kB time=00:14:46.24 bitrate= 109.0kbits/s speed=55.3x    
frame= 1500 fps= 91 q=4.0 q=-0.0 size=   11791kB time=00:15:44.16 bitrate= 102.3kbits/s speed=57.1x    
frame= 1500 fps= 88 q=4.0 q=-0.0 size=   11791kB time=00:16:30.97 bitrate=  97.5kbits/s speed=58.2x    
frame= 1500 fps= 86 q=4.0 q=-0.0 size=   11791kB time=00:17:26.14 bitrate=  92.3kbits/s speed=59.7x    
frame= 1500 fps= 83 q=4.0 q=-0.0 size=   11791kB time=00:18:23.08 bitrate=  87.6kbits/s speed=61.2x    
frame= 1500 fps= 81 q=4.0 q=-0.0 size=   11791kB time=00:19:18.68 bitrate=  83.4kbits/s speed=62.6x    
frame= 1500 fps= 79 q=4.0 q=-0.0 size=   11791kB time=00:20:03.24 bitrate=  80.3kbits/s speed=63.2x    
frame= 1500 fps= 77 q=4.0 q=-0.0 size=   11791kB time=00:20:48.00 bitrate=  77.4kbits/s speed=63.9x    
frame= 1500 fps= 75 q=4.0 q=-0.0 size=   11791kB time=00:21:38.04 bitrate=  74.4kbits/s speed=64.8x    
frame= 1500 fps= 73 q=4.0 q=-0.0 size=   11791kB time=00:22:36.08 bitrate=  71.2kbits/s speed=66.1x    
frame= 1500 fps= 71 q=4.0 q=-0.0 size=   11791kB time=00:23:22.56 bitrate=  68.9kbits/s speed=66.7x    
frame= 1500 fps= 70 q=4.0 q=-0.0 size=   11791kB time=00:24:11.08 bitrate=  66.6kbits/s speed=67.4x    
frame= 1500 fps= 68 q=4.0 q=-0.0 size=   11791kB time=00:24:55.20 bitrate=  64.6kbits/s speed=67.9x    
frame= 1500 fps= 67 q=4.0 q=-0.0 size=   11791kB time=00:25:39.29 bitrate=  62.8kbits/s speed=68.3x    
frame= 1500 fps= 65 q=4.0 q=-0.0 size=   11791kB time=00:26:27.92 bitrate=  60.8kbits/s speed=  69x    
[mpeg2video @ 050c6d00] ac-tex damaged at 33 11
[mpeg2video @ 050c6d00] Warning MVs not available
[mpeg2video @ 050c6d00] concealing 1125 DC, 1125 AC, 1125 MV errors in I frame
[ac3 @ 050c7160] incomplete frame
frame= 1500 fps= 64 q=4.0 Lq=-0.0 size=   12203kB time=00:27:05.88 bitrate=  61.5kbits/s speed=69.2x    
video:26342kB audio:305762kB subtitle:56kB other streams:0kB global headers:0kB muxing overhead: unknown

And the subs are bad:

VTS_01_1 720x576 ffmpeg.avi -> Bad! (ffmpeg+xsub)

But, if I extract Vobsubs with PgcDemux in .sup format, convert .sup to idx/sub with sup2vobsub and mux into .avi with DivxMux, the subs are Ok:

VTS_01_1 720x576 paDivxMux.avi -> AVI without subs (ffmpeg)

VTS_01_1 720x576 DivxMux.avi -> Ok! (ffmpeg+PgcDemux+sup2vobsub+divxmux)

Convert to AVI with ffmpeg (without subs):

"%~dps0\ffmpeg" -i "%~1" -map 0:v -map 0:a:0 -t 60 -f avi -c:v libxvid -b:v 1500k -vtag XVID -c:a libmp3lame -b:a 128k "%~dps0\%~n1 720x576 paDivxMux.avi"

Output from ffmpeg:

ffmpeg version N-81452-g01aee81 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --

enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --

enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --

enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --

enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-

libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 29.100 / 55. 29.100
  libavcodec     57. 54.100 / 57. 54.100
  libavformat    57. 48.100 / 57. 48.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 54.100 /  6. 54.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mpeg, from 'H:\SEINFELD_BONUS_DISC\VIDEO_TS\VTS_01_1.VOB':
  Duration: 00:27:05.88, start: 0.049756, bitrate: 5283 kb/s
    Stream #0:0[0x1bf]: Data: dvd_nav_packet
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 16:15 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:3[0x25]: Subtitle: dvd_subtitle
    Stream #0:4[0x24]: Subtitle: dvd_subtitle
    Stream #0:5[0x23]: Subtitle: dvd_subtitle
    Stream #0:6[0x22]: Subtitle: dvd_subtitle
    Stream #0:7[0x21]: Subtitle: dvd_subtitle
    Stream #0:8[0x20]: Subtitle: dvd_subtitle
[avi @ 04e95ee0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 1 times
[null @ 0498ed60] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 1 times
Output #0, avi, to 'E:\MISDOC~1\CONVER~1\_PACON~1\MEDIAI~1\FFD8CF~1\DVDAXS~1\CONDIV~1\\VTS_01_1 720x576 paDivxMux.avi':
  Metadata:
    ISFT            : Lavf57.48.100
    Stream #0:0: Video: mpeg4 (libxvid) (XVID / 0x44495658), yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 1500 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.54.100 libxvid
    Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, delay 1105, padding 0, 128 kb/s
    Metadata:
      encoder         : Lavc57.54.100 libmp3lame
Output #1, null, to 'nul':
  Metadata:
    encoder         : Lavf57.48.100
    Stream #1:0: Video: wrapped_avframe, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.54.100 wrapped_avframe
    Stream #1:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      encoder         : Lavc57.54.100 pcm_s16le
Stream mapping:
  Stream #0:1 -> #0:0 (mpeg2video (native) -> mpeg4 (libxvid))
  Stream #0:2 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
  Stream #0:1 -> #1:0 (mpeg2video (native) -> wrapped_avframe (native))
  Stream #0:2 -> #1:1 (ac3 (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
frame=   97 fps=0.0 q=4.0 q=-0.0 size=     756kB time=00:00:03.90 bitrate=1586.0kbits/s speed=7.81x    
frame=  193 fps=192 q=5.0 q=-0.0 size=    1648kB time=00:00:07.72 bitrate=1749.0kbits/s speed= 7.7x    
frame=  287 fps=191 q=5.0 q=-0.0 size=    2459kB time=00:00:11.48 bitrate=1754.8kbits/s speed=7.62x    
frame=  380 fps=189 q=5.0 q=-0.0 size=    3280kB time=00:00:15.20 bitrate=1768.0kbits/s speed=7.57x    
frame=  473 fps=188 q=5.0 q=-0.0 size=    4029kB time=00:00:18.92 bitrate=1744.7kbits/s speed=7.54x    
frame=  571 fps=190 q=8.0 q=-0.0 size=    4833kB time=00:00:22.88 bitrate=1730.4kbits/s speed= 7.6x    
frame=  689 fps=196 q=5.0 q=-0.0 size=    5651kB time=00:00:27.56 bitrate=1679.9kbits/s speed=7.85x    
frame=  798 fps=199 q=4.0 q=-0.0 size=    6550kB time=00:00:31.93 bitrate=1680.2kbits/s speed=7.96x    
frame=  914 fps=202 q=3.0 q=-0.0 size=    7425kB time=00:00:36.60 bitrate=1661.6kbits/s speed=8.11x    
frame= 1025 fps=204 q=4.0 q=-0.0 size=    8336kB time=00:00:41.05 bitrate=1663.4kbits/s speed=8.19x    
frame= 1140 fps=207 q=3.0 q=-0.0 size=    9243kB time=00:00:45.66 bitrate=1658.2kbits/s speed=8.28x    
frame= 1259 fps=209 q=3.0 q=-0.0 size=   10174kB time=00:00:50.36 bitrate=1654.7kbits/s speed=8.37x    
frame= 1377 fps=211 q=3.0 q=-0.0 size=   11087kB time=00:00:55.10 bitrate=1648.3kbits/s speed=8.45x    
frame= 1495 fps=213 q=3.0 q=-0.0 size=   12020kB time=00:00:59.80 bitrate=1646.4kbits/s speed=8.52x    
frame= 1500 fps=199 q=4.0 q=-0.0 size=   12067kB time=00:01:41.32 bitrate= 975.6kbits/s speed=13.5x    
frame= 1500 fps=187 q=4.0 q=-0.0 size=   12067kB time=00:02:18.40 bitrate= 714.2kbits/s speed=17.3x    
frame= 1500 fps=176 q=4.0 q=-0.0 size=   12067kB time=00:03:06.11 bitrate= 531.1kbits/s speed=21.8x    
frame= 1500 fps=166 q=4.0 q=-0.0 size=   12067kB time=00:03:59.72 bitrate= 412.4kbits/s speed=26.6x    
frame= 1500 fps=158 q=4.0 q=-0.0 size=   12067kB time=00:04:39.64 bitrate= 353.5kbits/s speed=29.4x    
frame= 1500 fps=150 q=4.0 q=-0.0 size=   12067kB time=00:05:29.72 bitrate= 299.8kbits/s speed=32.9x    
frame= 1500 fps=143 q=4.0 q=-0.0 size=   12067kB time=00:06:27.40 bitrate= 255.2kbits/s speed=36.8x    
frame= 1500 fps=136 q=4.0 q=-0.0 size=   12067kB time=00:07:07.36 bitrate= 231.3kbits/s speed=38.8x    
frame= 1500 fps=130 q=4.0 q=-0.0 size=   12067kB time=00:07:52.57 bitrate= 209.2kbits/s speed=  41x    
frame= 1500 fps=125 q=4.0 q=-0.0 size=   12067kB time=00:08:32.08 bitrate= 193.0kbits/s speed=42.6x    
frame= 1500 fps=120 q=4.0 q=-0.0 size=   12067kB time=00:09:26.08 bitrate= 174.6kbits/s speed=45.2x    
frame= 1500 fps=115 q=4.0 q=-0.0 size=   12067kB time=00:10:19.68 bitrate= 159.5kbits/s speed=47.6x    
frame= 1500 fps=111 q=4.0 q=-0.0 size=   12067kB time=00:11:12.84 bitrate= 146.9kbits/s speed=49.8x    
frame= 1500 fps=107 q=4.0 q=-0.0 size=   12067kB time=00:11:53.82 bitrate= 138.5kbits/s speed=50.9x    
frame= 1500 fps=103 q=4.0 q=-0.0 size=   12067kB time=00:12:38.44 bitrate= 130.3kbits/s speed=52.2x    
frame= 1500 fps=100 q=4.0 q=-0.0 size=   12067kB time=00:13:26.84 bitrate= 122.5kbits/s speed=53.7x    
frame= 1500 fps= 97 q=4.0 q=-0.0 size=   12067kB time=00:14:11.52 bitrate= 116.1kbits/s speed=54.9x    
frame= 1500 fps= 94 q=4.0 q=-0.0 size=   12067kB time=00:14:56.80 bitrate= 110.2kbits/s speed=  56x    
frame= 1500 fps= 91 q=4.0 q=-0.0 size=   12067kB time=00:15:52.60 bitrate= 103.8kbits/s speed=57.7x    
frame= 1500 fps= 88 q=4.0 q=-0.0 size=   12067kB time=00:16:34.64 bitrate=  99.4kbits/s speed=58.4x    
frame= 1500 fps= 86 q=4.0 q=-0.0 size=   12067kB time=00:17:26.52 bitrate=  94.5kbits/s speed=59.7x    
frame= 1500 fps= 83 q=4.0 q=-0.0 size=   12067kB time=00:18:16.04 bitrate=  90.2kbits/s speed=60.8x    
frame= 1500 fps= 81 q=4.0 q=-0.0 size=   12067kB time=00:19:09.21 bitrate=  86.0kbits/s speed=  62x    
frame= 1500 fps= 79 q=4.0 q=-0.0 size=   12067kB time=00:19:48.41 bitrate=  83.2kbits/s speed=62.5x    
frame= 1500 fps= 77 q=4.0 q=-0.0 size=   12067kB time=00:20:34.56 bitrate=  80.1kbits/s speed=63.2x    
frame= 1500 fps= 75 q=4.0 q=-0.0 size=   12067kB time=00:21:19.24 bitrate=  77.3kbits/s speed=63.9x    
frame= 1500 fps= 73 q=4.0 q=-0.0 size=   12067kB time=00:22:11.90 bitrate=  74.2kbits/s speed=64.9x    
frame= 1500 fps= 71 q=4.0 q=-0.0 size=   12067kB time=00:22:58.88 bitrate=  71.7kbits/s speed=65.6x    
frame= 1500 fps= 70 q=4.0 q=-0.0 size=   12067kB time=00:23:48.76 bitrate=  69.2kbits/s speed=66.4x    
frame= 1500 fps= 68 q=4.0 q=-0.0 size=   12067kB time=00:24:31.26 bitrate=  67.2kbits/s speed=66.8x    
frame= 1500 fps= 67 q=4.0 q=-0.0 size=   12067kB time=00:25:19.36 bitrate=  65.1kbits/s speed=67.4x    
frame= 1500 fps= 65 q=4.0 q=-0.0 size=   12067kB time=00:26:08.60 bitrate=  63.0kbits/s speed=68.1x    
frame= 1500 fps= 64 q=4.0 q=-0.0 size=   12067kB time=00:26:49.68 bitrate=  61.4kbits/s speed=68.4x    
[mpeg2video @ 04f528e0] ac-tex damaged at 33 11
[mpeg2video @ 04f528e0] Warning MVs not available
[mpeg2video @ 04f528e0] concealing 1125 DC, 1125 AC, 1125 MV errors in I frame
[ac3 @ 04f52d40] incomplete frame
frame= 1500 fps= 63 q=4.0 Lq=-0.0 size=   12142kB time=00:27:05.88 bitrate=  61.2kbits/s speed=68.6x    
video:26342kB audio:305762kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Last edited 8 years ago by Carl Eugen Hoyos (previous) (diff)

comment:9 by Carl Eugen Hoyos, 8 years ago

Please run the following two command lines and test the output files:

$ ffmpeg -i VTS_01_1\ 720x576\ DivxMux.avi -scodec copy -acodec copy -vcodec copy out1.avi
$ ffmpeg -i VTS_01_1\ 720x576\ DivxMux.avi -scodec xsub -acodec copy -vcodec copy out2.avi

How do they play compared with the input file?

comment:10 by edumj, 8 years ago

They are Ok. XSUBs keep same size and position as the input file.

I supose ffmpeg always keeps xsub original size (640x480 re-scaled by DivMux), but if vobsub has an original size of 720x576 (PAL DVD Subpictures) without re-scaling, they are too big for a xsub.

I think XSUBs where made not thinking on PAL... and only right resolutions are 640x480 or 720x480, because NTSC DVDs look Ok!

comment:11 by edumj, 8 years ago

One more strange thing:

With same IDX/SUB (made with Txt2Vobsub or extracted from NTSC DVDs) muxed with ffmpeg or divxmux, they look different in VLC (x and y position):

ffmpeg:
http://i47.photobucket.com/albums/f169/edumj/Starship_Troopers-ccextractor-xsub-ffmpeg%20720x480%20oacute%20720x576iquestiquest.png
divxmux:
http://i47.photobucket.com/albums/f169/edumj/Starship_Troopers-ccextractor-xsub-divxmux%20640x480.png

But in TV, only y position is different!

ffmpeg:
http://i47.photobucket.com/albums/f169/edumj/Starship_Troopers-ccextractor-xsub-ffmpeg%20720x480%20oacute%20720x576iquestiquest%20en%20TV.png
divxmux:
http://i47.photobucket.com/albums/f169/edumj/Starship_Troopers-ccextractor-xsub-divxmux%20640x480%20en%20TV.png

And they are the same size, even ffmpeg says they are 720x576:

Stream #0:2(es): Subtitle: xsub (DXSB / 0x42535844), 720x576 (default)

I don't know which size are really IDX/SUB made with TXT2Vobsub in .sub, but in .idx it says 720x576 (it's not reliable), and may be that's why ffmpeg says that?

ffmpeg:

"ffmpeg" -palette "000000,000000,ffffff,ffffff,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000" -i "ccextractor.idx"	-i "Starship_Troopers.vob" -f avi -c:v libxvid -b:v 1500k -vtag XVID -c:a libmp3lame -b:a 128k -c:s xsub "Starship_Troopers-ccextractor-xsub-ffmpeg.avi"

output:

ffmpeg version N-81452-g01aee81 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 29.100 / 55. 29.100
  libavcodec     57. 54.100 / 57. 54.100
  libavformat    57. 48.100 / 57. 48.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 54.100 /  6. 54.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, vobsub, from 'ccextractor.idx':
  Duration: N/A, bitrate: N/A
    Stream #0:0[0x0](es): Subtitle: dvd_subtitle, 720x576 (default)
Input #1, mpeg, from 'Starship_Troopers.vob':
  Duration: 00:00:51.30, start: 1986.626100, bitrate: 4618 kb/s
    Stream #1:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x480 [SAR 32:27 DAR 16:9], Closed Captions, 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #1:1[0x83]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #1:2[0x82]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #1:3[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #1:4[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
    Stream #1:5[0x20]: Subtitle: dvd_subtitle
    Stream #1:6[0x22]: Subtitle: dvd_subtitle
[avi @ 053171c0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 2 times
[null @ 02faa820] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 1 times
Output #0, avi, to 'Starship_Troopers-ccextractor-xsub-ffmpeg.avi':
  Metadata:
    ISFT            : Lavf57.48.100
    Stream #0:0: Video: mpeg4 (libxvid) (XVID / 0x44495658), yuv420p, 720x480 [SAR 32:27 DAR 16:9], q=2-31, 1500 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc57.54.100 libxvid
    Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, delay 1105, padding 0, 128 kb/s
    Metadata:
      encoder         : Lavc57.54.100 libmp3lame
    Stream #0:2(es): Subtitle: xsub (DXSB / 0x42535844), 720x576 (default)
    Metadata:
      encoder         : Lavc57.54.100 xsub
Output #1, null, to 'nul':
  Metadata:
    encoder         : Lavf57.48.100
    Stream #1:0: Video: wrapped_avframe, yuv420p, 720x480 [SAR 32:27 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc57.54.100 wrapped_avframe
    Stream #1:1: Audio: pcm_s16le, 48000 Hz, 5.1(side), s16, 4608 kb/s
    Metadata:
      encoder         : Lavc57.54.100 pcm_s16le
Stream mapping:
  Stream #1:0 -> #0:0 (mpeg2video (native) -> mpeg4 (libxvid))
  Stream #1:4 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
  Stream #0:0 -> #0:2 (dvd_subtitle (dvdsub) -> xsub (native))
  Stream #1:0 -> #1:0 (mpeg2video (native) -> wrapped_avframe (native))
  Stream #1:4 -> #1:1 (ac3 (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
[ac3 @ 050da280] frame sync error
Error while decoding stream #1:4: Invalid data found when processing input
[null @ 02faa820] Application provided invalid, non monotonically increasing dts to muxer in stream 1: 1891 >= 1891
[libmp3lame @ 050dc4c0] Queue input is backward in time
frame=   92 fps=0.0 q=6.0 q=-0.0 size=     667kB time=00:00:11.61 bitrate= 470.4kbits/s speed=23.2x    
frame=  181 fps=180 q=6.0 q=-0.0 size=    1284kB time=00:00:11.61 bitrate= 906.0kbits/s speed=11.6x    
frame=  268 fps=178 q=8.0 q=-0.0 size=    1982kB time=00:00:11.61 bitrate=1398.4kbits/s speed=7.71x    
[mpeg @ 02f8b300] New subtitle stream 1:7 at pos:8497166 and DTS:1999.51s
frame=  374 fps=186 q=4.0 q=-0.0 size=    2731kB time=00:00:22.48 bitrate= 994.7kbits/s speed=11.2x    
frame=  475 fps=189 q=8.0 q=-0.0 size=    3512kB time=00:00:22.48 bitrate=1279.3kbits/s speed=8.97x    
frame=  574 fps=191 q=9.0 q=-0.0 size=    4270kB time=00:00:30.76 bitrate=1137.2kbits/s speed=10.2x    
frame=  677 fps=193 q=9.0 q=-0.0 size=    5012kB time=00:00:30.76 bitrate=1334.6kbits/s speed=8.75x    
frame=  782 fps=195 q=4.0 q=-0.0 size=    5588kB time=00:00:35.93 bitrate=1273.8kbits/s speed=8.94x    
frame=  891 fps=197 q=5.0 q=-0.0 size=    6297kB time=00:00:38.90 bitrate=1325.9kbits/s speed=8.61x    
frame= 1001 fps=199 q=4.0 q=-0.0 size=    7041kB time=00:00:44.57 bitrate=1294.0kbits/s speed=8.88x    
frame= 1113 fps=202 q=5.0 q=-0.0 size=    7874kB time=00:00:47.24 bitrate=1365.2kbits/s speed=8.55x    
frame= 1220 fps=203 q=6.0 q=-0.0 size=    8371kB time=00:00:50.91 bitrate=1346.8kbits/s speed=8.45x    
[mpeg2video @ 050d9160] ac-tex damaged at 3 27
[mpeg2video @ 050d9160] Warning MVs not available
[mpeg2video @ 050d9160] concealing 135 DC, 135 AC, 135 MV errors in I frame
[ac3 @ 050da280] incomplete frame
frame= 1229 fps=202 q=6.0 Lq=-0.0 size=    8749kB time=00:00:51.31 bitrate=1396.6kbits/s speed=8.45x    
video:8279kB audio:29601kB subtitle:29kB other streams:0kB global headers:0kB muxing overhead: unknown

ccextractor.idx:

# VobSub index file, v7 (do not modify this line!)
#
# To repair desyncronization, you can insert gaps this way:
# (it usually happens after vob id changes)
#
#	 delay: [sign]hh:mm:ss:ms
#
# Where:
#	 [sign]: +, - (optional)
#	 hh: hours (0 <= hh)
#	 mm/ss: minutes/seconds (0 <= mm/ss <= 59)
#	 ms: milliseconds (0 <= ms <= 999)
#
#	 Note: You can' t position a sub before the previous with a negative value.
#
# You can also modify timestamps or delete a few subs you don' t like.
# Just make sure they stay in increasing order.


# Settings

# Original frame size
size: 720x576

# Origin, relative to the upper-left corner, can be overloaded by aligment
org: 0, 0

# Image scaling (hor,ver), origin is at the upper-left corner or at the alignment coord (x, y)
scale: 100%, 100%
# Alpha blending
alpha: 100%

# Smoothing for very blocky images (use OLD for no filtering)
smooth: OFF

# In millisecs
fadein/out: 0, 0

# Force subtitle placement relative to (org.x, org.y)

align: OFF at LEFT TOP

# for correcting non - progressive desync.(in millisecs or hh: mm: ss: ms)
# Note: not effective in DirectVobSub, use "delay: ..." instead.
time offset: 0

# on: displays only forced subtitles, OFF: shows everything
forced subs: OFF

# The original palette of the DVD
palette: 80807F, 008080, FF807F, 1D6BFF, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000

# Custom colors(transp idxs and the four colors)
custom colors: ON, tridx: 1000, colors: 0000FF, FFFFFF, 000000, 808080

# Language index in use
langidx: 0

# English
id: es, index: 0
# Decomment next line to activate alternative name in DirectVobSub / Windows Media Player 6.x
# alt: English
# Vob/Cell ID: 1, 1 (PTS: 0)
timestamp: 00:00:11:611, filepos: 000000000
timestamp: 00:00:14:982, filepos: 000001800
timestamp: 00:00:22:489, filepos: 000002800
timestamp: 00:00:30:764, filepos: 000003800
timestamp: 00:00:35:936, filepos: 000004800
timestamp: 00:00:38:906, filepos: 000006000
timestamp: 00:00:41:608, filepos: 000007000
timestamp: 00:00:44:577, filepos: 000008000
timestamp: 00:00:47:247, filepos: 000009000
timestamp: 00:00:49:283, filepos: 00000a000

So, nor divxmux neither ffmpeg resize subs? But some flag tells VLC to change position and size (sometimes they are stretched!), but PS3 or standalone players doesn't use them... and then why only changes vertical position??

PD: With PAL, it must be sup2vobsub who resizes PAL VobSubs to ???x???...

Last edited 8 years ago by edumj (previous) (diff)

by Carl Eugen Hoyos, 8 years ago

comment:12 by Carl Eugen Hoyos, 8 years ago

Does attached file show subtitles with correct size on your TV?

comment:13 by edumj, 8 years ago

No, I only see upper subtitles, lower gets cutted.

I'm pretty sure subtitles get cut at 480.

Last edited 8 years ago by edumj (previous) (diff)

comment:14 by Carl Eugen Hoyos, 8 years ago

Does your TV only allow playback of PAL and NTSC mpeg4 asp in avi or also random resolutions?

comment:15 by edumj, 8 years ago

Well, the PS3 allows AVIs with higher resolutions, I've tried with 1440x1080 and XSUBs, and the subs were very small... And any other resolutions (720x540, 700x400, 720x400, 640x... etc..)

I also tried with 2 LG DVD Players, and 3 different televisions (CRT, LCD, and 4K LG Smart TV) so, the problem it's not the TV nor the Standalone Players. It's something about XSUBs resolution specification.

Did you tested it in your TV? Mine are all PAL. Anyone can try if it happens also in NTSC Players?

I can make PS3 captures if you want.

Do you know how to extract bitmaps from .sub? Subrip doesn't seem to work very well with idx/sub, and I can't keep them full size (always cropped).

Also, I could author a NTSC DVD and a PAL DVD, and put 720x480 and 720x576 subpictures, for testing size or offset changes...

Last edited 8 years ago by edumj (previous) (diff)

comment:16 by edumj, 7 years ago

??

comment:17 by Carl Eugen Hoyos, 7 years ago

I wanted to ask you to test what happens if you put xsub subtitles into videos with both higher resolutions like 1440x1080 and much lower resolutions than pal or ntsc but I don't have command lines to test right now.

comment:18 by edumj, 7 years ago

Ok, with lower video resolutions (like 320x480 and 640x480) they are also cutted, and look exaclty the same size as with 720x576.

Wiht higher resolutions (like 1440x1080 and 1920x1080) they are full but smaller, because they are scaled down and top-center aligned (if I made them with DivMux they also scaled down, but appear in an upper position because of their 480 height)

I can make some captures if you want.

Txt2VobSub makes 720x576 and 720x480 IDX/SUB (acoording to "size" in .idx file), but I found out that they really are 720x576 always and they just get cutted when .idx says "size: 720x480" (because the lower parts of the bitmaps are empty and it's ok to cut at 480). I mean, they must know that the max height for XSUB is 480 and they don't put subtitles lower tan that.

I'll try what happens with DivXMux and full height 720x576 VobSub extracted with Mencoder, because when I extract them with PGCDemux and convert to idx/sub with sup2vobsub, upper subs go down and I don't know if DivXMux scales down to 640x480 or just aling bottom (but then the upper subs should be cutted!?)

comment:19 by edumj, 7 years ago

I've tested, and it seems that DivXMux does this:
1-Crop every bitmap (like SubRip).
2-Pad them to 640x480 (bottom center aligned).

VLC captures with a yellow drawbox to see subtitles full size:

DVD Subtitles extracted to IDX/SUB are 720x576:
http://i47.photobucket.com/albums/f169/edumj/IDX-SUB%20720x576.png

IDX/SUB Subtitles converted to XSUB with DivXMux are 640x480:
http://i47.photobucket.com/albums/f169/edumj/IDX-SUB%20to%20DivXMux%20640x480.png

You can see original upper subs go down with DivXMux because of the cropping an padding (but text is same size). They look not well bottom-centered in VLC, but ok in TV.

I don't know if ffmpeg can do this automatic cropping and padding to 640x480, but at least it could scale them down to 720x480 or 640x480 (or just "-1:480" to keep AR and because in TV they seem always top-centered, so no matter the width?).

Last edited 7 years ago by edumj (previous) (diff)
Note: See TracTickets for help on using tickets.