Merge remote-tracking branch 'github/master'

This commit is contained in:
Jannik Beyerstedt 2024-09-21 22:36:33 +02:00
commit 471e0c38b7

View file

@ -5,6 +5,7 @@ import os
import sys import sys
import subprocess import subprocess
import renderlib import renderlib
import schedulelib
import argparse import argparse
import shlex import shlex
from PIL import ImageFont from PIL import ImageFont
@ -173,21 +174,28 @@ def run(command, **kwargs):
def fit_text(string: str, frame_width): def fit_text(string: str, frame_width):
split_line = [x.strip() for x in string.split()] split_line = [x.strip() for x in string.split()]
lines = "" lines = []
w = 0 w = 0
line_num = 0 line_num = 0
line = "" line = []
for word in split_line: for word in split_line:
w, _ = translation_font.getsize(" ".join([line, word])) new_line = line + [word.rstrip(':')]
print("{}, {}".format(w, line)) w, _ = translation_font.getsize(" ".join(new_line))
if w > (frame_width): print(w, new_line)
print("too wide, breaking") if w > frame_width:
lines += line.strip() + "\n" print("too wide, breaking", line)
line = "" lines.append(' '.join(line))
line = []
line += word + " " line.append(word.rstrip(':'))
lines += line.strip() if word.endswith(':'):
print(':, breaking', line)
lines.append(' '.join(line))
line = []
if line:
lines.append(' '.join(line))
return lines return lines
@ -232,48 +240,38 @@ def enqueue_job(event):
outfile = os.path.join(os.path.dirname(args.project), event_id + '.ts') outfile = os.path.join(os.path.dirname(args.project), event_id + '.ts')
videofilter = "drawtext=fontfile={fontfile}:fontsize={fontsize}:fontcolor={fontcolor}:x={x}:y={y}:text='{text}':".format( videofilter = ""
fontfile=font_t, for idx, line in enumerate(t):
fontsize=title_fontsize, videofilter += "drawtext=fontfile={fontfile}:fontsize={fontsize}:fontcolor={fontcolor}:x={x}:y={y}:text='{text}':".format(
fontcolor=title_fontcolor, fontfile=font_t,
x=title_x, fontsize=title_fontsize,
y=title_y, fontcolor=title_fontcolor,
text=t) x=title_x,
videofilter += "alpha='if(lt(t,{fade_in_start_time}),0,if(lt(t,{fade_in_end_time}),(t-{fade_in_start_time})/{fade_duration},if(lt(t,{fade_out_start_time}),1,if(lt(t,{fade_out_end_time}),({fade_duration}-(t-{fade_out_start_time}))/{fade_duration},0))))',".format( y=title_y + (idx * title_fontsize),
fade_in_start_time=title_in, text=line)
fade_in_end_time=title_in + fade_duration, videofilter += "alpha='if(lt(t,{fade_in_start_time}),0,if(lt(t,{fade_in_end_time}),(t-{fade_in_start_time})/{fade_duration},if(lt(t,{fade_out_start_time}),1,if(lt(t,{fade_out_end_time}),({fade_duration}-(t-{fade_out_start_time}))/{fade_duration},0))))',".format(
fade_out_start_time=title_in + fade_duration + title_duration, fade_in_start_time=title_in,
fade_out_end_time=title_in + fade_duration + title_duration + fade_duration, fade_in_end_time=title_in + fade_duration,
fade_duration=fade_duration fade_out_start_time=title_in + fade_duration + title_duration,
) fade_out_end_time=title_in + fade_duration + title_duration + fade_duration,
videofilter += "drawtext=fontfile={fontfile}:fontsize={fontsize}:fontcolor={fontcolor}:x={x}:y={y}:text='{text}':".format( fade_duration=fade_duration
fontfile=font_s, )
fontsize=speaker_fontsize,
fontcolor=speaker_fontcolor, for idx, line in enumerate(s):
x=speaker_x, videofilter += "drawtext=fontfile={fontfile}:fontsize={fontsize}:fontcolor={fontcolor}:x={x}:y={y}:text='{text}':".format(
y=speaker_y, fontfile=font_s,
text=s) fontsize=speaker_fontsize,
videofilter += "alpha='if(lt(t,{fade_in_start_time}),0,if(lt(t,{fade_in_end_time}),(t-{fade_in_start_time})/{fade_duration},if(lt(t,{fade_out_start_time}),1,if(lt(t,{fade_out_end_time}),({fade_duration}-(t-{fade_out_start_time}))/{fade_duration},0))))',".format( fontcolor=speaker_fontcolor,
fade_in_start_time=speaker_in, x=speaker_x,
fade_in_end_time=speaker_in + fade_duration, y=speaker_y + (idx * speaker_fontsize),
fade_out_start_time=speaker_in + fade_duration + speaker_duration, text=line)
fade_out_end_time=speaker_in + fade_duration + speaker_duration + fade_duration, videofilter += "alpha='if(lt(t,{fade_in_start_time}),0,if(lt(t,{fade_in_end_time}),(t-{fade_in_start_time})/{fade_duration},if(lt(t,{fade_out_start_time}),1,if(lt(t,{fade_out_end_time}),({fade_duration}-(t-{fade_out_start_time}))/{fade_duration},0))))',".format(
fade_duration=fade_duration fade_in_start_time=speaker_in,
) fade_in_end_time=speaker_in + fade_duration,
videofilter += "drawtext=fontfile={fontfile}:fontsize={fontsize}:fontcolor={fontcolor}:x={x}:y={y}:text={text}:".format( fade_out_start_time=speaker_in + fade_duration + speaker_duration,
fontfile=font_tt, fade_out_end_time=speaker_in + fade_duration + speaker_duration + fade_duration,
fontsize=text_fontsize, fade_duration=fade_duration
fontcolor=text_fontcolor, )
x=text_x,
y=text_y,
text=text_text)
videofilter += "alpha='if(lt(t,{fade_in_start_time}),0,if(lt(t,{fade_in_end_time}),(t-{fade_in_start_time})/{fade_duration},if(lt(t,{fade_out_start_time}),1,if(lt(t,{fade_out_end_time}),({fade_duration}-(t-{fade_out_start_time}))/{fade_duration},0))))'".format(
fade_in_start_time=text_in,
fade_in_end_time=text_in + fade_duration,
fade_out_start_time=text_in + fade_duration + text_duration,
fade_out_end_time=text_in + fade_duration + text_duration + fade_duration,
fade_duration=fade_duration
)
if fileformat == '.mov': if fileformat == '.mov':
if alpha == 'true': if alpha == 'true':