Opened 5 years ago

Closed 4 years ago

#8301 closed defect (duplicate)

Burning in Thai subtitles has errors

Reported by: 0x42h Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords: sub
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

When burning in subtitles with -vf subtitle=, subtitles in Thai language position the accents wrongly. Instead of the accents being places below or above the character, they are placed in the next font character slot. See attachment.

Subtitles can be translated to Thai language here: http://translate-subtitles.com

How to reproduce:

% ffmpeg -i somevid.mp4 -vf subtitle=sub.srt output.mp4
ffmpeg version: any
built on ... any

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Attachments (1)

burnfail.png (814.2 KB ) - added by 0x42h 5 years ago.
Burning in Thai subtitles fails

Download all attachments as: .zip

Change History (7)

by 0x42h, 5 years ago

Attachment: burnfail.png added

Burning in Thai subtitles fails

comment:1 by 0x42h, 5 years ago

Component: undeterminedffmpeg

comment:2 by Carl Eugen Hoyos, 5 years ago

Component: ffmpegundetermined
Keywords: thai subtitles burn fails removed
Resolution: needs_more_info
Status: newclosed

This has currently no similarities with a valid ticket, before adding the command line you tested including the complete, uncut console output and a sample subtitle file, please look at ticket #3165.

comment:3 by 0x42h, 5 years ago

Component: undeterminedffmpeg
Keywords: thai subtitles burn in fails added
Resolution: needs_more_info
Status: closedreopened

When burning in subtitles with -vf subtitles=sub.srt that is in the Thai language, the subtitle renderer fails to correct accent the right symbols.

As per example: this:

"คนขี้เกียจทำไม่ได้
รับความช่วยเหลือ (ตัวเอง)"

Comes out as:
https://damngood.one/burnfail.png

SRT used is:

1
00:00:00,000 --> 00:03:10,422
คนขี้เกียจทำไม่ได้
รับความช่วยเหลือ (ตัวเอง)



Simple command to reproduce:

ffmpeg -y -f lavfi -i color=c=black:s=320x240:d=5 -c:v h264 -vf subtitles=sub.srt output.mp4
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.1 (clang-1001.0.46.4)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.3_1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libaom --enable-libsoxr
  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
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, lavfi, from 'color=c=black:s=320x240:d=5':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[Parsed_subtitles_0 @ 0x7f96a552ee80] Shaper: FriBidi 1.0.5 (SIMPLE) HarfBuzz-ng 2.5.3 (COMPLEX)
[Parsed_subtitles_0 @ 0x7f96a552ee80] Using font provider coretext
[Parsed_subtitles_0 @ 0x7f96a552ee80] fontselect: (Arial, 400, 0) -> /Library/Fonts/Arial.ttf, -1, ArialMT
[Parsed_subtitles_0 @ 0x7f96a552ee80] Glyph 0xE04 not found, selecting one more font for (Arial, 400, 0)
[Parsed_subtitles_0 @ 0x7f96a552ee80] fontselect: (Arial, 400, 0) -> /System/Library/Fonts/Thonburi.ttc, -1, Thonburi
[libx264 @ 0x7f96a580e600] using SAR=1/1
[libx264 @ 0x7f96a580e600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7f96a580e600] profile High, level 1.3
[libx264 @ 0x7f96a580e600] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=7 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 12800 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.35.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
[Parsed_color_0 @ 0x7f96a552a600] EOF timestamp not reliable
frame=  125 fps=0.0 q=-1.0 Lsize=       7kB time=00:00:04.88 bitrate=  11.4kbits/s speed=42.7x    
video:5kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 50.898075%
[libx264 @ 0x7f96a580e600] frame I:1     Avg QP:11.29  size:  1854
[libx264 @ 0x7f96a580e600] frame P:31    Avg QP: 9.24  size:    23
[libx264 @ 0x7f96a580e600] frame B:93    Avg QP:12.67  size:    15
[libx264 @ 0x7f96a580e600] consecutive B-frames:  0.8%  0.0%  0.0% 99.2%
[libx264 @ 0x7f96a580e600] mb I  I16..4: 82.3%  8.7%  9.0%
[libx264 @ 0x7f96a580e600] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip:100.0%
[libx264 @ 0x7f96a580e600] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%
[libx264 @ 0x7f96a580e600] 8x8 transform intra:8.7% inter:0.0%
[libx264 @ 0x7f96a580e600] coded y,uvDC,uvAC intra: 5.2% 0.0% 0.0% inter: 0.0% 0.0% 0.0%
[libx264 @ 0x7f96a580e600] i16 v,h,dc,p: 92%  0%  8%  0%
[libx264 @ 0x7f96a580e600] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38%  0% 62%  0%  0%  0%  0%  0%  0%
[libx264 @ 0x7f96a580e600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 27% 36%  2%  2%  3%  5%  2%  5%
[libx264 @ 0x7f96a580e600] i8c dc,h,v,p: 100%  0%  0%  0%
[libx264 @ 0x7f96a580e600] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7f96a580e600] kb/s:6.29

Did I forget something? Please don't hesitate to request me for more info in the same manner you would like me to kindly supply with the most informed information. (also) Thank you (for your help), brother or sister (although the latter still rare in this field)! :)

comment:4 by Carl Eugen Hoyos, 5 years ago

Component: ffmpegundetermined
Keywords: sub added; thai subtitles burn in fails removed

Why do you believe that this ticket is not the same as #3165?

comment:5 by 0x42h, 4 years ago

Please forgive me for the misunderstanding. I was focused on your negative former response, which had me omit the more positive second part. I will continue the thread there, asking why this isn't default, for would is there any reason to not have it compile to that library, if it means that this will work, instead of not (in case it doesn't have any other (severe) implications)?

comment:6 by 0x42h, 4 years ago

Resolution: duplicate
Status: reopenedclosed
Note: See TracTickets for help on using tickets.