[FFmpeg-trac] #4344(undetermined:new): XSUBs are too low in PAL video, on PS3

FFmpeg trac at avcodec.org
Fri Sep 16 04:20:35 EEST 2016


#4344: XSUBs are too low in PAL video, on PS3
-------------------------------------+-------------------------------------
             Reporter:  edumj        |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
              Version:  unspecified  |  undetermined
             Keywords:  xsub         |               Resolution:
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------

Comment (by edumj):

 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.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/4344#comment:6>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list