BUnipendix / PyCriUsm

a python script to decrypt and demux Honkai: Star Rail cutscene video
96 stars 11 forks source link

使用方法 #15

Open PaulJiang-123 opened 4 months ago

PaulJiang-123 commented 4 months ago

keygen里面的文件VideoConfig.json和GetVideoVersionKeyScRsp.json跟key.json的关系是什么? 如果我只想提取单个版本的文件我要怎么做?我把keygen里面的文件全删了似乎也不影响程序运行,估计是读取了key.json里面的内容?但是如果我把key.json里其他keys都删了(比如说我只保留了2.1的keys)我依然能提取到前面版本的内容。 我找gpt写的一个代码来批量转换(不知道是不是代码的问题) import asyncio import os from PyCriUsm import extract_usm

指定输入和输出目录

input_directory = r'E:\temp\Star Rail\Game\StarRail_Data\StreamingAssets\Video\Windows' output_directory = r'D:\Video'

async def process_usm_file(file_path): """处理单个usm文件""" try: videos, audios = await extract_usm(file_path, output_directory, is_async=True) print(f"处理完成:{file_path}") except Exception as e: print(f"处理错误:{file_path},错误:{e}")

async def process_all_usm_files(input_dir): """遍历目录并处理所有usm文件""" tasks = []

遍历文件夹中所有文件

for file_name in os.listdir(input_dir):
    if file_name.endswith('.usm'):
        full_path = os.path.join(input_dir, file_name)
        # 创建任务
        task = process_usm_file(full_path)
        tasks.append(task)
# 并发执行所有任务
await asyncio.gather(*tasks)

运行事件循环

asyncio.run(process_all_usm_files(input_directory))