Use Bebas Neue and Inter fonts
This commit is contained in:
parent
ffc1974343
commit
0c1ee1c42a
2 changed files with 27 additions and 23 deletions
19
README.md
19
README.md
|
|
@ -23,7 +23,9 @@ sudo apt install ffmpeg
|
|||
The default title/stamp styling uses these fonts:
|
||||
|
||||
- Bebas Neue for the opening title, date, and location
|
||||
- Montserrat for the bottom-left and bottom-right stamps
|
||||
- Inter for the bottom-left and bottom-right stamps
|
||||
|
||||
Both fonts support common Danish and Croatian characters such as `æ ø å Æ Ø Å č ć ž š đ Č Ć Ž Š Đ`.
|
||||
|
||||
Install them locally for the current user:
|
||||
|
||||
|
|
@ -31,16 +33,8 @@ Install them locally for the current user:
|
|||
mkdir -p ~/.local/share/fonts/google
|
||||
curl -L -o ~/.local/share/fonts/google/BebasNeue-Regular.ttf \
|
||||
'https://github.com/google/fonts/raw/main/ofl/bebasneue/BebasNeue-Regular.ttf'
|
||||
curl -L -o ~/.local/share/fonts/google/Montserrat%5Bwght%5D.ttf \
|
||||
'https://github.com/google/fonts/raw/main/ofl/montserrat/Montserrat%5Bwght%5D.ttf'
|
||||
fc-cache -f ~/.local/share/fonts/google
|
||||
```
|
||||
|
||||
Optional font also used during experimentation:
|
||||
|
||||
```bash
|
||||
curl -L -o ~/.local/share/fonts/google/Cinzel%5Bwght%5D.ttf \
|
||||
'https://github.com/google/fonts/raw/main/ofl/cinzel/Cinzel%5Bwght%5D.ttf'
|
||||
curl -L -o ~/.local/share/fonts/google/Inter%5Bopsz,wght%5D.ttf \
|
||||
'https://github.com/google/fonts/raw/main/ofl/inter/Inter%5Bopsz,wght%5D.ttf'
|
||||
fc-cache -f ~/.local/share/fonts/google
|
||||
```
|
||||
|
||||
|
|
@ -48,8 +42,7 @@ Check that fonts are available:
|
|||
|
||||
```bash
|
||||
fc-match 'Bebas Neue'
|
||||
fc-match 'Montserrat'
|
||||
fc-match 'Cinzel'
|
||||
fc-match 'Inter'
|
||||
```
|
||||
|
||||
## Input folder
|
||||
|
|
|
|||
31
movmaker.py
31
movmaker.py
|
|
@ -386,47 +386,58 @@ def build_video(
|
|||
final_label = "vout"
|
||||
title_label = "titled"
|
||||
title_font = str(Path.home() / ".local/share/fonts/google/BebasNeue-Regular.ttf")
|
||||
stamp_font = str(Path.home() / ".local/share/fonts/google/Montserrat%5Bwght%5D.ttf")
|
||||
stamp_font = str(Path.home() / ".local/share/fonts/google/Inter%5Bopsz,wght%5D.ttf")
|
||||
if title_lines:
|
||||
title_font_size = max(44, height // 14)
|
||||
title_font_size = max(50, height // 12)
|
||||
subtitle_font_size = max(28, height // 24)
|
||||
main_title = data.title or title_lines[0]
|
||||
subtitle = " | ".join(x for x in [data.date, data.place] if x)
|
||||
title_alpha = "if(lt(t\\,5)\\,1\\,if(lt(t\\,6)\\,6-t\\,0))"
|
||||
if subtitle:
|
||||
title_y = f"(h-text_h)/2-{title_font_size // 2}"
|
||||
filters.append(
|
||||
f"[{current}]drawtext=fontfile='{title_font}':text='{drawtext_escape(main_title)}':x=(w-text_w)/2:y=(h-text_h)/2-{title_font_size // 2}:"
|
||||
f"fontsize={title_font_size}:fontcolor=white:borderw=3:bordercolor=black:"
|
||||
f"[{current}]drawtext=fontfile='{title_font}':text='{drawtext_escape(main_title)}':x=(w-text_w)/2:y={title_y}:"
|
||||
f"fontsize={title_font_size}:text_spacing=4:fontcolor=white:borderw=3:bordercolor=black:"
|
||||
f"alpha='{title_alpha}':enable='between(t,0,6)'[title0]"
|
||||
)
|
||||
filters.append(
|
||||
f"[title0]drawtext=fontfile='{title_font}':text='{drawtext_escape(subtitle)}':x=(w-text_w)/2:y=(h-text_h)/2+{subtitle_font_size}:"
|
||||
f"[title0]drawtext=fontfile='{title_font}':text='{drawtext_escape(main_title)}':x=(w-text_w)/2+1:y={title_y}:"
|
||||
f"fontsize={title_font_size}:text_spacing=4:fontcolor=white:borderw=3:bordercolor=black:"
|
||||
f"alpha='{title_alpha}':enable='between(t,0,6)'[title0b]"
|
||||
)
|
||||
filters.append(
|
||||
f"[title0b]drawtext=fontfile='{title_font}':text='{drawtext_escape(subtitle)}':x=(w-text_w)/2:y=(h-text_h)/2+{subtitle_font_size}:"
|
||||
f"fontsize={subtitle_font_size}:fontcolor=white:borderw=3:bordercolor=black:"
|
||||
f"alpha='{title_alpha}':enable='between(t,0,6)'[{title_label}]"
|
||||
)
|
||||
else:
|
||||
filters.append(
|
||||
f"[{current}]drawtext=fontfile='{title_font}':text='{drawtext_escape(main_title)}':x=(w-text_w)/2:y=(h-text_h)/2:"
|
||||
f"fontsize={title_font_size}:fontcolor=white:borderw=3:bordercolor=black:"
|
||||
f"fontsize={title_font_size}:text_spacing=4:fontcolor=white:borderw=3:bordercolor=black:"
|
||||
f"alpha='{title_alpha}':enable='between(t,0,6)'[title0]"
|
||||
)
|
||||
filters.append(
|
||||
f"[title0]drawtext=fontfile='{title_font}':text='{drawtext_escape(main_title)}':x=(w-text_w)/2+1:y=(h-text_h)/2:"
|
||||
f"fontsize={title_font_size}:text_spacing=4:fontcolor=white:borderw=3:bordercolor=black:"
|
||||
f"alpha='{title_alpha}':enable='between(t,0,6)'[{title_label}]"
|
||||
)
|
||||
else:
|
||||
filters.append(f"[{current}]copy[{title_label}]")
|
||||
|
||||
stamp_size = max(14, height // 60)
|
||||
stamp_size = max(11, height // 80)
|
||||
stamp_lines = [x for x in [data.title, data.date, data.place] if x]
|
||||
stamp_text = drawtext_escape(" | ".join(stamp_lines))
|
||||
stamp_left_label = "stamp_left"
|
||||
if stamp_text:
|
||||
filters.append(
|
||||
f"[{title_label}]drawtext=fontfile='{stamp_font}':text='{stamp_text}':x=24:y=h-text_h-18:"
|
||||
f"fontsize={stamp_size}:fontcolor=white@0.92:borderw=2:bordercolor=black@0.85[{stamp_left_label}]"
|
||||
f"fontsize={stamp_size}:fontcolor=white:borderw=3:bordercolor=black[{stamp_left_label}]"
|
||||
)
|
||||
else:
|
||||
filters.append(f"[{title_label}]copy[{stamp_left_label}]")
|
||||
filters.append(
|
||||
f"[{stamp_left_label}]drawtext=fontfile='{stamp_font}':text='marijo@novosel.dk':x=w-text_w-24:y=h-text_h-18:"
|
||||
f"fontsize={stamp_size}:fontcolor=white@0.92:borderw=2:bordercolor=black@0.85[{final_label}]"
|
||||
f"[{stamp_left_label}]drawtext=fontfile='{stamp_font}':text='@bubulescu':x=w-text_w-24:y=h-text_h-18:"
|
||||
f"fontsize={stamp_size}:fontcolor=white:borderw=3:bordercolor=black[{final_label}]"
|
||||
)
|
||||
|
||||
cmd += ["-filter_complex", ";".join(filters), "-map", f"[{final_label}]"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue