[FFmpeg-trac] #8101(ffmpeg:new): Subtitles : Timestamps of each paragraph are incorrect

FFmpeg trac at avcodec.org
Wed Aug 28 11:22:24 EEST 2019


#8101: Subtitles : Timestamps of each paragraph are incorrect
-------------------------------------+-------------------------------------
             Reporter:  fcaspar77    |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  ffmpeg       |                  Version:  4.1.4
             Keywords:  subtitle     |               Blocked By:
  webvtt                             |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Hello,

 I'm trying to get the subtitles from an MPEG-TS file with subtitles in
 dvb_teletext.

 I tried it with several recent versions and here are the results :

 With FFMPEG v4.1.4 :
 {{{
 % ffmpeg -y -txt_format text -txt_page 889 -i /tmp/action.ts -c:s webvtt
 -map i:0x4c6 /tmp/out.vtt
 ffmpeg version 4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
   built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
   configuration: --disable-debug --disable-doc --disable-ffplay --enable-
 shared --enable-gpl --enable-libass --enable-libfdk_aac --enable-
 libfreetype --enable-libfontconfig --enable-libfribidi --enable-libmp3lame
 --enable-librtmp --enable-libsrt --enable-libvpx --enable-libx265
 --enable-libx264 --enable-libxml2 --enable-libzvbi --enable-nonfree
 --enable-openssl --enable-postproc --enable-small --enable-version3
 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
 --extra-libs=-ldl --prefix=/opt/ffmpeg
   libavutil      56. 22.100 / 56. 22.100
   libavcodec     58. 35.100 / 58. 35.100
   libavformat    58. 20.100 / 58. 20.100
   libavdevice    58.  5.100 / 58.  5.100
   libavfilter     7. 40.101 /  7. 40.101
   libswscale      5.  3.100 /  5.  3.100
   libswresample   3.  3.100 /  3.  3.100
   libpostproc    55.  3.100 / 55.  3.100
 [h264 @ 0x564be55adf40] SPS unavailable in decode_picture_timing
 [h264 @ 0x564be55adf40] non-existing PPS 0 referenced
 [h264 @ 0x564be55adf40] SPS unavailable in decode_picture_timing
 [h264 @ 0x564be55adf40] non-existing PPS 0 referenced
 [h264 @ 0x564be55adf40] decode_slice_header error
 [h264 @ 0x564be55adf40] no frame!
 ....
 [h264 @ 0x564be55adf40] SPS unavailable in decode_picture_timing
 [h264 @ 0x564be55adf40] non-existing PPS 0 referenced
 [h264 @ 0x564be55adf40] SPS unavailable in decode_picture_timing
 [h264 @ 0x564be55adf40] non-existing PPS 0 referenced
 [h264 @ 0x564be55adf40] decode_slice_header error
 [h264 @ 0x564be55adf40] no frame!
     Last message repeated 3 times
 [mpegts @ 0x564be55a8fc0] PES packet size mismatch
     Last message repeated 2 times
 Input #0, mpegts, from '/tmp/action.ts':
   Duration: 00:00:51.38, start: 94206.543944, bitrate: 15696 kb/s
   Program 78
     Metadata:
       service_name    : Action HD
       service_provider: A provider
     Stream #0:0[0x336]: Video: h264 ([27][0][0][0] / 0x001B), yuv420p(tv,
 bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn,
 50 tbc
     Stream #0:1[0x39a](fra): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
 stereo, fltp, 256 kb/s
     Stream #0:2[0x462](fra): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, fltp, 192 kb/s
     Stream #0:3[0x4c6](fra,fra): Subtitle: dvb_teletext ([6][0][0][0] /
 0x0006)
     Stream #0:4[0x52a](qaa): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, fltp, 192 kb/s
 Output #0, webvtt, to '/tmp/out.vtt':
   Metadata:
     encoder         : Lavf58.20.100
     Stream #0:0(fra,fra): Subtitle: webvtt
     Metadata:
       encoder         : Lavc58.35.100 webvtt
 Stream mapping:
   Stream #0:3 -> #0:0 (dvb_teletext (libzvbi_teletextdec) -> webvtt
 (native))
 Press [q] to stop, [?] for help
 size=       1kB time=00:00:45.16 bitrate=   0.2kbits/s speed=1.12e+03x
 video:0kB audio:0kB subtitle:1kB other streams:0kB global headers:0kB
 muxing overhead: 84.971100%
 }}}

 And the generated VTT file is as followed (I have the same behaviour with
 SRT) :
 {{{
 WEBVTT

 00:00.280 --> 1193:02:47.575
 ou sérieusement dans la merde.

 00:04.000 --> 1193:02:51.295
 C'est entièrement ma faute.
 Le crâne m'a glissé des mains.

 00:08.760 --> 1193:02:56.055
 Ne te culpabilise pas.
 On fait tous des erreurs.

 00:13.200 --> 1193:03:00.495
 - Celle-là est grave.
 - C'est-à-dire ?

 00:16.760 --> 1193:03:04.055
 C'était la Confrérie Singh...

 00:19.040 --> 1193:03:06.335
 J'ai vu la toile
 d'araignée tatouée.

 00:21.200 --> 1193:03:08.495
 Tu as laissé un crâne de Tuganda
 à la Confrérie Singh !

 00:26.880 --> 1193:03:14.175
 Ce qu'ils tentaient d'obtenir
 depuis 400 ans !

 00:33.040 --> 1193:03:20.335
 Ils n'ont pas les trois.

 00:35.680 --> 1193:03:22.975
 On ignore combien ils en ont.

 00:38.600 --> 1193:03:25.895
 Sais-tu ce qui arrivera

 00:40.480 --> 1193:03:27.775
 si la Confrérie détient ces crânes ?

 00:43.400 --> 1193:03:30.695
 Elle sera invincible.

 00:45.160 --> 1193:03:32.455
 Interviens.
 Toi seul le peux.
 }}}

 As you can see, the start time and end time of each paragraph do not
 correspond.
 It looks like that the end time is incorrect but because it is a capture
 of an MPEG-TS stream, it is maybe the start time which is incorrect.

 With ffmpeg 4.2, I have the following :
 {{{
 % ffmpeg -y -txt_format text -txt_page 889 -i /tmp/action.ts -c:s webvtt
 -map i:0x4c6 /tmp/out.vtt
 ffmpeg version 4.2 Copyright (c) 2000-2019 the FFmpeg developers
   built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
   configuration: --disable-debug --disable-doc --disable-ffplay --enable-
 shared --enable-gpl --enable-libass --enable-libfdk_aac --enable-
 libfreetype --enable-libfontconfig --enable-libfribidi --enable-libmp3lame
 --enable-librtmp --enable-libsrt --enable-libvpx --enable-libx265
 --enable-libx264 --enable-libxml2 --enable-libzvbi --enable-nonfree
 --enable-openssl --enable-postproc --enable-small --enable-version3
 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
 --extra-libs=-ldl --prefix=/opt/ffmpeg
   libavutil      56. 31.100 / 56. 31.100
   libavcodec     58. 54.100 / 58. 54.100
   libavformat    58. 29.100 / 58. 29.100
   libavdevice    58.  8.100 / 58.  8.100
   libavfilter     7. 57.100 /  7. 57.100
   libswscale      5.  5.100 /  5.  5.100
   libswresample   3.  5.100 /  3.  5.100
   libpostproc    55.  5.100 / 55.  5.100
 [h264 @ 0x55841fbacf40] SPS unavailable in decode_picture_timing
 [h264 @ 0x55841fbacf40] non-existing PPS 0 referenced
 [h264 @ 0x55841fbacf40] SPS unavailable in decode_picture_timing
 [h264 @ 0x55841fbacf40] non-existing PPS 0 referenced
 [h264 @ 0x55841fbacf40] decode_slice_header error
 [h264 @ 0x55841fbacf40] no frame!
 ...
 [h264 @ 0x55841fbacf40] SPS unavailable in decode_picture_timing
 [h264 @ 0x55841fbacf40] non-existing PPS 0 referenced
 [h264 @ 0x55841fbacf40] SPS unavailable in decode_picture_timing
 [h264 @ 0x55841fbacf40] non-existing PPS 0 referenced
 [h264 @ 0x55841fbacf40] decode_slice_header error
 [h264 @ 0x55841fbacf40] no frame!
     Last message repeated 3 times
 [mpegts @ 0x55841fba7fc0] PES packet size mismatch
     Last message repeated 2 times
 Input #0, mpegts, from '/tmp/action.ts':
   Duration: 00:00:51.38, start: 94206.543944, bitrate: 15696 kb/s
   Program 78
     Metadata:
       service_name    : Action HD
       service_provider: A provider
     Stream #0:0[0x336]: Video: h264 ([27][0][0][0] / 0x001B), yuv420p(tv,
 bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn,
 50 tbc
     Stream #0:1[0x39a](fra): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
 stereo, fltp, 256 kb/s
     Stream #0:2[0x462](fra): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, fltp, 192 kb/s
     Stream #0:3[0x4c6](fra,fra): Subtitle: dvb_teletext ([6][0][0][0] /
 0x0006)
     Stream #0:4[0x52a](qaa): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, fltp, 192 kb/s
 Output #0, webvtt, to '/tmp/out.vtt':
   Metadata:
     encoder         : Lavf58.29.100
     Stream #0:0(fra,fra): Subtitle: webvtt
     Metadata:
       encoder         : Lavc58.54.100 webvtt
 Stream mapping:
   Stream #0:3 -> #0:0 (dvb_teletext (libzvbi_teletextdec) -> webvtt
 (native))
 Press [q] to stop, [?] for help
 Subtitle packets must have a pts
     Last message repeated 13 times
 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
 video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 Output file is empty, nothing was encoded (check -ss / -t / -frames
 parameters if used)
 }}}

 The message "Subtitle packets must have a pts" is displayed in red and the
 VTT file is empty.

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


More information about the FFmpeg-trac mailing list