Ejemplo n.º 1
0
    def auto_select(self):
        """读取配置文件设置 ui 状态
        """
        jf = setting_fftool.read_setting()
        keys = ("pt_file", "pw_file", "frame_file", "watermark_file",
                "number_file", "number_file_2", "number_file_3")
        keys2 = ("pt_select", "pw_select", "frame_select", "watermark_select",
                 "number_select", "number_select_2", "number_select_3")

        fc_number = self.fc_number
        objs = (self.fc_pt, self.fc_pw, self.fc_frame, self.fc_watermark,
                fc_number, fc_number, fc_number)
        for i in range(len(objs)):
            key = keys[i]
            text = jf[key] if key in jf else ''
            if text:
                text = utils.pathlib_path(text)
            key = keys2[i]
            select_str = jf[key] if key in jf else '0'

            key = keys[i]
            if key == 'number_file':
                fc_number.set_select_and_text(1, select_str, text)
            elif key == 'number_file_2':
                fc_number.set_select_and_text(2, select_str, text)
            elif key == 'number_file_3':
                fc_number.set_select_and_text(3, select_str, text)
            else:
                objs[i].set_select_and_text(select_str, text)

        key = "number_15_select"
        select_str = jf[key] if key in jf else '0'
        self.fc_number.set_select_15(select_str)
        self.fc_out.set_text(setting_fftool.output_dir)
Ejemplo n.º 2
0
    def auto_select(self):
        # 读取上次的备案号地址
        jf = setting_fftool.read_setting()
        key = "number_file"
        text = jf[key] if key in jf else ''
        if text:
            text = utils.pathlib_path(text)
            self.fc_number.set_select_and_text(0, text)

        self.fc_out.set_text(setting_fftool.output_dir)
Ejemplo n.º 3
0
    def startCheck(self):
        dc = self.dc

        if setting_fftool.has_query:
            utils.showinfo("有任务正在执行,请稍后")
            return

        vlstr = self.varL.get()
        vrstr = self.varR.get()
        vlarr = utils.var_to_list_smb(vlstr)
        vrarr = utils.var_to_list_smb(vrstr)
        if utils.var_is_empty(vlstr):
            utils.showinfo("还没有导入文件")
            return

        # # 禁用开始按钮
        self.clearQuery()
        self.lockBtn(True)

        # p5 = self.outTxt['text']
        p5 = self.fc_out.get_text()
        fast_mode_select = True if self.CheckVar1.get() else False

        dc["output_dir"] = p5
        dc["list1"] = vlarr
        dc["list2"] = vrarr
        dc["fast_mode_select"] = fast_mode_select

        # 记忆操作
        setdc = setting_fftool.read_setting()
        setdc["output_dir"] = p5
        setting_fftool.save_setting(setdc)

        # 禁用开始按钮
        self.clearQuery()
        self.lockBtn(True)

        # 执行操作
        import threading
        self.t1 = threading.Thread(target=self.processConcat, args=(dc, ''))
        self.t1.setDaemon(True)
        self.t1.start()
Ejemplo n.º 4
0
    def start_check(self):
        dc = self.dc

        if setting_fftool.has_query:
            utils.showinfo("有任务正在执行,请稍后")
            return

        arr = self.file_chooser.get_lists()
        if not len(arr):
            utils.showinfo("还没有导入文件")
            return

        # # 禁用开始按钮
        self.clear_query()
        self.lock_btn(True)

        keep_parent_select = True if self.keep_parent_var.get() else False
        # p5 = self.outTxt['text']
        p5 = self.fc_out.get_text()

        dc["list"] = arr
        dc["output_dir"] = p5
        dc["keep_parent_select"] = keep_parent_select

        # 记忆操作
        setting_dc = setting_fftool.read_setting()
        setting_dc["output_dir"] = p5
        setting_fftool.save_setting(setting_dc)

        # 禁用开始按钮
        self.clear_query()
        self.lock_btn(True)

        # 执行操作
        import threading
        self.t1 = threading.Thread(target=self.process, args=(dc, ''))
        self.t1.setDaemon(True)
        self.t1.start()
