#6532 [DEBUG] 原始字幕行数:1428, 翻译后行数:1428[DEBUG] 原始语言字幕和目标语言字幕行数一致,均为 source_len=1428[DEBUG] ==准备要嵌入的字幕:self.cfg.subtitle_type=3=[

116.162.**3 Posted at: 6 hours ago

[DEBUG] 原始字幕行数:1428, 翻译后行数:1428
[DEBUG] 原始语言字幕和目标语言字幕行数一致,均为 source_len=1428

[DEBUG]


==准备要嵌入的字幕:self.cfg.subtitle_type=3


=
[DEBUG] 最终确定字幕嵌入类型:3 ,目标字幕语言:zho, 字幕文件:E:/ike/win-pyvideotrans-v4.08-0802/tmp/7816/7357dc0a4e/shuang.srt

[DEBUG] 返回缓存的编解码器 Windows-264: libx264
[DEBUG] [最终视频合成]不支持硬件编解码或指定了强制软编解码:
['-y', '-progress', 'compose1786310929.3198855.txt', '-i', 'novoice.mp4', '-i', 'will_embed.m4a', '-filter_complex', '-map', '[v_out]', '-map', '1:a', '-c:v', 'libx264', '-c:a', 'copy']

9 Replies

这是 v4.08 版本在“最终视频合成”阶段(硬字幕双语气嵌入,subtitle_type=3)的已知缺陷:日志中 FFmpeg 命令明显缺少 -filter_complex 的滤镜脚本内容和输出文件路径,合并时会因字幕滤镜缺失而报错或中断。

解决方案:

  1. 升级到最新版 v4.09:若当前是 v4.08,请先下载完整包或补丁包覆盖到软件目录(若旧版与最新版相差较大,建议直接下载完整包覆盖)。
  2. 若已是 v4.09 仍报错,请再次下载最新的补丁包覆盖,并确认软件左上角版本号已变为 v4.09
  3. 临时绕过:若暂时无法升级,可改用“软字幕”或“不嵌入字幕”方式完成合成,避开硬字幕滤镜路径。

请查阅相关文档:

但上一个视频可以正常运行 报告如下
[DEBUG] 原始字幕行数:1220, 翻译后行数:1220
[DEBUG] 原始语言字幕和目标语言字幕行数一致,均为 source_len=1220

[DEBUG]


==准备要嵌入的字幕:self.cfg.subtitle_type=3
=
[DEBUG] 最终确定字幕嵌入类型:3 ,目标字幕语言:zho, 字幕文件:E:/ike/win-pyvideotrans-v4.08-0802/tmp/15796/a9f44d10a1/shuang.srt

[DEBUG] 返回缓存的编解码器 Windows-264: h264_qsv
[DEBUG] 原始hw_type='h264_qsv'
[DEBUG] 整理后hw_type='qsv'
[DEBUG] [尝试硬件编解码执行命令]
-y -progress compose1786296425.7035966.txt -i novoice.mp4 -i will_embed.m4a -filter_complex [0:v]subtitles=filename='shuang.ass'[v_out] -map [v_out] -map 1:a -c:v h264_qsv -c:a copy -global_quality 23 -preset slow -movflags +faststart -shortest laste_target.mp4

这是 v4.08 版本在“最终视频合成”阶段的已知不稳定缺陷,并非你操作有误。对比你提供的两份日志:失败的任务生成 FFmpeg 命令时,-filter_complex 后面缺少滤镜脚本且未指定输出文件路径(命令不完整),而成功任务命令完整。这表明软件在构造硬字幕嵌入命令时存在偶发性错误,与视频本身或编码选择(libx264 还是 h264_qsv)无直接关系。上一个视频成功只是偶然。

解决方案:

  1. 最稳妥的做法是升级到 v4.09 或最新补丁包,该问题已在后续版本修复。若当前是 v4.08,建议直接下载完整包覆盖(或补丁包覆盖,若旧版与最新版相差很大请用完整包)。
  2. 如果暂时无法升级,可先勾选主界面的「清理已生成」后重新处理该视频,或改为「嵌入软字幕」/「不嵌入字幕」临时绕过硬字幕滤镜路径。
  3. 确保视频文件路径和软件解压路径均为纯英文数字,避免特殊符号干扰底层命令组装。

请查阅相关文档:

如果升级或最新补丁包 会导致已生成的文件清空从而需要重新处理视频吗

升级或打补丁包 不会清空已生成的文件,也不会导致需要重新处理视频。

已生成的成品文件(如 _video_out 目录或你自定义输出目录中的视频、字幕、配音文件)均保留在软件目录之外,升级不影响它们。

但要注意两点:

  1. 建议先备份配置文件:软件配置保存在 软件目录/videotrans/ 下的 params.jsoncfg.json 等 json 文件中。完整包/补丁包覆盖不会删除这些文件(包里不含这些文件),但稳妥起见可先复制备份。
  2. 重新处理同一视频时不要勾选「清理已生成」:该选项才会主动清空对应视频已生成的字幕和缓存文件。只要不勾选,升级后重新点「开始」,软件会直接使用已存在的字幕和中间文件,跳过重复的识别/翻译步骤。

如何打补丁

将补丁包解压后,把解压得到的所有文件复制到 sp.exe 所在目录,全部覆盖同名文件即可。操作步骤:1. 先关闭正在运行的程序;2. 进入软件根目录(例如 D:\pyVideoTrans),建议先备份 videotrans\ 目录下的 params.jsoncfg.json 等 json 文件;3. 解压补丁包,全选内容复制;4. 粘贴到软件根目录,提示覆盖时选择“全部替换/是”;5. 重新运行 sp.exe。注意事项:若当前版本与最新版相差较大(尤其从低版本直接升级),仅用补丁包可能出错,此时应下载完整包覆盖。覆盖不会清空已生成的翻译结果或输出文件,只要不勾选「清理已生成」,重新处理视频时会直接使用已有字幕与缓存。

为什么要备份json文件

备份 json 文件是为了防止意外丢失你的 API 密钥和自定义设置。这些 json 文件(重点是 params.json、cfg.json)保存在 软件目录/videotrans/ 下,里面存放了你填写的所有密钥、代理、模型选择、高级选项等个人配置。虽然完整包和补丁包本身不包含这些文件,覆盖时通常不会删除它们,但以防万一(例如误操作、杀毒软件拦截、文件损坏等),备份一份最稳妥。若 cfg.json 意外损坏,软件会自动用默认配置重写,导致所有自定义设置丢失。备份后即使出现问题,直接复制回去即可恢复。

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.

Dondate via ko-fi.com

Dondate via PayPal

Related resource