[FFmpeg-trac] #5851(undetermined:new): Option to remove tags from Closed Captions

FFmpeg trac at avcodec.org
Sat Sep 17 03:16:54 EEST 2016


#5851: Option to remove tags from Closed Captions
-------------------------------------+-------------------------------------
             Reporter:  edumj        |                     Type:
               Status:  new          |  enhancement
            Component:               |                 Priority:  normal
  undetermined                       |                  Version:
             Keywords:               |  unspecified
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
 I can extract Closed Captions from this NTSC DVD sample
 [https://samples.ffmpeg.org/MPEG-VOB/ClosedCaptions/Starship_Troopers.vob
 Starship_Troopers.vob] with this:

 {{{
 "ffmpeg" -f lavfi -i "movie=Starship_Troopers.vob[out0+subcc]" -map s
 "output_map-s.srt"
 }}}

 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, lavfi, from 'movie=Starship_Troopers.vob[out0+subcc]':
   Duration: N/A, start: 1986.626100, bitrate: N/A
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480
 [SAR 1:1 DAR 3:2], 59.94 tbr, 90k tbn, 90k tbc
     Stream #0:1: Subtitle: eia_608
 [srt @ 0612b2c0] Using AVStream.codec to pass codec parameters to muxers
 is deprecated, use AVStream.codecpar instead.
 [null @ 0608cfa0] Using AVStream.codec to pass codec parameters to muxers
 is deprecated, use AVStream.codecpar instead.
 Output #0, srt, to 'output_map-s.srt':
   Metadata:
     encoder         : Lavf57.48.100
     Stream #0:0: Subtitle: subrip (srt)
     Metadata:
       encoder         : Lavc57.54.100 srt
 Output #1, null, to 'nul':
   Metadata:
     encoder         : Lavf57.48.100
     Stream #1:0: Video: wrapped_avframe, yuv420p, 720x480 [SAR 1:1 DAR
 3:2], q=2-31, 200 kb/s, 59.94 fps, 59.94 tbn, 59.94 tbc
     Metadata:
       encoder         : Lavc57.54.100 wrapped_avframe
 Stream mapping:
   Stream #0:1 -> #0:0 (eia_608 (cc_dec) -> subrip (srt))
   Stream #0:0 -> #1:0 (rawvideo (native) -> wrapped_avframe (native))
 Press [q] to stop, [?] for help
 frame=  467 fps=0.0 q=-0.0 size=       0kB time=00:00:19.43 bitrate=
 0.1kbits/s speed=38.9x
 frame=  973 fps=973 q=-0.0 size=       1kB time=00:00:40.54 bitrate=
 0.1kbits/s speed=40.5x
 [mpeg2video @ 060527a0] ac-tex damaged at 3 27
 [mpeg2video @ 060527a0] Warning MVs not available
 [mpeg2video @ 060527a0] concealing 135 DC, 135 AC, 135 MV errors in I
 frame
 frame= 1229 fps=980 q=-0.0 Lsize=       1kB time=00:00:51.30 bitrate=
 0.2kbits/s speed=40.9x
 video:461kB audio:0kB subtitle:1kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 }}}

 but, srt has font tags, and some strange position tags:

 {{{
 1
 00:00:11,745 --> 00:00:15,249
 <font face="Monospace">{\an7}PILOT TRAINEE IBANEZ
 REPORTING FOR DUTY, MA’AM.</font>

 2
 00:00:15,249 --> 00:00:18,252
 <font face="Monospace">{\an7}- TAKE THE NUMBER TWO CHAIR,
 \h\hIBANEZ.
 - YES, MA’AM.</font>

 3
 00:00:22,756 --> 00:00:27,761
 <font
 face="Monospace">{\an7}\h\h\h\h\h\h\h\h\h\h\h\h\h\h\h\h\h\h\h\hIDENTIFY.
 IBANEZ, "T"-THREE-TWO-FIVE-"A,"
 CLEAR.</font>

 4
 00:00:30,764 --> 00:00:34,768
 <font face="Monospace">{\an7}[ Laughs ]
 WHAT ARE YOU DOING HERE ?</font>

 5
 00:00:36,270 --> 00:00:39,273
 <font face="Monospace">{\an7}I’M THE GUY WHO’S GONNA
 TEACH YOU TO FLY THIS CRATE.</font>

 6
 00:00:39,273 --> 00:00:41,776
 <font face="Monospace">{\an7}<i>AH.
 ASSISTANT INSTRUCTOR.</i></font>

 7
 00:00:41,775 --> 00:00:44,778
 <font face="Monospace">{\an7}SHOULD I CALL YOU
 "SIR" ?</font>

 8
 00:00:44,778 --> 00:00:47,281
 <font face="Monospace">{\an7}ONLY WHEN I GIVE YOU
 AN ORDER.</font>

 9
 00:00:47,281 --> 00:00:49,283
 <font face="Monospace">{\an7}PREPARE FOR DEPARTURE.</font>


 }}}

 These tags are not allowed by TXT2VobSub because subtitles are too long,
 and if I harsub them with this:

 {{{
 "ffmpeg" -i "Starship_Troopers.vob" -vf
 "subtitles=output_map-s.srt:force_style='FontName=Microsoft Sans
 Serif,Fontsize=18,Outline=1,PrimaryColour=&HFFFFFF'" -f avi -c:v libxvid
 -b:v 1500k -vtag XVID -c:a libmp3lame -b:a 128k "Starship_Troopers-
 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, mpeg, from '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
 [Parsed_subtitles_0 @ 049ef6e0] Shaper: FriBidi 0.19.6 (SIMPLE)
 [Parsed_subtitles_0 @ 049ef6e0] Using font provider directwrite
 [avi @ 04942f60] Using AVStream.codec to pass codec parameters to muxers
 is deprecated, use AVStream.codecpar instead.
     Last message repeated 1 times
 [null @ 04942120] 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-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
 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 #0:0 -> #0:0 (mpeg2video (native) -> mpeg4 (libxvid))
   Stream #0:4 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
   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 @ 04de9c80] frame sync error
 Error while decoding stream #0:4: Invalid data found when processing input
 [null @ 04942120] Application provided invalid, non monotonically
 increasing dts to muxer in stream 1: 1891 >= 1891
 [libmp3lame @ 04debec0] Queue input is backward in time
 frame=   95 fps=0.0 q=6.0 q=-0.0 size=     671kB time=00:00:03.94
 bitrate=1394.7kbits/s speed=7.83x
 frame=  185 fps=184 q=6.0 q=-0.0 size=    1326kB time=00:00:07.71
 bitrate=1407.7kbits/s speed=7.67x
 frame=  276 fps=183 q=9.0 q=-0.0 size=    2029kB time=00:00:11.49
 bitrate=1446.2kbits/s speed=7.62x
 [Parsed_subtitles_0 @ 049ef6e0] fontselect: (Microsoft Sans Serif, 400, 0)
 -> MicrosoftSansSerif, 0, MicrosoftSansSerif
 [Parsed_subtitles_0 @ 049ef6e0] fontselect: (Monospace, 400, 0) ->
 CourierNewPSMT, 0, CourierNewPSMT
 [mpeg @ 002eb780] New subtitle stream 0:7 at pos:8497166 and DTS:1999.51s
 frame=  372 fps=185 q=5.0 q=-0.0 size=    2752kB time=00:00:15.52
 bitrate=1451.8kbits/s speed=7.73x
 frame=  459 fps=183 q=9.0 q=-0.0 size=    3439kB time=00:00:19.14
 bitrate=1471.6kbits/s speed=7.63x
 frame=  557 fps=185 q=7.0 q=-0.0 size=    4135kB time=00:00:23.18
 bitrate=1460.6kbits/s speed= 7.7x
 frame=  645 fps=184 q=9.0 q=-0.0 size=    4824kB time=00:00:26.88
 bitrate=1469.7kbits/s speed=7.65x
 frame=  733 fps=181 q=6.0 q=-0.0 size=    5313kB time=00:00:30.53
 bitrate=1425.2kbits/s speed=7.53x
 frame=  837 fps=184 q=4.0 q=-0.0 size=    5933kB time=00:00:34.88
 bitrate=1393.0kbits/s speed=7.66x
 frame=  935 fps=185 q=5.0 q=-0.0 size=    6631kB time=00:00:38.98
 bitrate=1393.4kbits/s speed=7.71x
 [Parsed_subtitles_0 @ 049ef6e0] fontselect: (Monospace, 400, 100) ->
 CourierNewPS-ItalicMT, 0, CourierNewPS-ItalicMT
 frame= 1035 fps=186 q=5.0 q=-0.0 size=    7311kB time=00:00:43.17
 bitrate=1387.1kbits/s speed=7.77x
 frame= 1139 fps=188 q=6.0 q=-0.0 size=    8053kB time=00:00:47.48
 bitrate=1389.5kbits/s speed=7.84x
 [mpeg2video @ 049477c0] ac-tex damaged at 3 27
 [mpeg2video @ 049477c0] Warning MVs not available
 [mpeg2video @ 049477c0] concealing 135 DC, 135 AC, 135 MV errors in I
 frame
 [ac3 @ 04de9c80] incomplete frame
 frame= 1229 fps=189 q=6.0 Lq=-0.0 size=    8736kB time=00:00:51.31
 bitrate=1394.6kbits/s speed= 7.9x
 video:8300kB audio:29601kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: unknown
 }}}

 Those font tags overwrite FontName from subtitles filter, and position
 tags puts subs above and aligned like this:

 [[Image(http://i47.photobucket.com/albums/f169/edumj/Starship_Troopers-
 ffmpeg.png)]]

 CCextrator removes those tags, and looks like this:

 [[Image(http://i47.photobucket.com/albums/f169/edumj/Starship_Troopers-
 ccextractor.png)]]

 Is there an option to remove those tags, like "-txt_format text" does with
 other embed text subs? That way, we could also do soft subs (XSUBs) and
 not only hard subs from CC.

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


More information about the FFmpeg-trac mailing list