[FFmpeg-trac] #10356(undetermined:new): Incorrect escaping text from srt subtitles
FFmpeg
trac at avcodec.org
Thu May 11 12:14:49 EEST 2023
#10356: Incorrect escaping text from srt subtitles
--------------------------------------+----------------------------------
Reporter: Ashark | Type: defect
Status: new | Priority: normal
Component: undetermined | Version: 6.0
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
--------------------------------------+----------------------------------
Summary of the bug:
I want to literally place "\n" string (not actually a line break) to the
video. I created an srt file and hardsubbed it with subtitle video vilter:
{{{
$ ffmpeg -hide_banner -loglevel error -y -f lavfi -i
color=size=1280x720:rate=10:color=black -vf
"subtitles=subtitle_with_n.srt:force_style='Alignment=10,Fontsize=12'"
-frames:v 1 output.png
ffmpeg version n6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.1 (GCC) 20230201
}}}
But the escaping is done wrong. To hardsub the "\n" string, I escape
backslash in srt: "\\n". But instead of escaping the backslash, it escapes
the n, and the first '\' is written as is.
I created this file subtitle_with_n.srt:
{{{
1
00:00:00,000 --> 10:00:00,000
line 1 \ \ \ backslash ampersand entity (also tried N
letter entity) neither work in vlc nor in ffmpeg.
line 2 \\n escapes n instead backslash. On vlc it makes backslash and
breaks line. On ffmpeg it is backslash and space.
line 3 \n used wordjoiner (U+2060), works
line 4 \n zero width space, works in vlc, works in ffmpeg.
line 5 \n breaks line in vlc, make space in ffmpeg. <b>Bold</b> tag works
in both.
line 6 \<i></i>n works for vlc, but in ffmpeg it is wrong.
}}}
This is self commenting. See screenshot for result.
The expected non-crutch way is escaping work as normal: going from left to
right of the string.
Additional info:
#9058 - bug about possibility to encode ampersand entities.
#9808 - similar bug about escaping in another type of subtitles
https://github.com/libass/libass/issues/194#issuecomment-351902555 -
workaround by using word joiner symbol.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10356>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list