def _extract(cls, compressed_file, videofile, exts):
        """ 解压字幕文件，如果无法解压，则直接返回 compressed_file。
        exts 参数用于过滤掉非字幕文件，只有文件的扩展名在 exts 中，才解压该文件。
        """
        if not CompressedFile.is_compressed_file(compressed_file):
            return [compressed_file]

        root = os.path.dirname(compressed_file)
        subs = []
        cf = CompressedFile(compressed_file)
        for name in cf.namelist():
            if cf.isdir(name):
                continue
            # make `name` to unicode string
            orig_name = CompressedFile.decode_file_name(name)
            _, ext = os.path.splitext(orig_name)
            ext = ext[1:]
            if ext not in exts:
                continue
            subname = cls._gen_subname(videofile, '', '', orig_name=orig_name)
            subpath = os.path.join(root, subname)
            cf.extract(name, subpath)
            subs.append(subpath)
        cf.close()
        return subs
解压字幕文件，如果无法解压，则直接返回 compressed_file。
        exts 参数用于过滤掉非字幕文件，只有文件的扩展名在 exts 中，才解压该文件。