#3223 在批量翻译视频或音频时,能批量上传视频,但是字幕没法上传多个。这会导致第一条视频是按照我给的字幕进行配音,但是第二个视频之后,就需要软件自动识别并配音。

39.68* Posted at: 12 hours ago 👁27

在批量翻译视频或音频时,能批量上传视频,但是字幕没法上传多个。这会导致第一条视频是按照我给的字幕进行配音,但是第二个视频之后,就需要软件自动识别并配音。

11 Replies

这是由于软件在批量处理视频时,字幕文件(SRT)的匹配逻辑导致的。当您上传多个视频但只上传一个字幕文件时,软件会将该字幕文件仅用于第一个视频,后续视频会因为没有匹配的字幕而自动进入语音识别流程。

解决方案

  1. 为每个视频单独准备字幕:确保每个视频都有其对应的SRT字幕文件,并将它们与视频文件一一对应地添加到软件中。
  2. 使用“语音转录”功能批量生成字幕

    • 在软件主界面,选择“语音转录”功能。
    • 将所有需要处理的视频或音频文件批量添加进去。
    • 设置好语音识别参数,执行任务。
    • 任务完成后,每个视频都会生成一个对应的SRT字幕文件。
  3. 使用“字幕翻译”功能批量处理字幕

    • 在获得所有视频的SRT字幕后,切换到“字幕翻译”功能。
    • 将所有SRT字幕文件批量添加进去。
    • 设置翻译渠道,执行批量翻译,得到翻译后的字幕。
  4. 最后进行“视频翻译”

    • 切换到“视频翻译”功能。
    • 批量添加视频文件。
    • 在“高级选项”中,将“使用本地已有字幕”设置为“是”。
    • 软件会自动查找与视频同名的SRT文件(例如 video1.mp4 对应 video1.srt)并使用它,这样每个视频都会使用您预先准备好的字幕进行配音,而不会重新识别。

核心要点:软件的设计是一个视频对应一个字幕文件。批量处理前,请先通过“语音转录”和“字幕翻译”两个步骤,为每个视频准备好翻译好的字幕文件。

请查阅相关文档:

我没理解你的意思,我已经准备好了需要处理的视频和字幕,视频我可以多选,但是字幕不可以。

这是由于软件界面设计的限制,字幕文件输入框不支持多选。您需要手动为每个视频指定其对应的字幕文件。

解决方案:

  1. 确保文件命名匹配:将视频文件和其对应的字幕文件放在同一文件夹下,并确保它们的主文件名(不含扩展名)完全相同

    • 例如:视频1.mp4 对应 视频1.srt视频2.mp4 对应 视频2.srt
  2. 使用“使用本地已有字幕”功能

    • 在“视频翻译”界面,点击“高级选项”。
    • 找到“使用本地已有字幕”选项,将其设置为 “是”
    • 保存设置。
  3. 批量添加视频并处理

    • 回到主界面,通过“添加视频”按钮或拖放方式,批量选择所有视频文件
    • 软件会自动在视频文件所在的目录中,查找与其同名的 .srt 字幕文件。
    • 如果找到,就会使用该字幕文件;如果没找到,则会自动进行语音识别。
    • 设置好其他参数(如翻译渠道、配音渠道等),然后开始执行任务。

核心逻辑:软件通过 “视频文件名” == “字幕文件名” 的规则来自动匹配,而不是通过手动上传多个字幕文件。因此,您只需确保文件命名一致,并开启“使用本地已有字幕”选项即可实现批量处理。

请查阅相关文档:

在“视频翻译”界面,点击“高级选项”。
找到“使用本地已有字幕”选项,将其设置为 “是”
我的软件里没有这个“使用本地已有字幕“这个选项,我是3.96版本。

