Ejemplo n.º 1
0
    def make_crab(self, t, u_id):
        """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")
        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.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) / "crabraveaudio.mp3")
        )
        clip.close()
        video.close()
        return True
Ejemplo n.º 2
0
    def generate(self, avatars, text, usernames, kwargs):
        raise BadRequest(
            "Crab endpoint is disabled on flare's imgen instance. Use trustys crab rave cog or host your own imgen."
        )
        name = uuid.uuid4().hex + '.mp4'

        @after_this_request
        def remove(response):  # pylint: disable=W0612
            try:
                os.remove(name)
            except (FileNotFoundError, OSError, PermissionError):
                pass

            return response

        t = text.upper().replace(', ', ',').split(',')
        if len(t) != 2:
            raise BadRequest(
                'You must submit exactly two strings split by comma')
        if (not t[0] and not t[0].strip()) or (not t[1] and not t[1].strip()):
            raise BadRequest('Cannot render empty text')
        clip = VideoFileClip("assets/crab/template.mp4")
        text = TextClip(t[0], fontsize=48, color='white', font='Symbola')
        text2 = TextClip("____________________", fontsize=48, color='white', font='Verdana')\
            .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='Verdana')\
            .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.write_videofile(name,
                              threads=4,
                              preset='superfast',
                              verbose=False)
        clip.close()
        video.close()
        return send_file(name, mimetype='video/mp4')
Ejemplo n.º 3
0
    def gencrabrave(self, t, filename):
        clip = VideoFileClip("crabtemplate.mp4")
        text = TextClip(t[0], fontsize=48, color='white', font='Verdana')
        text2 = TextClip("____________________", fontsize=48, color='white', font='Verdana')\
         .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='Verdana')\
         .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.write_videofile(filename,
                              threads=25,
                              preset='superfast',
                              verbose=False)
        clip.close()
        video.close()
Ejemplo n.º 4
0
        def process_clip():
            clip = VideoFileClip("assets/crabrave.mp4")
            text = TextClip(self._trunc(top_text).upper(),
                            fontsize=48,
                            color='white',
                            font='Symbola').set_position(
                                ("center", 200)).set_duration(15.4)
            text2 = TextClip("____________________", fontsize=48, color='white', font='Verdana')\
                .set_position(("center", 210)).set_duration(15.4)
            text3 = TextClip(self._trunc(bottom_text).upper(),
                             fontsize=48,
                             color='white',
                             font='Verdana').set_position(
                                 ("center", 270)).set_duration(15.4)

            video = CompositeVideoClip([
                clip,
                text.crossfadein(1),
                text2.crossfadein(1),
                text3.crossfadein(1)
            ]).set_duration(15.4)
            return video, [text, text2, text3, clip]
                             method='caption',
                             align='center').set_pos("center")
        text_clip = text_clip.set_duration(audio_duration)
        text_clip = text_clip.set_audio(audio)

        video_clip = VideoFileClip(f'../{videos}')
        video_duration = video_clip.duration

        isf_logo = ImageClip(
            '/home/sr1/Projects/Others/videoAUTO/scripts/mediaFiles/isf.png'
        ).set_duration(video_duration)

        render = CompositeVideoClip([
            video_clip.set_start(audio_duration),
            isf_logo.set_start(audio_duration).set_pos(('left', 'bottom')),
            text_clip.crossfadein(1).crossfadeout(1)
        ],
                                    bg_color=[128, 0, 0])
        render.write_videofile(f'{num}.mp4')

        videos_list.append(f'{num}.mp4')
        num += 1

run('rm ../*.mp4', shell=True)
run('mv *.mp4 ../.', shell=True)
chdir('..')
run(['rm', '-rf', './tmpVids'])

videos = []
for video in videos_list:
    video = VideoFileClip(video)