Compare commits
6 commits
master
...
events/hac
Author | SHA1 | Date | |
---|---|---|---|
![]() |
474d793d31 | ||
![]() |
7ef49366f1 | ||
![]() |
ab3da26e45 | ||
![]() |
f6977c2c5d | ||
![]() |
108ef79e8d | ||
![]() |
957a4dd4a4 |
7 changed files with 65 additions and 7 deletions
BIN
hackmas2024/VDS_New.ttf
Normal file
BIN
hackmas2024/VDS_New.ttf
Normal file
Binary file not shown.
39
hackmas2024/config.ini
Normal file
39
hackmas2024/config.ini
Normal file
|
@ -0,0 +1,39 @@
|
|||
[default]
|
||||
schedule = https://sessions.hack-mas.at/api/0/xml/schedule
|
||||
template = 290824_Hackmas_intro_video_v3.mp4
|
||||
alpha = false
|
||||
prores = false
|
||||
fontfile = true
|
||||
inout = t
|
||||
|
||||
[title]
|
||||
in = 13
|
||||
out = 21
|
||||
fontfamily =
|
||||
fontfile = VDS_New.ttf
|
||||
fontsize = 75
|
||||
fontcolor = #ffffff
|
||||
x = 1100
|
||||
y = 550
|
||||
|
||||
[speaker]
|
||||
in = 2
|
||||
out = 9
|
||||
fontfamily =
|
||||
fontfile = VDS_New.ttf
|
||||
fontsize = 64
|
||||
fontcolor = #ffffff
|
||||
x = 250
|
||||
y = 1080
|
||||
|
||||
|
||||
[text]
|
||||
in = 0
|
||||
out = 0
|
||||
fontfamily =
|
||||
fontfile = VDS_New.ttf
|
||||
fontsize = 0
|
||||
fontcolor = #ffffff
|
||||
x = 0
|
||||
y = 0
|
||||
text = ''
|
BIN
hackmas2024/hackmas2024-intro-slate.png
Normal file
BIN
hackmas2024/hackmas2024-intro-slate.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 MiB |
BIN
hackmas2024/hackmas2024-outro-slate.png
Normal file
BIN
hackmas2024/hackmas2024-outro-slate.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.5 MiB |
8
hackmas2024/readme.md
Normal file
8
hackmas2024/readme.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Hackmas 2024 Readme
|
||||
|
||||
Get intro-slate from shared storage (provided by event).
|
||||
|
||||
Get outro.ts from shared storage or generate from still images by running:
|
||||
```sh
|
||||
ffmpeg -loop 1 -i hackmas2024-outro-slate.png -f lavfi -i anullsrc -c:v mpeg2video -t 10 -aspect 16:9 -c:a mp2 -b:v 15000k -map 0:v -map 1:a outro.ts
|
||||
```
|
|
@ -228,7 +228,9 @@ def enqueue_job(event):
|
|||
|
||||
t = fit_title(event_title, int(title_fontsize), int(title_x))
|
||||
t = t.replace(':', "\:") # the ffmpeg command needs colons to be escaped
|
||||
t = t.replace('\'', "’") # the ffmpeg command needs ' to be escaped
|
||||
s = fit_speaker(event_personnames, int(speaker_fontsize), int(speaker_x))
|
||||
s = s.replace('\'', "’") # the ffmpeg command needs ' to be escaped
|
||||
|
||||
if args.debug:
|
||||
print('Title: ', t)
|
||||
|
@ -244,6 +246,9 @@ def enqueue_job(event):
|
|||
else:
|
||||
ffmpeg_path = 'ffmpeg'
|
||||
|
||||
title_bordersize = int(title_fontsize) / 30
|
||||
speaker_bordersize = int(speaker_fontsize) / 30
|
||||
text_bordersize = int(text_fontsize) / 30
|
||||
if fontfile == 'true':
|
||||
if platform.system() == 'Windows':
|
||||
videofilter = "drawtext=enable='between({8},{0},{1})':fontfile='{2}':fontsize={3}:fontcolor={4}:x={5}:y={6}:text='{7}',".format(
|
||||
|
@ -253,12 +258,12 @@ def enqueue_job(event):
|
|||
videofilter += "drawtext=enable='between({8},{0},{1})':fontfile='{2}':fontsize={3}:fontcolor={4}:x={5}:y={6}:text='{7}'".format(
|
||||
text_in, text_out, font_tt_win, text_fontsize, text_fontcolor, text_x, text_y, text_text, inout)
|
||||
else:
|
||||
videofilter = "drawtext=enable='between({8},{0},{1})':fontfile='{2}':fontsize={3}:fontcolor={4}:x={5}:y={6}:text='{7}',".format(
|
||||
title_in, title_out, font_t, title_fontsize, title_fontcolor, title_x, title_y, t, inout)
|
||||
videofilter += "drawtext=enable='between({8},{0},{1})':fontfile='{2}':fontsize={3}:fontcolor={4}:x={5}:y={6}:text='{7}',".format(
|
||||
speaker_in, speaker_out, font_s, speaker_fontsize, speaker_fontcolor, speaker_x, speaker_y, s, inout)
|
||||
videofilter += "drawtext=enable='between({8},{0},{1})':fontfile='{2}':fontsize={3}:fontcolor={4}:x={5}:y={6}:text='{7}'".format(
|
||||
text_in, text_out, font_tt, text_fontsize, text_fontcolor, text_x, text_y, text_text, inout)
|
||||
videofilter = "drawtext=enable='between({8},{0},{1})':fontfile='{2}':fontsize={3}:fontcolor={4}:borderw={9}:x={5}:y={6}:text='{7}',".format(
|
||||
title_in, title_out, font_t, title_fontsize, title_fontcolor, title_x, title_y, t, inout, title_bordersize)
|
||||
videofilter += "drawtext=enable='between({8},{0},{1})':fontfile='{2}':fontsize={3}:fontcolor={4}:borderw={9}:x={5}:y={6}:text='{7}',".format(
|
||||
speaker_in, speaker_out, font_s, speaker_fontsize, speaker_fontcolor, speaker_x, speaker_y, s, inout, speaker_bordersize)
|
||||
videofilter += "drawtext=enable='between({8},{0},{1})':fontfile='{2}':fontsize={3}:fontcolor={4}:borderw={9}:x={5}:y={6}:text='{7}'".format(
|
||||
text_in, text_out, font_tt, text_fontsize, text_fontcolor, text_x, text_y, text_text, inout, text_bordersize)
|
||||
else:
|
||||
videofilter = "drawtext=enable='between({8},{0},{1})':font='{2}':fontsize={3}:fontcolor={4}:x={5}:y={6}:text='{7}',".format(
|
||||
title_in, title_out, title_fontfamily, title_fontsize, title_fontcolor, title_x, title_y, t, inout)
|
||||
|
|
|
@ -100,6 +100,12 @@ def events(scheduleUrl, titlemap={}):
|
|||
url = event.find('url').text.strip()
|
||||
else:
|
||||
url = ''
|
||||
|
||||
if event.find('track') is not None:
|
||||
track = event.find('track').text
|
||||
else:
|
||||
track = ''
|
||||
|
||||
# yield a tupel with the event-id, event-title and person-names
|
||||
yield {
|
||||
'day': day.get('index'),
|
||||
|
@ -109,7 +115,7 @@ def events(scheduleUrl, titlemap={}):
|
|||
'persons': personnames,
|
||||
'personnames': ', '.join(personnames),
|
||||
'room': room.attrib['name'],
|
||||
'track': event.find('track').text,
|
||||
'track': track,
|
||||
'url': url
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue