diff --git a/fsck2025/__init__.py b/fsck2025/__init__.py index deb0206..9fa165b 100644 --- a/fsck2025/__init__.py +++ b/fsck2025/__init__.py @@ -19,34 +19,34 @@ def introFrames(args): ) # fade in logo - frames = 3 * fps - for i in range(0, frames): - # source: matrix(0.66093871,0,0,0.66093871,325.49887,111.96043) - # target: matrix(1, 0, 0, 1, 0, 0) - size = 0.66 + easeInOutQuad(i, 0.0, 1.0 - 0.66, frames) - posx = easeInOutQuad(frames - i, 0.0, 325.49887, frames) - posy = easeInOutQuad(frames - i, 0.0, 111.96043, frames) - yield ( - ( - "glogo", - "attr", - "transform", - # the easing function can’t handle easing from larger to smaller, so use this hacky workaround - f"translate(0,{easeInQuad(frames - i, 0.0, 200.0, frames)})", - ), - ("glogo", "style", "opacity", easeOutQuad(i, 0, 1, frames)), - # scale in the fsck text banner behind the foreground elements - # target size is 5.414656 in both x and y - ( - "fsck-banner", - "attr", - "transform", - f"matrix({size:.4f},0,0,{size:.4f},{posx:.4f},{posy:.4f})", - ), - ("title", "style", "opacity", 0), - ("persons", "style", "opacity", 0), - ("sparkle", "style", "opacity", 0), - ) + # frames = 1 * fps + # for i in range(0, frames): + # # source: matrix(0.66093871,0,0,0.66093871,325.49887,111.96043) + # # target: matrix(1, 0, 0, 1, 0, 0) + # size = 0.66 + easeInOutSine(i, 0.0, 1.0 - 0.66, frames) + # posx = easeInOutSine(frames - i, 0.0, 325.49887, frames) + # posy = easeInOutSine(frames - i, 0.0, 111.96043, frames) + # yield ( + # ( + # "glogo", + # "attr", + # "transform", + # # the easing function can’t handle easing from larger to smaller, so use this hacky workaround + # f"translate(0,{easeInQuad(frames - i, 0.0, 200.0, frames)})", + # ), + # ("glogo", "style", "opacity", easeOutSine(i, 0, 1, frames)), + # # scale in the fsck text banner behind the foreground elements + # # target size is 5.414656 in both x and y + # ( + # "fsck-banner", + # "attr", + # "transform", + # f"matrix({size:.4f},0,0,{size:.4f},{posx:.4f},{posy:.4f})", + # ), + # ("title", "style", "opacity", 0), + # ("persons", "style", "opacity", 0), + # ("sparkle", "style", "opacity", 0), + # ) frames = 1 * fps for i in range(0, frames): @@ -58,53 +58,41 @@ def introFrames(args): ) # fade in title and persons - frames = 3 * fps + frames = 2 * fps intermediate = (frames * 1) // 3 for i in range(0, intermediate): yield ( - ("title", "style", "opacity", easeOutQuad(i, 0, 1, frames)), + ("title", "style", "opacity", easeOutSine(i, 0, 1, frames)), ("persons", "style", "opacity", 0), ("glogo", "style", "opacity", 1), ( "sparkle", "style", "opacity", - easeOutQuad(min(i * 2, intermediate), 0, 1, intermediate), - ), - ( - "sparkle", - "attr", - "transform", - f"translate({-463.66869 + easeLinear(i, 0.0, 378.32308 + 463.66869, frames)}, 0)", + easeOutSine(min(i * 2, intermediate), 0, 1, intermediate), ), ) for i in range(intermediate, frames): yield ( - ("title", "style", "opacity", easeOutQuad(i, 0, 1, frames)), + ("title", "style", "opacity", easeOutSine(i, 0, 1, frames)), ( "persons", "style", "opacity", - easeOutQuad(i - intermediate, 0, 1, frames - intermediate), + easeOutSine(i - intermediate, 0, 1, frames - intermediate), ), ("glogo", "style", "opacity", 1), ( "sparkle", "style", "opacity", - easeInQuad( - i - intermediate, + easeInSine( + i-intermediate, 1, -1, frames - intermediate, ), ), - ( - "sparkle", - "attr", - "transform", - f"translate({-463.66869 + easeLinear(i, 0.0, 378.32308 + 463.66869, frames)}, 0)", - ), ) # show whole image for 5 seconds @@ -146,7 +134,7 @@ def outroFrames(args): def debug(): render( - ["intro.svg", "intro.flac"], + "intro.svg", "../intro.ts", introFrames, { @@ -181,7 +169,7 @@ def tasks(queue, args, idlist, skiplist): # generate a task description and put it into the queue queue.put( Rendertask( - infile=["intro.svg", "intro.flac"], + infile="intro.svg", outfile=str(event["id"]) + ".ts", sequence=introFrames, parameters={ diff --git a/fsck2025/artwork/FSCK_Banner.svg b/fsck2025/artwork/FSCK_Banner.svg deleted file mode 100644 index 2a152f8..0000000 --- a/fsck2025/artwork/FSCK_Banner.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - diff --git a/fsck2025/artwork/intro.flac b/fsck2025/artwork/intro.flac deleted file mode 100644 index 09637db..0000000 Binary files a/fsck2025/artwork/intro.flac and /dev/null differ diff --git a/fsck2025/artwork/intro.svg b/fsck2025/artwork/intro.svg index 6da939f..0fb6d40 100644 --- a/fsck2025/artwork/intro.svg +++ b/fsck2025/artwork/intro.svg @@ -39,7 +39,7 @@ id="path17" />$title$title$personnames + id="tspan5">$personnames diff --git a/fsck2025/artwork/pip_template_fsck2025.svg b/fsck2025/artwork/pip_template_fsck2024_final.svg similarity index 99% rename from fsck2025/artwork/pip_template_fsck2025.svg rename to fsck2025/artwork/pip_template_fsck2024_final.svg index 6d4f12e..bd1b0a1 100644 --- a/fsck2025/artwork/pip_template_fsck2025.svg +++ b/fsck2025/artwork/pip_template_fsck2024_final.svg @@ -27,15 +27,15 @@ inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:document-units="px" - inkscape:zoom="1.0127873" - inkscape:cx="931.58751" - inkscape:cy="488.25652" + inkscape:zoom="1.2564954" + inkscape:cx="913.25441" + inkscape:cy="482.29383" inkscape:window-width="3840" inkscape:window-height="2052" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" - inkscape:current-layer="layer2" + inkscape:current-layer="layer1" showgrid="false" /> + transform="rotate(15)" /> diff --git a/fsck2025/artwork/sbs_template_fsck2025.svg b/fsck2025/artwork/sbs_template_fsck2025.svg deleted file mode 100644 index 50145af..0000000 --- a/fsck2025/artwork/sbs_template_fsck2025.svg +++ /dev/null @@ -1,243 +0,0 @@ - - - - diff --git a/renderlib.py b/renderlib.py index bf18748..c5407cd 100644 --- a/renderlib.py +++ b/renderlib.py @@ -41,8 +41,7 @@ class Rendertask: def __init__(self, infile, parameters={}, outfile=None, workdir='.', sequence=None): if isinstance(infile, list): self.infile = infile[0] - self.audiofile = infile[1] - print(f"using audio file {self.audiofile}") + # self.audiofile = infile[1] else: self.infile = infile self.audiofile = None @@ -201,12 +200,16 @@ def rendertask_video(task): cmd = 'cd {0} && '.format(task.workdir) cmd += 'ffmpeg -f image2 -i .frames/%04d.png ' if task.audiofile is None: - cmd += '-ar 48000 -ac 1 -f s16le -i /dev/zero ' + cmd += '-ar 48000 -ac 1 -f s16le -i /dev/zero -ar 48000 -ac 1 -f s16le -i /dev/zero ' else: - cmd += '-i {0} '.format(task.audiofile) + cmd += '-i {0} -i {0} '.format(task.audiofile) - cmd += '-map 0:0 -c:v mpeg2video -q:v 2 -aspect 16:9 -map 1:a ' + cmd += '-map 0:0 -c:v mpeg2video -q:v 2 -aspect 16:9 ' + if task.audiofile is None: + cmd += '-map 1:0 -map 2:0 ' + else: + cmd += '-map 1:0 -c:a copy -map 2:0 -c:a copy ' cmd += '-shortest -f mpegts "{0}"'.format(task.outfile) elif task.outfile.endswith('.mov'): cmd = 'cd {0} && '.format(task.workdir)