这是由于您使用的是较新的3.96版本,该版本中“使用本地已有字幕”选项的配置位置和逻辑已发生变化。在3.96版本中,您需要为每个视频单独指定其字幕文件,或者通过命令行模式实现批量处理。解决方案:方法一:为每个视频单独处理(适用于少量视频)在“视频翻译”界面,点击“添加视频”按钮,每次只选择一个视频文件。在“字幕文件”输入框右侧,点击“选择”按钮,手动为该视频选择对应的SRT字幕文件。设置好其他参数,点击“开始翻译”。处理完一个视频后,重复上述步骤处理下一个。方法二:使用命令行模式(适用于批量处理)这是3.96版本批量处理“视频+已有字幕”的推荐方式。准备一个任务配置文件(例如 tasks.json),格式如下:json[ { "video_file": "D:/videos/视频1.mp4", "source_language_code": "zh", "target_language_code": "en", "subtitle_file": "D:/videos/视频1.srt" }, { "video_file": "D:/videos/视频2.mp4", "source_language_code": "zh", "target_language_code": "en", "subtitle_file": "D:/videos/视频2.srt" }]在命令行中,使用 vtv 任务类型并指定配置文件来运行:uv run cli.py --task vtv --name tasks.json (源码部署)或cli.exe --task vtv --name tasks.json (Windows预打包版,在软件根目录打开CMD执行)。方法三:使用“字幕翻译”功能先批量生成配音音频在“字幕翻译”界面,批量添加所有SRT字幕文件。设置好翻译渠道和配音渠道,执行任务。任务完成后,每个SRT文件会生成对应的配音音频文件(.wav)。然后使用“工具”->“视频与音频合并”功能,将视频与对应的配音音频批量合并。总结:在3.96版本的GUI界面中,确实无法在“视频翻译”功能里一次性为多个视频批量指定多个字幕文件。要实现此需求,请优先考虑使用命令行模式。请查阅相关文档:命令行模式使用 pyVideoTrans

编写命令行模式,自动跳转到了软件界面,但没有开始处理视频。

这是由于您在使用命令行模式时,命令参数或配置文件格式不正确,导致软件未能正确识别为命令行模式,从而启动了图形界面。

核心原因:命令行参数 --task--name 未正确指定,或者配置文件路径/格式有误。

解决方案

  1. 确保命令格式正确

    • 对于 Windows 预打包版,在软件根目录打开 CMD 或 PowerShell,命令格式应为:
      cli.exe --task vtv --name "D:\你的路径\tasks.json"
    • 对于 源码部署版,在项目根目录执行:
      uv run cli.py --task vtv --name "D:\你的路径\tasks.json"
  2. 检查配置文件 tasks.json

    • 路径:确保 --name 参数后的路径用双引号包裹,且路径中的反斜杠 \ 需要转义或使用正斜杠 /。例如:"D:/videos/tasks.json"
    • 格式:必须是严格的 JSON 数组格式。每个任务对象必须包含 video_file(视频文件路径)和 subtitle_file(字幕文件路径)等必要字段。请使用 JSON 验证工具检查格式。
    • 示例(请根据您的实际文件修改):

      [
        {
          "video_file": "D:/myvideos/video1.mp4",
          "subtitle_file": "D:/myvideos/video1.srt",
          "source_language_code": "zh",
          "target_language_code": "en",
          "tts_voice": "zh-CN-XiaoxiaoNeural",
          "tts_rate": "0%"
        },
        {
          "video_file": "D:/myvideos/video2.mp4",
          "subtitle_file": "D:/myvideos/video2.srt",
          "source_language_code": "zh",
          "target_language_code": "en",
          "tts_voice": "zh-CN-XiaoxiaoNeural",
          "tts_rate": "0%"
        }
      ]
  3. 执行步骤

    • 打开命令行终端(CMD/PowerShell/Terminal)。
    • 使用 cd 命令切换到 pyVideoTrans 软件根目录(包含 cli.execli.py 的目录)。
    • 输入完整的命令并执行,例如:

      cli.exe --task vtv --name "D:\pyVideoTrans\tasks.json"
    • 如果命令正确,终端会显示处理进度日志,而不会弹出软件图形界面。
  4. 获取帮助

    • 在命令行输入 cli.exe --helpuv run cli.py --help 查看所有可用参数和示例。

如果问题依旧,请提供您使用的完整命令、配置文件 tasks.json 的内容,以及命令行终端的完整输出信息(截图或复制文本),以便进一步分析。

请查阅相关文档:

命令确定是正确的,但是没有显示进度日志,而且弹出了软件界面。

