示例#1
0
    def run_cmd_async(self, body):
        self.stdin.write(body)
        running = self.running()
        while running:
            line = self.stdout.read(-1)
            #segment:'/tmp/a_sd_000030.flv' count:30 endedp=24 drop=0
            if line is None:
                break
            line = line.decode()
            ts_re = re.search("segment:\'(.*?)\'\s+count:(\d+).*", line)
            if ts_re:
                ts_file = ts_re.group(1)
                ts_file_index = ts_re.group(2)
                ts_filename = ts_file.split('/')[-1]

                (target_file, storage_path) = get_target_file(
                    self.config['storage']['release_dir'], ts_filename, 'ts')

                retcode = self.flv2ts(ts_file, target_file)
                if retcode != 0:
                    logging.error("flv2ts flvfile: %s tsfile: %s failed",
                                  ts_file, target_file)
                    continue

                request_info = self.segment_request_info(
                    target_file, storage_path, ts_file_index)
                add_video_segment_url = self.config['url']['add_video_segment']

                res = http_callback(add_video_segment_url, request_info)
                self.log(res, self.video_id, 'add_video_segment', storage_path)

            snap_re = re.search("snap:\'(.*?)\'\s+count:(\d+).*", line)
            if snap_re:
                snap_img_file = snap_re.group(1)
                snap_index = snap_re.group(2)
                snap_filename = snap_img_file.split('/')[-1]
                (target_file, storage_path) = get_target_file(
                    self.config['storage']['release_dir'], snap_filename,
                    'snap')

                shutil.move(snap_img_file, target_file)

                info = create_request_info(video_id=self.video_id,
                                           snap_image_count=snap_index)

                res = http_callback(
                    self.config['url']['update_video_snap_image_count'], info)
                self.log(res, self.video_id, 'update_video_snap_image_count',
                         storage_path)
        return
示例#2
0
    def run_cmd_async(self, body):
        self.stdin.write(body)
        running = self.running()
        while running:
            line = self.stdout.read(-1)
            #segment:'/tmp/a_sd_000030.flv' count:30 endedp=24 drop=0
            if line is None:
                break
            line  = line.decode()
            ts_re = re.search("segment:\'(.*?)\'\s+count:(\d+).*", line)
            if ts_re:
                ts_file        = ts_re.group(1)
                ts_file_index  = ts_re.group(2)
                ts_filename    = ts_file.split('/')[-1]

                (target_file, storage_path) = get_target_file(self.config['storage']['release_dir'], ts_filename, 'ts')

                retcode = self.flv2ts(ts_file, target_file)
                if retcode != 0:
                    logging.error("flv2ts flvfile: %s tsfile: %s failed", ts_file, target_file)
                    continue

                request_info = self.segment_request_info(target_file, storage_path, ts_file_index)
                add_video_segment_url = self.config['url']['add_video_segment']

                res = http_callback( add_video_segment_url, request_info)
                self.log(res, self.video_id, 'add_video_segment', storage_path)

            snap_re = re.search("snap:\'(.*?)\'\s+count:(\d+).*", line)
            if snap_re:
                snap_img_file = snap_re.group(1)
                snap_index    = snap_re.group(2)
                snap_filename = snap_img_file.split('/')[-1]
                (target_file, storage_path) = get_target_file(self.config['storage']['release_dir'], snap_filename, 'snap')

                shutil.move(snap_img_file, target_file)

                info = create_request_info(video_id=self.video_id, snap_image_count=snap_index)

                res  = http_callback(self.config['url']['update_video_snap_image_count'], info)
                self.log(res, self.video_id, 'update_video_snap_image_count', storage_path)
        return
示例#3
0
    def upload_process(self, key, line):
        if key == b'video_id':
            video_id = line.decode().rstrip()
            self.video_id = video_id
            self.init_popen_handler()

            request_info = create_request_info(video_id=self.video_id, status='proceed', bitrate=str(self.bitrate))
            res = http_callback(self.config['url']['update_video_status'], request_info)
            self.log(res, self.video_id, 'update_video_status', None)
        elif key == b'upload':
            self.run_cmd_async(line)