Ejemplo n.º 5
0
    def start_check(self):
        """点击 开始转码按钮
        """
        if setting_fftool.has_query:
            utils.showinfo('已经有转码任务了')
            return

        file_list = self.file_chooser.get_lists()
        if not len(file_list):
            utils.showinfo("还没有导入文件")
            return

        fc_pt = self.fc_pt
        fc_pw = self.fc_pw
        fc_frame = self.fc_frame
        fc_watermark = self.fc_watermark
        fc_number = self.fc_number
        fc_out = self.fc_out

        # 路径检查
        # 路径检查
        if not fc_pt.is_ready("片头路径设置不对"):
            return
        if not fc_pw.is_ready("片尾路径设置不对"):
            return
        if not fc_frame.is_ready("幕布路径设置不对"):
            return
        if not fc_watermark.is_ready("水印路径设置不对"):
            return
        if not fc_number.is_ready(1, "备案号图片路径设置不对"):
            return
        if not fc_number.is_ready(2, "爱奇艺 备案号设置不对"):
            return
        if not fc_number.is_ready(3, "腾讯 备案号设置不对"):
            return
        if not fc_out.is_ready("输出路径设置不对"):
            return

        select_double_fix = utils.int_var_to_str(self.var_fix)
        select_30m = utils.int_var_to_str(self.var_30m)
        fps = self.fps_option.get()
        bit = self.bit_rate_option.get()

        # 文件列表
        utils.write_txt_by_arr(setting_fftool.list_file, file_list.copy())

        # 记忆操作
        set_dc = setting_fftool.read_setting()
        # 选中状态
        set_dc["pt_select"] = fc_pt.get_select_str()
        set_dc["pw_select"] = fc_pw.get_select_str()
        set_dc["frame_select"] = fc_frame.get_select_str()
        set_dc["watermark_select"] = fc_watermark.get_select_str()
        set_dc["number_select"] = fc_number.get_select_str(1)
        set_dc["number_select_2"] = fc_number.get_select_str(2)
        set_dc["number_select_3"] = fc_number.get_select_str(3)
        set_dc["number_15_select"] = fc_number.get_select_15()
        # 片头等文件地址
        set_dc["pt_file"] = fc_pt.get_text()
        set_dc["pw_file"] = fc_pw.get_text()
        set_dc["frame_file"] = fc_frame.get_text()
        set_dc["watermark_file"] = fc_watermark.get_text()
        set_dc["number_file"] = fc_number.get_text(1)
        set_dc["number_file_2"] = fc_number.get_text(2)
        set_dc["number_file_3"] = fc_number.get_text(3)
        set_dc["output_dir"] = fc_out.get_text()
        setting_fftool.save_setting(set_dc)

        # 准备运行参数
        pt_select = fc_pt.has_select()
        pw_select = fc_pw.has_select()
        need_frame = fc_frame.has_select()
        need_watermark = fc_watermark.has_select()
        need_number = fc_number.has_select(1)
        need_number_2 = fc_number.has_select(2)
        need_number_3 = fc_number.has_select(3)

        if not pt_select and \
                not pw_select and \
                not need_frame and \
                not need_watermark and \
                not need_number and \
                not need_number_2 and \
                not need_number_3 and \
                not select_double_fix:
            utils.showinfo("没有任何合成操作,请检查!")
            return

        if self.var_30m.get():
            for mp4 in file_list:
                video_info_dc = ff.get_video_info(mp4)
                size_4m = 4 * 1024 * 1024
                bit_rate_int = int(video_info_dc["v_bit_rate"])
                if bit_rate_int < size_4m:
                    v_kb = '%.2f' % (bit_rate_int / 1024)
                    utils.showinfo(
                        "30m转码方案要求视频在4m以上\n此文件码率未达标:\n{0} ({1}k)".format(
                            mp4, v_kb))
                    # return

        # --------------------------------------------------
        # 取出参数并执行转码操作
        # 复选框 状态
        dc = dict.fromkeys(self.seq, "")
        # 选中状态
        dc["pt_select"] = pt_select
        dc["pw_select"] = pw_select
        dc["frame_select"] = need_frame
        dc["watermark_select"] = need_watermark
        dc["number_select"] = need_number
        dc["number_select_2"] = need_number_2
        dc["number_select_3"] = need_number_3
        dc["select_double_fix"] = select_double_fix
        dc["select_30m"] = select_30m
        # dc["fast_mode_select"] = fast_mode_select

        # 片头等文件地址
        dc["pt_file"] = fc_pt.get_text()
        dc["pw_file"] = fc_pw.get_text()
        dc["frame_file"] = fc_frame.get_text()
        dc["watermark_file"] = fc_watermark.get_text()
        dc["number_file"] = fc_number.get_text(1)
        dc["number_file_2"] = fc_number.get_text(2)
        dc["number_file_3"] = fc_number.get_text(3)
        dc["output_dir"] = fc_out.get_text()
        dc["fps"] = fps
        dc["bit"] = bit
        # 要处理的视频文件
        dc["number_second"] = '15' if fc_number.get_select_15(
        ) == '1' else '-1'
        dc["input_files"] = file_list

        # 禁用开始按钮
        self.start_btn.clear_query()
        # self.lock_btn(True)

        # 执行操作
        # self.trans.process(dc)
        import threading
        self.t1 = threading.Thread(target=self.process, args=(dc, ''))
        self.t1.setDaemon(True)
        self.t1.start()