这是由于命令行参数未被正确解析,导致软件默认启动了图形界面。最常见的原因是配置文件路径错误或格式问题,使得 --task--name 参数未能生效。解决方案:验证配置文件路径和权限:确保 --name 参数指向的 tasks.json 文件确实存在,且路径完全正确(区分大小写,无多余空格)。尝试使用绝对路径,并将路径用英文双引号包裹。例如:cli.exe --task vtv --name "C:\Users\YourName\Desktop\tasks.json"。检查文件权限:确保当前用户有读取该配置文件的权限。检查配置文件格式:使用文本编辑器(如 Notepad++、VS Code)打开 tasks.json 文件。确保它是有效的 JSON 格式。一个常见的错误是使用了 JavaScript 注释(///* */),JSON 标准不支持注释,必须删除。确保最后一个任务对象后面没有多余的逗号。可以使用在线 JSON 验证工具(如 JSONLint)检查格式。简化测试:创建一个最简单的单任务配置文件进行测试,排除复杂配置导致的问题。例如:[
{

"video_file": "D:/test.mp4",
"subtitle_file": "D:/test.srt",
"source_language_code": "zh",
"target_language_code": "en"

}
]在命令行中直接运行一个简单命令,测试 --task 参数是否有效:运行 cli.exe --task stt --name "D:/test.mp4"(此命令会尝试对 test.mp4 进行语音识别)。如果这个命令能正常运行并显示日志,说明命令行模式本身是正常的,问题出在 vtv 任务或 tasks.json 文件上。检查软件版本和 CLI 入口:确认您使用的是 v3.96 版本。在软件根目录下,确认 cli.exe(Windows)或 cli.py(源码)文件存在且未被损坏。对于 Windows 预打包版,请务必在软件根目录打开 CMD/PowerShell 执行命令,而不是在压缩包内或通过快捷方式。获取错误信息:在命令行中执行命令后,即使弹出了图形界面,命令行窗口也可能有初始的错误输出。请仔细查看命令行窗口在弹出界面之前显示的任何文字信息,这通常是关键报错。如果以上步骤无法解决,请提供以下信息以便进一步诊断:您使用的完整命令(复制粘贴)。您的 tasks.json 文件的完整内容(可替换敏感路径)。命令行窗口在弹出软件界面显示的任何文本(截图或复制)。请查阅相关文档:命令行模式使用 pyVideoTrans

我的文件夹里没有 cli.exe 只有sp.exe

这是由于您使用的是预打包版,但 cli.exe 命令行入口文件不存在或已被移除。在较新的预打包版本中,命令行功能可能已集成到主程序 sp.exe 中,需要通过特定参数调用。解决方案:使用 sp.exe 调用命令行模式:打开 CMD 或 PowerShell,并切换到您的 pyVideoTrans 软件根目录(例如 D:\pyVideoTrans)。使用以下命令格式尝试调用命令行模式:sp.exe --task vtv --name "D:\你的路径\tasks.json"如果上述命令仍然弹出图形界面,请尝试使用 --cmd 参数:sp.exe --cmd --task vtv --name "D:\你的路径\tasks.json"检查 tasks.json 配置文件:确保配置文件格式正确(严格的 JSON,无注释)。确保文件路径使用双引号包裹,且使用正斜杠 / 或转义的反斜杠 \\。例如:"D:/myvideos/tasks.json""D:\\myvideos\\tasks.json"。直接测试简单命令:为了验证命令行功能是否正常,可以先测试一个不需要配置文件的简单任务。例如,尝试进行语音识别:sp.exe --cmd --task stt --name "D:\test.mp4"如果这个命令能在命令行中显示处理日志而没有弹出界面,则证明命令行模式可用。创建正确的 tasks.json:参考以下示例创建您的配置文件(保存为 UTF-8 编码):[
{

"video_file": "E:/videos/视频1.mp4",
"subtitle_file": "E:/videos/视频1.srt",
"source_language_code": "zh",
"target_language_code": "en",
"tts_voice": "zh-CN-XiaoxiaoNeural"

},
{

"video_file": "E:/videos/视频2.mp4",
"subtitle_file": "E:/videos/视频2.srt",
"source_language_code": "zh",
"target_language_code": "en",
"tts_voice": "zh-CN-XiaoxiaoNeural"

}
]执行命令:在 CMD 中执行(请替换为您的实际路径):sp.exe --cmd --task vtv --name "E:/videos/tasks.json"如果命令执行后,命令行窗口开始滚动显示处理日志(如“开始处理任务 X”、“识别完成”、“翻译完成”等),则表示成功。如果仍然直接启动图形界面,则可能是您的软件版本不支持此命令行调用方式。在这种情况下,要实现批量“视频+已有字幕”的处理,只能退回使用图形界面,并采用之前提到的“为每个视频单独处理”或“先字幕翻译生成音频,再合并”的变通方法。请查阅相关文档:命令行模式使用 pyVideoTrans

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Related resource