[FFmpeg-trac] #8926(undetermined:new): Burning subtitles silently fails with certain fonts

FFmpeg trac at avcodec.org
Sun Oct 11 00:40:23 EEST 2020


#8926: Burning subtitles silently fails with certain fonts
-------------------------------------+-------------------------------------
             Reporter:  C0rn3j       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 I've been trying to follow
 https://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo to burn video
 into subtitles, but it looks like with certain fonts, it just silently
 fails, producing the video without subtitles.

 How to reproduce:
   ffmpeg -i Remembering.gif -vf subtitles=subtitles.srt Remembering2.gif

 This works with the first file but not with the one that uses Montara
 Gothic.

 SRT file that works:
   1
   00:00:00,000 --> 00:00:08,000
   Making the magic happen.

 SRT file that's broken:
   1
   00:00:01,620 --> 00:00:03,120
   <font face="Montara Gothic" size="65">W— Woah—</font>

 Workaround:
 Specifying a different font(DejaVu Serif) via force_style got me render
 with subtitles correctly.

   ffmpeg -i Remembering.mkv -vf
 "fps=10,scale=320:-1:flags=lanczos,subtitles=Remembering.mkv:force_style='Fontsize=70,FontName=DejaVu
 Serif',split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0
 Remembering.gif

 Logs while using the broken SRT file and ffmpeg version:


 {{{
  % ffmpeg -i Remembering.gif -vf subtitles=RememberingConverted.srt
 Remembering2.gif
   ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
     built with gcc 10.1.0 (GCC)
     configuration: --prefix=/usr --disable-debug --disable-static
 --disable-stripping --enable-avisynth --enable-fontconfig --enable-gmp
 --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-
 libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-
 libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883
 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame
 --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg
 --enable-libopus --enable-libpulse --enable-librav1e --enable-libsoxr
 --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora
 --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis
 --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265
 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-
 nvenc --enable-omx --enable-shared --enable-version3
     libavutil      56. 51.100 / 56. 51.100
     libavcodec     58. 91.100 / 58. 91.100
     libavformat    58. 45.100 / 58. 45.100
     libavdevice    58. 10.100 / 58. 10.100
     libavfilter     7. 85.100 /  7. 85.100
     libswscale      5.  7.100 /  5.  7.100
     libswresample   3.  7.100 /  3.  7.100
     libpostproc    55.  7.100 / 55.  7.100
   Input #0, gif, from 'Remembering.gif':
     Duration: 00:00:12.00, start: 0.000000, bitrate: 1234 kb/s
       Stream #0:0: Video: gif, bgra, 320x180 [SAR 64:64 DAR 16:9], 10 fps,
 10 tbr, 100 tbn, 100 tbc
   File 'Remembering2.gif' already exists. Overwrite? [y/N] y
   Stream mapping:
     Stream #0:0 -> #0:0 (gif (native) -> gif (native))
   Press [q] to stop, [?] for help
   [Parsed_subtitles_0 @ 0x55613b117500] Shaper: FriBidi 1.0.9 (SIMPLE)
 HarfBuzz-ng 2.7.2 (COMPLEX)
   [Parsed_subtitles_0 @ 0x55613b117500] Using font provider fontconfig
   Output #0, gif, to 'Remembering2.gif':
     Metadata:
       encoder         : Lavf58.45.100
       Stream #0:0: Video: gif, bgr8, 320x180 [SAR 1:1 DAR 16:9], q=2-31,
 200 kb/s, 10 fps, 100 tbn, 10 tbc
       Metadata:
         encoder         : Lavc58.91.100 gif
   [Parsed_subtitles_0 @ 0x55613b117500] fontselect: (Arial, 400, 0) ->
 /usr/share/fonts/liberation/LiberationSans-Regular.ttf, 0, LiberationSans
   frame=  120 fps=0.0 q=-0.0 Lsize=    2083kB time=00:00:11.91
 bitrate=1432.8kbits/s speed=51.7x
   video:2083kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.000938%
 }}}

 The font file it ends up using exists:
   % ls -lah /usr/share/fonts/liberation/LiberationSans-Regular.ttf
   .rw-r--r-- root root 399.3 KB Mon Jun  8 07:42:31 2020 
 LiberationSans-Regular.ttf

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


More information about the FFmpeg-trac mailing list