예제 #1
0
파일: enc.py 프로젝트: kattekrab/veyepar
    def process_ep(self, episode):

        ret = False

        cls = Cut_List.objects.filter(
            episode=episode, apply=True).order_by('sequence')

        if cls:

            # get list of raw footage for this episode
            rfs = Raw_File.objects. \
                filter(cut_list__episode=episode).\
                exclude(trash=True).distinct()

            # get a .mlt file for this episode (mlt_pathname)
            # look for custom/slug.mlt and just use it, 
            # else build one from client.template_mlt
            
            mlt_pathname = os.path.join(
                    self.show_dir, "custom", 
                    "{}.mlt".format(episode.slug))

            if os.path.exists(mlt_pathname):
                print("found custom/slug.mlt:\n{}".format( mlt_pathname ))
                ret = True
            else:

                template_mlt = episode.show.client.template_mlt
                
                mlt_pathname = os.path.join(self.show_dir, 
                        "mlt", "%s.mlt" % episode.slug)

                params = self.get_params(episode, rfs, cls )

                pprint.pprint(params)
                print(2, mlt_pathname)
                ret = mk_mlt( template_mlt, mlt_pathname, params )

            if not ret:

                episode.state = 0
                episode.comment += "\nenc.py  mlt = self.mkmlt_1 failed.\n"
                episode.save()
                return False

# do the final encoding:
# using melt
            ret = self.enc_all(mlt_pathname, episode)

            if self.options.load_temp and self.options.rm_temp:
                cmds = []
                for rf in rfs:
                    dst_path = os.path.join(
                        self.tmp_dir, episode.slug, os.path.dirname(rf.filename))
                    rawpathname = os.path.join(
                        self.tmp_dir, episode.slug, rf.filename)
                    cmds.append(['rm', rawpathname])
                cmds.append(['rmdir', dst_path])
                dst_path = os.path.join(self.tmp_dir, episode.slug)
                cmds.append(['rmdir', dst_path])
                self.run_cmds(episode, cmds)

        else:

            err_msg = "No cutlist found."
            episode.state = 0
            episode.comment += "\nenc error: %s\n" % (err_msg,)
            episode.save()

            print err_msg
            return False

        if self.options.test:
            ret = False

        # save the episode so the test suite can get the slug
        self.episode = episode

        return ret
예제 #2
0
    def process_ep(self, episode):

        ret = False

        cls = Cut_List.objects.filter(episode=episode,
                                      apply=True).order_by('sequence')

        if cls:

            # get list of raw footage for this episode
            rfs = Raw_File.objects. \
                filter(cut_list__episode=episode).\
                exclude(trash=True).distinct()

            # get a .mlt file for this episode (mlt_pathname)
            # look for custom/slug.mlt and just use it,
            # else build one from client.template_mlt

            mlt_pathname = os.path.join(self.show_dir, "custom",
                                        "{}.mlt".format(episode.slug))

            if os.path.exists(mlt_pathname):
                print(("found custom/slug.mlt:\n{}".format(mlt_pathname)))
                ret = True
            else:

                template_mlt = os.path.join(self.show_dir, "assets", "mlt",
                                            episode.show.client.template_mlt)

                mlt_pathname = os.path.join(self.show_dir, "mlt",
                                            "%s.mlt" % episode.slug)

                params = self.get_params(episode, rfs, cls)

                if self.options.verbose:
                    pprint(params)
                # print((2, mlt_pathname))

                ret = mk_mlt(template_mlt, mlt_pathname, params)

                if params['transcriptions']:
                    # create the slug.srt file for this video

                    sub_pathname = os.path.join(self.show_dir, "transcripts",
                                                "{}.srt".format(episode.slug))

                    subs = self.mk_subs(params['transcriptions'], sub_pathname)

            if not ret:

                episode.state = 0
                episode.comment += "\nenc.py  mlt = self.mkmlt_1 failed.\n"
                episode.save()
                return False


# do the final encoding:

# using melt
            ret = self.enc_all(mlt_pathname, episode)

            if self.options.load_temp and self.options.rm_temp:
                cmds = []
                for rf in rfs:
                    dst_path = os.path.join(self.tmp_dir, episode.slug,
                                            os.path.dirname(rf.filename))
                    rawpathname = os.path.join(self.tmp_dir, episode.slug,
                                               rf.filename)
                    cmds.append(['rm', rawpathname])
                cmds.append(['rmdir', dst_path])
                dst_path = os.path.join(self.tmp_dir, episode.slug)
                cmds.append(['rmdir', dst_path])
                self.run_cmds(episode, cmds)

                connection.connection.close()
                connection.connection = None

        else:

            err_msg = "No cutlist found."
            episode.state = 0
            episode.comment += "\nenc error: %s\n" % (err_msg, )
            episode.save()

            print(err_msg)
            return False

        if self.options.test:
            ret = False

        # save the episode so the test suite can get the slug
        self.episode = episode

        return ret
예제 #3
0
파일: enc.py 프로젝트: jamiehand/veyepar
    def process_ep(self, episode):
        # print episode
        print episode.name

        ret = False

        cls = Cut_List.objects.filter(
            episode=episode, apply=True).order_by('sequence')
        # print len(cls), episode.name.__repr__()

        if cls:

            """
            for cl in cls:
                print cl.start, cl.end
            # title and footer were here
            title_img = self.mk_title(episode)

            credits_img = episode.show.client.credits \
                if episode.show.client.credits \
                else 'ndv1-black.png'
            credits_img = os.path.join(
                os.path.split(os.path.abspath(__file__))[0],
                "bling",
                credits_img)
            """

            # get list of raw footage for this episode
            rfs = Raw_File.objects. \
                filter(cut_list__episode=episode).\
                exclude(trash=True).distinct()
               #         cut_list__apply=True).\

            # get a .mlt file for this episode (mlt_pathname)
            # look for custom/slug.mlt and just use it, 
            # else build one from client.template_mlt, else "template.mlt"
            
            mlt_pathname = os.path.join(self.work_dir, "custom", "%s.mlt" % episode.slug)
            if os.path.exists(mlt_pathname):
                ret = True
            else:

                mlt_pathname = os.path.join(self.work_dir, "%s.mlt" % episode.slug)
                if episode.show.client.template_mlt:
                    template_mlt = episode.show.client.template_mlt
                else:
                    template_mlt = "template.mlt"
                
                params = self.get_params(episode, rfs, cls )
                ret = mk_mlt( template_mlt, mlt_pathname, params )

            if not ret:

                episode.state = 0
                episode.comment += "\nenc.py  mlt = self.mkmlt_1 failed.\n"
                episode.save()
                return False

# do the final encoding:
# using melt
            ret = self.enc_all(mlt_pathname, episode)

            if self.options.load_temp and self.options.rm_temp:
                cmds = []
                for rf in rfs:
                    dst_path = os.path.join(
                        self.tmp_dir, episode.slug, os.path.dirname(rf.filename))
                    rawpathname = os.path.join(
                        self.tmp_dir, episode.slug, rf.filename)
                    cmds.append(['rm', rawpathname])
                cmds.append(['rmdir', dst_path])
                dst_path = os.path.join(self.tmp_dir, episode.slug)
                cmds.append(['rmdir', dst_path])
                self.run_cmds(episode, cmds)

        else:

            err_msg = "No cutlist found."
            episode.state = 0
            episode.comment += "\nenc error: %s\n" % (err_msg,)
            episode.save()

            print err_msg
            return False

        if self.options.test:
            ret = False

        # save the episode so the test suite can get the slug
        self.episode = episode

        return ret