Technically the cleanest look with these subtitles would be to:
- Extract the subtitles
- Turn them to text using your favourite OCR application
- Carefully review and edit the text
- Burn them back into the media stream in the size, colour, orientation and format of your choice
This is a large and time consuming job which I have personally undertaken in the past but is probably overkill in this case.
The better option is to simply add in the FFmpeg option
-fix_sub_duration (placed before the input file options) and this will fix the doubled up subtitles as I illustrate below, and make the subtitles easily readable:
The details of the
-fix_sub_duration option can be found in the FFmpeg-all man pages but I have taken the liberty of quoting these details here:
Fix subtitles durations. For each subtitle, wait for the next packet in the same stream and adjust the duration of the
first to avoid overlap. This is necessary with some subtitles codecs,
especially DVB subtitles, because the duration in the original packet
is only a rough estimate and the end is actually marked by an empty
subtitle frame. Failing to use this option when necessary can result
in exaggerated durations or muxing failures due to non-monotonic
Note that this option will delay the output of all data until the next
subtitle packet is decoded: it may increase memory consumption and
latency a lot.
You will note that this is the first of the Advanced Subtitle options, the second being the
-canvas_size that you have already used...