[FFmpeg-user] how to control quality of subtitles

Peter Münster pm at a16n.net
Mon May 25 15:43:17 EEST 2020


On Mon, May 25 2020, Moritz Barsnick wrote:

> Please try to build from latest git master,

Unfortunately it does not help. VLC still displays the subtitles with
yellow letters and black outlines and the Samsung TV with ugly white.
I've tried now also with mplayer: nice subtitles in white with black
outlines. Here is the output of my test:

--8<---------------cut here---------------start------------->8---
peter at ws:/tmp/ffmpeg-tests> ~/tmp/FFmpeg/ffmpeg -y -i orig-dvbsub.ts -map 0:0 -map 0:1 -map 0:2 -c:v libx264 -c:a copy -c:s dvdsub -palette "0d00ee,ee450d,101010,eaeaea,0ce60b,ec14ed,ebff0b,0d617a,7b7b7b,d1d1d1,7b2a0e,0d950c,0f007b,cf0dec,cfa80c,7c127b" dvbsub2dvdsub.mkv
ffmpeg version N-97937-g82bf41f3ab Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 7 (SUSE Linux)
  configuration: --enable-gpl --enable-libx264
  libavutil      56. 49.100 / 56. 49.100
  libavcodec     58. 87.101 / 58. 87.101
  libavformat    58. 43.100 / 58. 43.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 83.100 /  7. 83.100
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
[mpegts @ 0x298c840] PES packet size mismatch
[mpegts @ 0x298c840] Packet corrupt (stream = 2, dts = NOPTS).
Input #0, mpegts, from 'orig-dvbsub.ts':
  Duration: 00:00:46.24, start: 3496.892811, bitrate: 3882 kb/s
  Program 132 
    Stream #0:0[0xa6]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Side data:
      cpb: bitrate max/min/avg: 8000000/0/0 buffer size: 1835008 vbv_delay: N/A
    Stream #0:1[0x80](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x4b](deu): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)
    Stream #0:3[0x44]: Data: bin_data ([6][0][0][0] / 0x0006)
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (dvb_subtitle (dvbsub) -> dvd_subtitle (dvdsub))
Press [q] to stop, [?] for help
[libx264 @ 0x2ab9040] using SAR=64/45
[libx264 @ 0x2ab9040] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x2ab9040] profile High, level 3.0, 4:2:0, 8-bit
[libx264 @ 0x2ab9040] 264 - core 160 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - 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=18 lookahead_threads=3 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, matroska, to 'dvbsub2dvdsub.mkv':
  Metadata:
    encoder         : Lavf58.43.100
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.87.101 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    Stream #0:1(deu): Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2(deu): Subtitle: dvd_subtitle (dvdsub) ([255][255][255][255] / 0xFFFFFFFF) (hearing impaired)
    Metadata:
      encoder         : Lavc58.87.101 dvdsub
