Beispiel #1
0
 def setUp(self):
     self.videofile_fr1 = os.path.join(
         settings['tempdir'], '~test_av_frame_source_test_case_fr_1.mp4')
     self.videofile_fr3 = os.path.join(
         settings['tempdir'], '~test_av_frame_source_test_case_fr_3.mp4')
     # make a 1fr and 3fr video
     mk_sample_video(self.videofile_fr1, 1, 320, 240, fractions.Fraction(1))
     mk_sample_video(self.videofile_fr3, 1, 320, 240, fractions.Fraction(3))
     # path to avutil fr to compare with
     self.imagefile = os.path.join(settings['tempdir'],
                                   '~test_av_frame_source_test_case.png')
     self.src_1 = OpenCvFrameSource(self.videofile_fr1)
     self.src_3 = OpenCvFrameSource(self.videofile_fr3)
     self.src_3.open()
Beispiel #2
0
 def render(self):
     filename = os.path.splitext(os.path.basename(self.src))[0]
     tempfile1 = os.path.join(
         settings['tempdir'],
         '{}.{}.{}'.format(filename, os.getpid(),
                           settings['v_container']).lower())
     log.info("Rendering to:\t%s", os.path.basename(tempfile1))
     log.info("Final destination:\t%s", self.dest)
     self.fr_source = OpenCvFrameSource(self.src)
     self.fr_source.open()
     self.mk_render_pipe(tempfile1)
     self.frs_to_render = 0
     for sub in self.sequence.subregions:
         if not self.keep_subregions and sub.skip:
             continue
         else:
             self.subs_to_render += 1
             self.frs_to_render += self.calc_frs_to_render(sub)
     if self.show_preview:
         cv2.namedWindow(self.window_title, cv2.WINDOW_OPENGL)
         cv2.resizeWindow(self.window_title, self.w, self.h)
     self.progress = 0
     log.info("Rendering progress:\t{:.2f}%".format(0))
     for i, sub in enumerate(self.sequence.subregions):
         if not self.keep_subregions and sub.skip:
             log.info("Skipping Subregion (%d): %s", i, str(sub))
             continue
         else:
             log.info("Start working on Subregion (%d): %s", i, str(sub))
             self.curr_sub_idx += 1
             self.render_subregion(sub)
             log.info("Done rendering Subregion (%d)", i)
     if self.show_preview:
         cv2.destroyAllWindows()
     self.fr_source.close()
     self.close()
     log.info("Rendering is finished")
     if self.mux:
         if self.av_info['a_stream_exists']:
             self.mux_orig_audio_with_rendered_video(tempfile1)
             return
         else:
             log.warn(
                 'Not muxing because no audio stream exists in the input file'
             )
     log.info("Moving: %s -> %s", os.path.basename(tempfile1), self.dest)
     shutil.move(tempfile1, self.dest)
Beispiel #3
0
    def render_video(self):
        src_fname = os.path.splitext(os.path.basename(self.src))[0]
        tempfile1 = os.path.join(
            settings['tempdir'],
            '~{}.{}'.format(src_fname, settings['v_container']).lower())

        self.fr_source = OpenCvFrameSource(self.src)
        self.fr_source.open()
        self.mk_render_pipe(tempfile1)
        self.subs_to_render = 0

        for sub in self.sequence.subregions:
            if self.trim_regions and sub.skip:
                continue
            else:
                self.subs_to_render += 1

        if self.show_preview:
            cv2.namedWindow(self.preview_win_title, cv2.WINDOW_OPENGL)
            cv2.resizeWindow(self.preview_win_title, self.w, self.h)

        for i, sub in enumerate(self.sequence.subregions):
            if self.trim_regions and sub.skip:
                continue
            else:
                self.curr_sub_idx += 1
                log.info('Rendering: Sub {0:02d}...'.format(i))
                self.render_subregion(sub)

        if self.show_preview:
            cv2.destroyAllWindows()

        self.fr_source.close()
        self.close_render_pipe()

        if self.mux:
            self.mux_original_audio_with_rendered_video(tempfile1)
            return
        else:
            shutil.move(tempfile1, self.dst)