Video Production Asked by d9ngle on January 4, 2022
Here’s how I’m using ffmpeg
to hardcode the subtitles:
ffmpeg -i tmp/input.mp4 -vf "subtitles=tmp/input.mp4:force_style='OutlineColour=&H80000000,BorderStyle=3,Outline=1,Shadow=0,MarginV=20,Fontname=Liberation Mono'" -avoid_negative_ts make_zero tmp/output.mp4
which works fine if the subtitle is plain text but if it has html
tags in it, then it reverts back to using system’s default font. <i> hello </i>
for example causes problem.
I’ve tried cleaning up html tags and then using -vf "subtitles=cleanedsubs.srt:..."
but it doesn’t work even on plain texts.
How can I force same font even on italic / bold / any other forms?
Extra info
Running:
ffmpeg -i tmp/input.mp4 -filter_complex "subtitles=tmp/input.mp4:force_style='fontname=Liberation Mono'" -f null -
Shows:
[Parsed_subtitles_0 @ 0x55ad579abd00] Using font provider fontconfig
Stream mapping:
Stream #0:1 (h264) -> subtitles (graph 0)
subtitles (graph 0) -> Stream #0:0 (wrapped_avframe)
Stream #0:0 -> #0:1 (aac (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
[Parsed_subtitles_0 @ 0x55ad579aa3c0] Shaper: FriBidi 0.19.7 (SIMPLE) HarfBuzz-ng 1.7.2 (COMPLEX)
[Parsed_subtitles_0 @ 0x55ad579aa3c0] Using font provider fontconfig
[Parsed_subtitles_0 @ 0x55ad579aa3c0] fontselect: (Liberation Mono, 400, 0) -> /usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf, 0, LiberationMono
[Parsed_subtitles_0 @ 0x55ad579aa3c0] fontselect: (Liberation Mono, 400, 100) -> /usr/share/fonts/truetype/liberation/LiberationMono-Italic.ttf, 0, LiberationMono-Italic
[Parsed_subtitles_0 @ 0x55ad579aa3c0] fontselect: (Serif, 400, 100) -> /usr/share/fonts/truetype/dejavu/DejaVuSerif-Italic.ttf, 0, DejaVuSerif-Italic
↑
problem
Possible bug when feeding mov_text to subtitles filter. I can reproduce the issue in git master branch. I did not investigate further.
Workaround is to provide the subtitles filter the SRT subtitle stream present in your original MKV input (file.mkv
):
ffmpeg -i file.mkv -map 0:a:0 -map 0:v -c:v libx264 -c:a aac -vf "subtitles=file.mkv:stream_index=6:force_style='OutlineColour=&H80000000,BorderStyle=3,Outline=1,Shadow=0,MarginV=20,Fontname=Liberation Mono'" output.mp4
Make sure stream_index
is referencing the desired subtitle stream. See subtitles filter documentation.
Answered by llogan on January 4, 2022
2 Asked on October 28, 2021 by talad88955
2 Asked on October 28, 2021 by daniel-ferreira-castro
1 Asked on October 28, 2021 by skyguy
0 Asked on October 28, 2021 by alwayslearning
1 Asked on October 28, 2021 by kvill
1 Asked on October 28, 2021 by oleksandr-osheko
0 Asked on February 26, 2021 by hashim-aziz
1 Asked on February 19, 2021 by sanchez
2 Asked on February 19, 2021 by thsoft
0 Asked on February 18, 2021 by michael-kahn
3 Asked on February 16, 2021 by gerlof-leuhof
1 Asked on February 2, 2021 by franco-grech
1 Asked on January 25, 2021 by p-jadhav
0 Asked on January 19, 2021 by santhosh
0 Asked on January 19, 2021 by user310291
Get help from others!
Recent Answers
Recent Questions
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP