[FFmpeg-trac] #6013(undetermined:new): XSUBs end time ignored when overlaying as Hard Subs

FFmpeg trac at avcodec.org
Sat Dec 10 22:55:47 EET 2016


#6013: XSUBs end time ignored when overlaying as Hard Subs
-------------------------------------+-------------------------------------
             Reporter:  edumj        |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 When I convert XSUB to Hard Subs, they stay all the time on the screen,
 and only disappear when a new subtitle appears.
 It seems that "end time" for subtitles are ignored, so each subtitle is
 visible until next subtitle comes up (except with the last subtitle).

 It happens with XSUBs made with ffmpeg and also with DivxMux.

 You can reproduce it with this .divx sample:
 [https://samples.ffmpeg.org/sub/small.divx]
 and also converting this VOBs (with DVDSubs) to AVI (with XSUBs), and then
 overlay those XSUBs:
 [https://samples.ffmpeg.org/MPEG-VOB/ClosedCaptions/Starship_Troopers.vob]
 [https://samples.ffmpeg.org/sub/starwarssub2.vob]

 ffmpeg to make XSUBs (still off the screen with PAL VOBs...):
 {{{
 "%~dps0\ffmpeg" -palette
 "000000,444444,ffffff,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000,000000"
 -i "%~1" -map 0:v -map 0:a:0 -map 0:s:0 -scodec xsub -f avi -c:v libxvid
 -b:v 1500k -vtag XVID -c:a libmp3lame -b:a 128k "%~dps0\%~n1 XSUB.avi"
 }}}

 Full Output:
 {{{
 ffmpeg version N-81696-gd38dff8e 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. 57.100 / 57. 57.100
   libavformat    57. 49.100 / 57. 49.100
   libavdevice    57.  0.102 / 57.  0.102
   libavfilter     6. 62.100 /  6. 62.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 'C:\Users\Edumj\Videos\Pa Probar\VOB (NTSC) con
 Closed Captions\Starship_Troopers.vob':
   Duration: 00:00:51.30, start: 1986.626100, bitrate: 4618 kb/s
     Stream #0: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 #0:1[0x83]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
     Stream #0:2[0x82]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
     Stream #0:3[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
     Stream #0:4[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
     Stream #0:5[0x20]: Subtitle: dvd_subtitle
     Stream #0:6[0x22]: Subtitle: dvd_subtitle
 [avi @ 03037500] Using AVStream.codec to pass codec parameters to muxers
 is deprecated, use AVStream.codecpar instead.
     Last message repeated 2 times
 [null @ 02fa2380] Using AVStream.codec to pass codec parameters to muxers
 is deprecated, use AVStream.codecpar instead.
     Last message repeated 1 times
 Output #0, avi, to 'C:\_CONVE~1\FFMPEG~2\XSUBAH~1\\Starship_Troopers
 XSUB.avi':
   Metadata:
     ISFT            : Lavf57.49.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.57.100 libxvid
     Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz,
 stereo, fltp, 128 kb/s
     Metadata:
       encoder         : Lavc57.57.100 libmp3lame
     Stream #0:2: Subtitle: xsub (DXSB / 0x42535844)
     Metadata:
       encoder         : Lavc57.57.100 xsub
 Output #1, null, to 'nul':
   Metadata:
     encoder         : Lavf57.49.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.57.100 wrapped_avframe
     Stream #1:1: Audio: pcm_s16le, 48000 Hz, 5.1(side), s16, 4608 kb/s
     Metadata:
       encoder         : Lavc57.57.100 pcm_s16le
 Stream mapping:
   Stream #0:0 -> #0:0 (mpeg2video (native) -> mpeg4 (libxvid))
   Stream #0:1 -> #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:4 -> #1:1 (ac3 (native) -> pcm_s16le (native))
 Press [q] to stop, [?] for help
 [ac3 @ 05731760] frame sync error
 Error while decoding stream #0:1: Invalid data found when processing input
 [ac3 @ 0549a4e0] frame sync error
 Error while decoding stream #0:4: Invalid data found when processing input
 [libmp3lame @ 0549c720] Queue input is backward in time
 [null @ 02fa2380] Application provided invalid, non monotonically
 increasing dts to muxer in stream 1: 1891 >= 1891
 frame=  105 fps=0.0 q=4.0 q=-0.0 size=      14kB time=00:00:04.33 bitrate=
 26.3kbits/s speed=8.62x
 frame=  207 fps=206 q=7.0 q=-0.0 size=      14kB time=00:00:08.60 bitrate=
 13.2kbits/s speed=8.58x
 [mpeg @ 02f88a00] New subtitle stream 0:7 at pos:8497166 and DTS:1999.51s
 frame=  313 fps=208 q=4.0 q=-0.0 size=    2300kB time=00:00:13.06
 bitrate=1442.4kbits/s speed=8.68x
 frame=  439 fps=219 q=5.0 q=-0.0 size=    2729kB time=00:00:18.28
 bitrate=1222.4kbits/s speed=9.12x
 frame=  546 fps=218 q=7.0 q=-0.0 size=    2729kB time=00:00:22.75 bitrate=
 982.4kbits/s speed=9.07x
 frame=  662 fps=220 q=10.0 q=-0.0 size=    4187kB time=00:00:27.59
 bitrate=1243.1kbits/s speed=9.17x
 frame=  779 fps=222 q=4.0 q=-0.0 size=    4187kB time=00:00:32.48
 bitrate=1055.8kbits/s speed=9.26x
 frame=  904 fps=225 q=5.0 q=-0.0 size=    6164kB time=00:00:37.67
 bitrate=1340.4kbits/s speed=9.39x
 frame= 1023 fps=227 q=5.0 q=-0.0 size=    6735kB time=00:00:42.64
 bitrate=1293.9kbits/s speed=9.45x
 frame= 1147 fps=229 q=5.0 q=-0.0 size=    7628kB time=00:00:47.81
 bitrate=1306.9kbits/s speed=9.54x
 [mpeg2video @ 057311c0] ac-tex damaged at 3 27
 [mpeg2video @ 057311c0] Warning MVs not available
 [mpeg2video @ 057311c0] concealing 135 DC, 135 AC, 135 MV errors in I
 frame
 [ac3 @ 05731760] incomplete frame
 [ac3 @ 0549a4e0] incomplete frame
 frame= 1229 fps=229 q=6.0 Lq=-0.0 size=    8740kB time=00:00:51.31
 bitrate=1395.1kbits/s speed=9.57x
 video:8279kB audio:29601kB subtitle:20kB other streams:0kB global
 headers:0kB muxing overhead: unknown
 }}}


 ffmpeg to overlay XSUBs:
 {{{
 "%~dps0\ffmpeg" -i "%~dps0\%~n1 XSUB.avi" -filter_complex
 "[0:v][0:s:0]overlay[out]" -map "[out]"       -map 0:a:0 -f avi -c:v
 libxvid -b:v 1500k -vtag XVID -c:a libmp3lame -b:a 128k "%~dps0\%~n1 XSUB
 to Hard Subs.avi"
 }}}

 Full Output:
 {{{
 ffmpeg version N-81696-gd38dff8e 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. 57.100 / 57. 57.100
   libavformat    57. 49.100 / 57. 49.100
   libavdevice    57.  0.102 / 57.  0.102
   libavfilter     6. 62.100 /  6. 62.100
   libswscale      4.  1.100 /  4.  1.100
   libswresample   2.  1.100 /  2.  1.100
   libpostproc    54.  0.100 / 54.  0.100
 [avi @ 049f81a0] scale/rate is 0/0 which is invalid. (This file has been
 generated by broken software.)
 [avi @ 049f81a0] non-interleaved AVI
 Input #0, avi, from 'C:\_CONVE~1\FFMPEG~2\XSUBAH~1\\Starship_Troopers
 XSUB.avi':
   Metadata:
     encoder         : Lavf57.49.100
   Duration: 00:00:51.32, start: 0.000000, bitrate: 1395 kb/s
     Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658),
 yuv420p, 720x480 [SAR 32:27 DAR 16:9], 1248 kb/s, 29.97 fps, 29.97 tbr,
 29.97 tbn, 29.97 tbc
     Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p,
 128 kb/s
     Stream #0:2: Subtitle: xsub (DXSB / 0x42535844), 539 kb/s
 [avi @ 049f81a0] sub2video: using 720x480 canvas
 [avi @ 04abfa40] Using AVStream.codec to pass codec parameters to muxers
 is deprecated, use AVStream.codecpar instead.
     Last message repeated 1 times
 [null @ 04a36020] Using AVStream.codec to pass codec parameters to muxers
 is deprecated, use AVStream.codecpar instead.
     Last message repeated 1 times
 Output #0, avi, to 'C:\_CONVE~1\FFMPEG~2\XSUBAH~1\\Starship_Troopers XSUB
 to Hard Subs.avi':
   Metadata:
     ISFT            : Lavf57.49.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 (default)
     Metadata:
       encoder         : Lavc57.57.100 libxvid
     Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz,
 stereo, s16p, 128 kb/s
     Metadata:
       encoder         : Lavc57.57.100 libmp3lame
 Output #1, null, to 'nul':
   Metadata:
     encoder         : Lavf57.49.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.57.100 wrapped_avframe
     Stream #1:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
     Metadata:
       encoder         : Lavc57.57.100 pcm_s16le
 Stream mapping:
   Stream #0:0 (mpeg4) -> overlay:main (graph 0)
   Stream #0:2 (xsub) -> overlay:overlay (graph 0)
   overlay (graph 0) -> Stream #0:0 (libxvid)
   Stream #0:1 -> #0:1 (mp3 (native) -> mp3 (libmp3lame))
   Stream #0:0 -> #1:0 (mpeg4 (native) -> wrapped_avframe (native))
   Stream #0:1 -> #1:1 (mp3 (native) -> pcm_s16le (native))
 Press [q] to stop, [?] for help
 frame=   87 fps=0.0 q=5.0 q=-0.0 size=     625kB time=00:00:03.93
 bitrate=1299.9kbits/s speed=7.81x
 frame=  173 fps=172 q=5.0 q=-0.0 size=    1231kB time=00:00:07.51
 bitrate=1342.2kbits/s speed=7.46x
 frame=  265 fps=176 q=7.0 q=-0.0 size=    1955kB time=00:00:11.35
 bitrate=1410.5kbits/s speed=7.53x
 frame=  369 fps=184 q=4.0 q=-0.0 size=    2710kB time=00:00:15.69
 bitrate=1414.4kbits/s speed=7.82x
 frame=  470 fps=187 q=11.0 q=-0.0 size=    3551kB time=00:00:19.89
 bitrate=1462.2kbits/s speed=7.93x
 frame=  567 fps=188 q=11.0 q=-0.0 size=    4280kB time=00:00:23.95
 bitrate=1463.7kbits/s speed=7.96x
 frame=  666 fps=190 q=12.0 q=-0.0 size=    5001kB time=00:00:28.05
 bitrate=1460.2kbits/s speed=7.99x
 frame=  764 fps=190 q=6.0 q=-0.0 size=    5574kB time=00:00:32.13
 bitrate=1420.9kbits/s speed=8.01x
 frame=  869 fps=193 q=5.0 q=-0.0 size=    6222kB time=00:00:36.52
 bitrate=1395.4kbits/s speed=8.09x
 frame=  973 fps=194 q=5.0 q=-0.0 size=    6914kB time=00:00:40.87
 bitrate=1385.8kbits/s speed=8.15x
 frame= 1076 fps=195 q=5.0 q=-0.0 size=    7637kB time=00:00:45.19
 bitrate=1384.4kbits/s speed=8.19x
 frame= 1181 fps=196 q=6.0 q=-0.0 size=    8360kB time=00:00:49.56
 bitrate=1381.9kbits/s speed=8.23x
 frame= 1230 fps=196 q=8.0 Lq=-0.0 size=    8790kB time=00:00:55.35
 bitrate=1300.9kbits/s speed=8.82x
 video:8351kB audio:10413kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: unknown
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6013>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list