Beispiel #1
0
    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)