Ejemplo n.º 6
0
    def start_check(self):
        dc = self.dc

        if setting_fftool.has_query:
            utils.showinfo("有任务正在执行,请稍后")
            return

        file_arr = self.file_chooser.get_lists()
        if not len(file_arr):
            utils.showinfo("还没有导入文件")
            return

        var2b = utils.int_var_to_bool
        var2str = utils.int_var_to_str
        b2str = utils.bool_to_str
        format1_select = var2b(self.cb_format_var1)
        format2_select = var2b(self.cb_format_var2)
        format3_select = var2b(self.cb_format_var3)
        if format1_select \
                or format2_select \
                or format3_select:
            pass
        else:
            utils.showinfo('请勾选一种输出格式')
            return

        # 剪片头片尾 检查
        time_arr = self.duration_option.start_check()
        if bool(time_arr[0]):
            # fast_select = bool(time_arr[1])
            pt_select = time_arr[2]
            pt_second = time_arr[3]
            pw_select = time_arr[4]
            pw_second = time_arr[5]
            need_remain = time_arr[6]
        else:
            return

        # # 禁用开始按钮
        self.clear_query()
        self.lock_btn(True)

        # p5 = self.outTxt['text']
        p5 = self.fc_out.get_text()

        dc["list"] = file_arr
        dc["output_dir"] = p5
        dc["keep_parent_select"] = var2str(self.var_parent)
        dc["keep_meta_select"] = var2str(self.var_meta)
        dc["format1_select"] = b2str(format1_select)
        dc["format2_select"] = b2str(format2_select)
        dc["format3_select"] = b2str(format3_select)

        dc["pt_select"] = pt_select
        dc["pt_second"] = pt_second
        dc["pw_select"] = pw_select
        dc["pw_second"] = pw_second
        dc["need_remain"] = need_remain

        # 记忆操作
        setting_dc = setting_fftool.read_setting()
        setting_dc["output_dir"] = p5
        setting_fftool.save_setting(setting_dc)

        # 禁用开始按钮
        self.clear_query()
        self.lock_btn(True)

        # 执行操作
        import threading
        self.t1 = threading.Thread(target=self.process, args=(dc, ''))
        self.t1.setDaemon(True)
        self.t1.start()
Ejemplo n.º 7
0
    def start_check(self):
        dc = self.dc

        if setting_fftool.has_query:
            utils.showinfo("转码中,请稍后")
            return

        arr = self.file_chooser.get_lists()
        if not len(arr):
            utils.showinfo("还没有导入要转码的文件")
            return

        var2b = utils.int_var_to_bool
        b2str = utils.bool_to_str

        size1_select = var2b(self.cb_size_var1)
        size2_select = var2b(self.cb_size_var2)
        has_size = True if size1_select or size2_select else False
        if not has_size:
            utils.showinfo('请勾选一个分辨率')
            return

        tune1_select = var2b(self.cb_tune_var1)
        tune2_select = var2b(self.cb_tune_var2)
        format1_select = var2b(self.cb_format_var1)
        format2_select = var2b(self.cb_format_var2)
        format3_select = var2b(self.cb_format_var3)
        format4_select = var2b(self.cb_format_var4)
        format5_select = var2b(self.cb_format_var5)
        if format1_select \
                or format2_select \
                or format3_select \
                or format4_select \
                or format5_select:
            pass
        else:
            utils.showinfo('请勾选一种输出格式')
            return

        double_fix_select = var2b(self.var_fix)
        keep_parent_select = var2b(self.keep_parent_var)
        keep_ratio_select = var2b(self.keep_ratio_var)
        # # 禁用开始按钮
        self.start_btn.clear_query()
        self.lock_btn(True)

        p5 = self.fc_out.get_text()

        dc["list"] = arr
        dc["output_dir"] = p5

        dc["size1_select"] = b2str(size1_select)
        dc["size2_select"] = b2str(size2_select)
        dc["tune1_select"] = b2str(tune1_select)
        dc["tune2_select"] = b2str(tune2_select)
        dc["format1_select"] = b2str(format1_select)
        dc["format2_select"] = b2str(format2_select)
        dc["format3_select"] = b2str(format3_select)
        dc["format4_select"] = b2str(format4_select)
        dc["format5_select"] = b2str(format5_select)
        dc["keep_parent_select"] = b2str(keep_parent_select)
        dc["keep_ratio_select"] = b2str(keep_ratio_select)
        dc["double_fix_select"] = b2str(double_fix_select)

        # 水印检查处理
        if format4_select or format5_select:
            if not self.fc_number.is_ready("备案号图片路径设置不对"):
                return
        dc["number_select"] = self.fc_number.get_select_str()
        dc["number_file"] = self.fc_number.get_text()

        # 记忆操作
        set_dc = setting_fftool.read_setting()
        set_dc["output_dir"] = p5
        set_dc["number_file"] = dc["number_file"]
        setting_fftool.save_setting(set_dc)

        # 保留上次转码列表
        utils.write_txt_by_arr(setting_fftool.list_file, arr.copy())

        # 禁用开始按钮
        self.start_btn.clear_query()
        self.lock_btn(True)

        # 执行操作
        import threading
        self.t1 = threading.Thread(target=self.process, args=(dc, ''))
        self.t1.setDaemon(True)
        self.t1.start()