[mpegts @ 0x298c840] Packet corrupt (stream = 0, dts = 315404353).e= 318.3kbits/s speed=13.2x    
[mpeg2video @ 0x2a96380] ac-tex damaged at 33 14
[mpeg2video @ 0x2a96380] Warning MVs not available
[mpeg2video @ 0x2a96380] concealing 765 DC, 765 AC, 765 MV errors in B frame
orig-dvbsub.ts: corrupt decoded frame in stream 0
[mpegts @ 0x298c840] PES packet size mismatch
[mpegts @ 0x298c840] Packet corrupt (stream = 1, dts = 315373878).
[mpegts @ 0x298c840] PES packet size mismatch
[mpegts @ 0x298c840] Packet corrupt (stream = 1, dts = 315460278).
[mpegts @ 0x298c840] Packet corrupt (stream = 0, dts = 315490753).
[mpeg2video @ 0x2a96380] ac-tex damaged at 6 22
[mpeg2video @ 0x2a96380] Warning MVs not available
[mpeg2video @ 0x2a96380] concealing 360 DC, 360 AC, 360 MV errors in B frame
orig-dvbsub.ts: corrupt decoded frame in stream 0
[mpegts @ 0x298c840] PES packet size mismatch
[mpegts @ 0x298c840] Packet corrupt (stream = 1, dts = 315641718).
[mpegts @ 0x298c840] Packet corrupt (stream = 0, dts = 315670753).
[mpeg2video @ 0x2a96380] skipped MB in I-frame at 5 16
[mpeg2video @ 0x2a96380] Warning MVs not available
[mpeg2video @ 0x2a96380] concealing 180 DC, 180 AC, 180 MV errors in I frame
orig-dvbsub.ts: corrupt decoded frame in stream 0
[mpegts @ 0x298c840] Packet corrupt (stream = 0, dts = 315843553).
[mpegts @ 0x298c840] PES packet size mismatch
[mpegts @ 0x298c840] Packet corrupt (stream = 1, dts = 315823158).
[mpeg2video @ 0x2a96380] ac-tex damaged at 31 29
[mpeg2video @ 0x2a96380] 00 motion_type at 2 14
[mpeg2video @ 0x2a96380] ac-tex damaged at 5 15
[mpeg2video @ 0x2a96380] ac-tex damaged at 8 16
[mpeg2video @ 0x2a96380] ac-tex damaged at 19 32
[mpeg2video @ 0x2a96380] ac-tex damaged at 8 17
[mpeg2video @ 0x2a96380] slice mismatch
[mpeg2video @ 0x2a96380] 00 motion_type at 22 33
[mpeg2video @ 0x2a96380] 00 motion_type at 15 19
[mpeg2video @ 0x2a96380] 00 motion_type at 5 20
[mpeg2video @ 0x2a96380] 00 motion_type at 5 21
[mpeg2video @ 0x2a96380] ac-tex damaged at 4 22
[mpeg2video @ 0x2a96380] Invalid mb type in P-frame at 12 23
[mpeg2video @ 0x2a96380] 00 motion_type at 9 24
[mpeg2video @ 0x2a96380] 00 motion_type at 28 25
[mpeg2video @ 0x2a96380] 00 motion_type at 1 26
[mpeg2video @ 0x2a96380] 00 motion_type at 9 34
[mpeg2video @ 0x2a96380] 00 motion_type at 16 27
[mpeg2video @ 0x2a96380] 00 motion_type at 31 35
[mpeg2video @ 0x2a96380] 00 motion_type at 35 28
[mpeg2video @ 0x2a96380] 00 motion_type at 4 29
[mpeg2video @ 0x2a96380] ac-tex damaged at 35 30
[mpeg2video @ 0x2a96380] ac-tex damaged at 17 31
[mpeg2video @ 0x2a96380] Warning MVs not available
[mpeg2video @ 0x2a96380] concealing 990 DC, 990 AC, 990 MV errors in P frame
orig-dvbsub.ts: corrupt decoded frame in stream 0
[mpegts @ 0x298c840] PES packet size mismatchme=00:00:12.92 bitrate= 649.0kbits/s speed=12.9x    
[mpegts @ 0x298c840] Packet corrupt (stream = 1, dts = 315909558).
[mpegts @ 0x298c840] Packet corrupt (stream = 0, dts = 315951553).
[mpeg2video @ 0x2a96380] skipped MB in I-frame at 13 13
[mpeg2video @ 0x2a96380] Warning MVs not available
[mpeg2video @ 0x2a96380] concealing 360 DC, 360 AC, 360 MV errors in I frame
orig-dvbsub.ts: corrupt decoded frame in stream 0
[mpegts @ 0x298c840] PES packet size mismatch
[mpegts @ 0x298c840] Packet corrupt (stream = 1, dts = 316090998).
[mpegts @ 0x298c840] Packet corrupt (stream = 0, dts = 316124353).
[mpeg2video @ 0x2a96380] 00 motion_type at 3 23
[mpeg2video @ 0x2a96380] 00 motion_type at 7 29
[mpeg2video @ 0x2a96380] 00 motion_type at 8 27
[mpeg2video @ 0x2a96380] ac-tex damaged at 18 25
[mpeg2video @ 0x2a96380] 00 motion_type at 6 34
[mpeg2video @ 0x2a96380] ac-tex damaged at 2 35
[mpeg2video @ 0x2a96380] ac-tex damaged at 32 22
[mpeg2video @ 0x2a96380] 00 motion_type at 7 24
[mpeg2video @ 0x2a96380] 00 motion_type at 1 32
[mpeg2video @ 0x2a96380] Invalid mb type in P-frame at 7 8
[mpeg2video @ 0x2a96380] slice mismatch
[mpeg2video @ 0x2a96380] 00 motion_type at 1 28
[mpeg2video @ 0x2a96380] 00 motion_type at 12 31
[mpeg2video @ 0x2a96380] 00 motion_type at 34 33
[mpeg2video @ 0x2a96380] ac-tex damaged at 8 8
[mpeg2video @ 0x2a96380] 00 motion_type at 10 26
[mpeg2video @ 0x2a96380] 00 motion_type at 10 9
[mpeg2video @ 0x2a96380] 00 motion_type at 1 10
[mpeg2video @ 0x2a96380] 00 motion_type at 1 11
[mpeg2video @ 0x2a96380] 00 motion_type at 9 12
[mpeg2video @ 0x2a96380] 00 motion_type at 8 13
[mpeg2video @ 0x2a96380] ac-tex damaged at 2 14
[mpeg2video @ 0x2a96380] ac-tex damaged at 4 15
[mpeg2video @ 0x2a96380] 00 motion_type at 27 16
[mpeg2video @ 0x2a96380] 00 motion_type at 34 17
[mpeg2video @ 0x2a96380] ac-tex damaged at 1 18
[mpeg2video @ 0x2a96380] ac-tex damaged at 18 19
[mpeg2video @ 0x2a96380] 00 motion_type at 7 20
[mpeg2video @ 0x2a96380] 00 motion_type at 2 21
[mpeg2video @ 0x2a96380] 00 motion_type at 4 22
[mpeg2video @ 0x2a96380] Warning MVs not available
[mpeg2video @ 0x2a96380] concealing 1305 DC, 1305 AC, 1305 MV errors in P frame
orig-dvbsub.ts: corrupt decoded frame in stream 0
[mpeg2video @ 0x2a96380] skipped MB in I-frame at 1 32
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 33
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 34
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 35
[mpeg2video @ 0x2a96380] ac-tex damaged at 41 31
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 15
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 16
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 17
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 18
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 19
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 20
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 21
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 22
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 23
[mpeg2video @ 0x2a96380] ac-tex damaged at 1 24
[mpeg2video @ 0x2a96380] Invalid mb type in I-frame at 0 25
[mpeg2video @ 0x2a96380] Invalid mb type in I-frame at 0 26
[mpeg2video @ 0x2a96380] skipped MB in I-frame at 1 27
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 28
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 29
[mpeg2video @ 0x2a96380] ac-tex damaged at 0 30
[mpeg2video @ 0x2a96380] skipped MB in I-frame at 1 31
[mpeg2video @ 0x2a96380] Warning MVs not available
[mpeg2video @ 0x2a96380] concealing 945 DC, 945 AC, 945 MV errors in I frame
[mpegts @ 0x298c840] PES packet size mismatch
[mpegts @ 0x298c840] Packet corrupt (stream = 1, dts = 316186038).
orig-dvbsub.ts: corrupt decoded frame in stream 0
[mpegts @ 0x298c840] PES packet size mismatch
[mpegts @ 0x298c840] Packet corrupt (stream = 1, dts = 316272438).
[mpegts @ 0x298c840] Packet corrupt (stream = 0, dts = 316307953).
[mpegts @ 0x298c840] PES packet size mismatch
[mpegts @ 0x298c840] Packet corrupt (stream = 2, dts = 316064783).
[NULL @ 0x2994f40] Junk in packet
[dvbsub @ 0x29b1080] Invalid object location! 210-720 44-44 11
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x88
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x72
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x0
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0xf
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x13
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x0
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x1
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x7
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0xdc
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x0
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x3
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x40
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x3
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0xe9
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0x3
[dvbsub @ 0x29b1080] Unknown/unsupported pixel block 0xeb
[dvbsub @ 0x29b1080] Invalid object location! 210-720 45-44 11
[mpegts @ 0x298c840] PES packet size mismatchme=00:00:43.64 bitrate= 816.9kbits/s speed=14.5x    
[mpegts @ 0x298c840] Packet corrupt (stream = 2, dts = 318937583).
frame= 1153 fps=349 q=-1.0 Lsize=    5053kB time=00:00:46.21 bitrate= 895.7kbits/s speed=  14x    
video:3912kB audio:1079kB subtitle:39kB other streams:0kB global headers:0kB muxing overhead: 0.458955%
[libx264 @ 0x2ab9040] frame I:13    Avg QP:17.93  size: 26035
[libx264 @ 0x2ab9040] frame P:331   Avg QP:20.85  size:  6893
[libx264 @ 0x2ab9040] frame B:809   Avg QP:23.28  size:  1712
[libx264 @ 0x2ab9040] consecutive B-frames:  1.7%  4.3% 29.4% 64.5%
[libx264 @ 0x2ab9040] mb I  I16..4: 14.4% 77.0%  8.7%
[libx264 @ 0x2ab9040] mb P  I16..4:  4.3% 12.4%  0.5%  P16..4: 34.2% 10.8%  7.0%  0.0%  0.0%    skip:30.8%
[libx264 @ 0x2ab9040] mb B  I16..4:  0.4%  1.0%  0.0%  B16..8: 31.8%  3.2%  0.5%  direct: 3.7%  skip:59.4%  L0:42.7% L1:48.8% BI: 8.5%
[libx264 @ 0x2ab9040] 8x8 transform intra:72.8% inter:85.8%
[libx264 @ 0x2ab9040] coded y,uvDC,uvAC intra: 35.9% 37.8% 11.3% inter: 8.9% 14.9% 0.2%
[libx264 @ 0x2ab9040] i16 v,h,dc,p: 35% 36%  9% 20%
[libx264 @ 0x2ab9040] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 20% 43%  1%  1%  3%  1%  3%  2%
[libx264 @ 0x2ab9040] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 16% 12%  5%  6% 10%  4%  9%  3%
[libx264 @ 0x2ab9040] i8c dc,h,v,p: 49% 24% 24%  3%
[libx264 @ 0x2ab9040] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x2ab9040] ref P L0: 57.6% 11.5% 22.1%  8.8%
[libx264 @ 0x2ab9040] ref B L0: 81.7% 14.9%  3.3%
[libx264 @ 0x2ab9040] ref B L1: 95.2%  4.8%
[libx264 @ 0x2ab9040] kb/s:692.93
--8<---------------cut here---------------end--------------->8---


> You input seems to have some corruption (which should have nothing to
> do with your issue).

Yes, the reception of the TV-channel was not very good...


> Have you tried keeping the subs as dvbsubs (instead of dvd)?

Yes.


> Does your TV render them then?

Unfortunately not.


Thanks for your help. Cheers,
-- 
           Peter



More information about the ffmpeg-user mailing list