def make_crab(self, t: str, u_id: int) -> bool: """Non blocking crab rave video generation from DankMemer bot https://github.com/DankMemer/meme-server/blob/master/endpoints/crab.py """ fp = str(cog_data_path(self) / f"Verdana.ttf") clip = VideoFileClip(str(cog_data_path(self)) + "/template.mp4") # clip.volume(0.5) text = TextClip(t[0], fontsize=48, color="white", font=fp) text2 = (TextClip("____________________", fontsize=48, color="white", font=fp).set_position( ("center", 210)).set_duration(15.4)) text = text.set_position(("center", 200)).set_duration(15.4) text3 = (TextClip(t[1], fontsize=48, color="white", font=fp).set_position( ("center", 270)).set_duration(15.4)) video = CompositeVideoClip([ clip, text.crossfadein(1), text2.crossfadein(1), text3.crossfadein(1) ]).set_duration(15.4) video = video.volumex(0.1) video.write_videofile( str(cog_data_path(self)) + f"/{u_id}crabrave.mp4", threads=1, preset="superfast", verbose=False, logger=None, temp_audiofile=str( cog_data_path(self) / f"{u_id}crabraveaudio.mp3") # ffmpeg_params=["-filter:a", "volume=0.5"] ) clip.close() video.close() return True
clip = clip.fadein(step["fade_in"]) # cross fade out if next clip is cross fading in if nextStep and nextStep["crossfade"] > 0 and nextStep["fade_in"] > 0: clip = clip.crossfadeout(nextStep["fade_in"]) elif step["fade_out"] > 0: clip = clip.fadeout(step["fade_out"]) # fade in/out audio if step["fade_in"] > 0: clip = clip.audio_fadein(step["fade_in"]) if step["fade_out"] > 0: clip = clip.audio_fadeout(step["fade_out"]) clips.append(clip) printProgress(i + 1, steps) video = CompositeVideoClip(clips, size=(width, height)) video = video.set_duration(duration) if a.VOLUME != 1.0: video = video.volumex(a.VOLUME) if a.QUALITY == "high": video.write_videofile(a.OUTPUT_FILE, preset="slow", audio_bitrate="256k", audio_fps=48000, bitrate="19820k") else: video.write_videofile(a.OUTPUT_FILE) print("Wrote %s to file" % a.OUTPUT_FILE)