#6907 [DEBUG] 开始语音识别:渠道0[DEBUG] [新进程任务 开始:STT use large-v3][DEBUG] 任务参数:kwargs={'detect_language': 'en', 'model_name': 'large-

203.10.**4 Posted at: 1 hour ago

[DEBUG] 开始语音识别:渠道0
[DEBUG] [新进程任务 开始:STT use large-v3]
[DEBUG] 任务参数:kwargs={'detect_language': 'en', 'model_name': 'large-v3', 'logs_file': 'D:/pyvideotrans/tmp/6160/2b16658002/faster-en-1787801438.7721088.log', 'is_cuda': True, 'no_speech_threshold': 0.6, 'condition_on_previous_text': False, 'speech_timestamps': None, 'audio_file': 'D:/pyvideotrans/tmp/6160/2b16658002/en.wav', 'local_dir': 'D:/pyvideotrans/models/models--Systran--faster-whisper-large-v3', 'compute_type': 'default', 'jianfan': False, 'audio_duration': 8153003, 'hotwords': None, 'prompt': '', 'beam_size': 5, 'best_of': 5, 'temperature': '', 'repetition_penalty': 1.0, 'compression_ratio_threshold': 2.4, 'max_speech_ms': 5000, 'device_index': 0}
[DEBUG] GPU进程池:max_workers=1
[DEBUG] [faster_whisper]加载模型:当前 is_cuda=True,_compute_type='default'
[DEBUG] faster-whisper模式下,对large-v3模型返回的断句结果重新修正
[DEBUG] 断句结果重新修正完毕
[DEBUG] 返回识别结果
[DEBUG] [新进程任务 结束:STT use large-v3],耗时1282.513066053
......
lf.ainame='deepseek',self.model_name='deepseek-v4-pro',self.api_url='https://api.deepseek.com/v1/',self.reasoning_effort=None]
[INFO] Starting call to 'videotrans.translator._openaicompat.OpenAICampat._item_task', this is the 1st time calling it.
[DEBUG] 字幕翻译:[self.ainame='deepseek',self.model_name='deepseek-v4-pro',self.api_url='https://api.deepseek.com/v1/',self.reasoning_effort=None]
[INFO] Starting call to 'videotrans.translator._openaicompat.OpenAICampat._item_task', this is the 1st time calling it.
[DEBUG] 字幕翻译:[self.ainame='deepseek',self.model_name='deepseek-v4-pro',self.api_url='https://api.deepseek.com/v1/',self.reasoning_effort=None]
[INFO] Starting call to 'videotrans.translator._openaicompat.OpenAICampat._item_task', this is the 1st time calling it.
[DEBUG] 字幕翻译:[self.ainame='deepseek',self.model_name='deepseek-v4-pro',self.api_url='https://api.deepseek.com/v1/',self.reasoning_effort=None]
[INFO] Starting call to 'videotrans.translator._openaicompat.OpenAICampat._item_task', this is the 1st time calling it.
[DEBUG] 字幕翻译:[self.ainame='deepseek',self.model_name='deepseek-v4-pro',self.api_url='https://api.deepseek.com/v1/',self.reasoning_effort=None]
[INFO] Starting call to 'videotrans.translator._openaicompat.OpenAICampat._item_task', this is the 1st time calling it.
[DEBUG] 字幕翻译:[self.ainame='deepseek',self.model_name='deepseek-v4-pro',self.api_url='https://api.deepseek.com/v1/',self.reasoning_effort=None]
[DEBUG] 以SRT格式翻译,原始字幕行数:2883,翻译后行数:2883
[DEBUG] 原始语言字幕和目标语言字幕行数一致,均为 source_len=2883

[DEBUG] 跳过二次识别
[DEBUG]


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


=
[DEBUG] 最终确定字幕嵌入类型:1 ,目标字幕语言:zho, 字幕文件:D:/pyvideotrans/tmp/6160/2b16658002/end.srt

[DEBUG] [set_ass_font] 未修改硬字幕样式,跳过样式替换
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -i novoice.mp4 -vf tpad=stop_mode=clone:stop_duration=1.094 -c:v libx264 -crf 23 -preset medium -an final_video_with_freeze_lastend.mp4

23 Replies

#1 DeepSeek reply at 1 hour ago

从日志看,语音识别(1282s)与字幕翻译(882s)均已完成,当前处于视频合成阶段:ffmpeg 正在执行硬字幕嵌入并用 tpad 补齐末尾时长。日志末尾没有报错信息,流程运行正常。

请具体说明你遇到的问题:

  1. 是卡在合成阶段不结束?
  2. 还是出现了弹窗/错误提示?
  3. 或者是最终视频有问题(如无字幕、音画不同步等)?

如果是程序卡死或无响应,请提供软件版本号(左上角)、操作系统,以及 logs/ 目录下最近日志的最后约30行内容。

#2 203.10.**4 reply at 1 hour ago

卡在合成阶段不结束 但是CPU占用97% GPU占用21% ffmpeg也在运行 占用70左右

#3 DeepSeek reply at 1 hour ago

这不是卡死了,而是“纯 CPU 软编码”耗时较长。

由于你选择了嵌入硬字幕(subtitle_type=1),ffmpeg 必须对整段视频画面进行重新编码。日志中的命令 -c:v libx264 -crf 23 -preset medium 表明当前使用的是 CPU 软编码(x264),且预设为 medium(中等速度)。你的视频时长约 2小时16分钟(来自日志 audio_duration: 8153003 毫秒),使用 medium 预设重编码这么长的视频,耗时数小时非常正常,CPU 满负荷和高占用率正是它正在拼命工作的表现。

如果急需结果,可按以下步骤进行加速优化:

1. 降低编码预设(速度最快最简单)

打开 菜单 -> 工具 -> 高级选项 -> 视频输出控制

  • 输出视频压缩率medium 改为 veryfastultrafast。这能成倍缩短编码时间,代价是视频体积会变大。

2. 调高 CRF(损失少量画质)

  • 视频输出质量控制 从默认的 23 调高到 2830,数值越大文件越小、编码越快。

3. 改用“软字幕”(终极提速,避免重编码)

如果你不需要字幕在网页中自动显示,只需在播放器里显示:

  • 回到主界面,将 字幕嵌入类型嵌入硬字幕 改为 嵌入软字幕
  • 软字幕是封装进容器,不参与视频画面重编码,合成速度会直接从“小时级”变成“分钟级”。

4. 检查硬件加速是否生效

日志中 GPU 占用仅 21%,说明大部分编码工作在 CPU 上进行。如果你有 NVIDIA 显卡,请进入高级选项,勾选:

  • 视频合成cuda硬解码(或确保未勾选 强制软编码视频?),这样可以利用 NVIDIA 的 NVENC 硬件编码器加速合成。

关于“卡住不结束”的最终判定
如果你尝试以上优化后,在日志目录下的最新日志里,超过 30 分钟没有产生新的进度输出(如 frame=...time=...),则可能是 ffmpeg 进程死锁崩掉了。请停止任务并重启软件,同时保留日志文件反馈给我们。否则,请给予足够耐心等待其完成。

#4 203.10.**4 reply at 1 hour ago

字幕文件已经生成了 我能不能让他直接输出 我不需要视频

#5 DeepSeek reply at 1 hour ago

可以直接输出字幕文件,无需等待视频合成。

你当前任务已生成目标字幕文件,路径为:
D:/pyvideotrans/tmp/6160/2b16658002/end.srt

请立即将该文件复制到安全位置,因为任务结束后临时文件夹可能被自动清理。如果正在运行的任务占用资源,你完全可以停止它,字幕已生成,不影响使用。

如果你以后只需要“翻译字幕”而不要视频,请使用左侧功能面板中的 “翻译字幕” 功能:导入已有的 SRT 字幕文件,选择翻译渠道和目标语言,点击执行即可,输出结果默认保存在软件安装目录下的 output 文件夹内。

#6 203.10.**4 reply at 1 hour ago

英文的字幕在哪

#7 DeepSeek reply at 1 hour ago

英文原文字幕(源语言字幕)应位于同一临时目录下,文件名为 en.srt

D:/pyvideotrans/tmp/6160/2b16658002/en.srt

请立即将该文件复制到安全位置,因为任务结束后临时文件夹会被自动清理。

如果你已完成任务并清理了临时目录,可以在左侧功能面板使用“语音转录”功能:导入原视频,发音语言选择 en(英文),执行后即可生成英文字幕,输出默认保存在软件安装目录的 output 文件夹内。

#8 203.10.**4 reply at 1 hour ago

没有英文字幕啊 到底在哪

#9 DeepSeek reply at 1 hour ago

英文原文字幕文件名是 en.srt,正常情况下应有两个位置:

  1. 临时目录(如果任务还在运行或刚中断):
    D:/pyvideotrans/tmp/6160/2b16658002/en.srt
    注意:任务一旦完全结束,这个临时文件夹会被自动清理,文件可能已丢失。
  2. 输出目录(如果任务已完成或部分成功):
    请到你的原始视频所在文件夹,查看同级目录下的 _video_out/ 文件夹,进入与视频同名的子文件夹(如 _video_out/你的视频名-mp4/),里面通常保留有 en.srt
    如果你勾选了主界面的 仅输出mp4,则所有中间文件(包括英文字幕)会被自动删除,无法找回。

如果以上位置都找不到,说明英文字幕已被清理。此时只能重新生成:
在左侧功能面板选择 语音转录,导入原视频,发音语言设为 en,执行后即可生成英文字幕,输出保存在软件安装目录下的 output 文件夹内。

#10 203.10.**4 reply at 1 hour ago

现在有这几个文件en.wav end.ass end.srt end-edit.srt final_video_with_freeze_lastend.mp4 novoice.mp4 will_embed.m4a

#11 DeepSeek reply at 1 hour ago

当前临时目录中没有 en.srt,说明英文原文字幕可能在任务流程中被提前清理,或该文件名未被生成到该目录。你的情况可能有两种:一是任务尚未结束,end-edit.srt 就是编辑后的最终字幕(目标语言);二是 en.srt 已被移动到别处或删除。请按以下顺序确认:1. 返回原始视频所在文件夹,查看同级 _video_out/ 目录,进入与视频同名的子文件夹,寻找 en.srt。2. 如果没有找到,可以直接使用 end-edit.srt,它就是当前任务编辑后的最终字幕文件(目标语言)。3. 如果仍需要英文原文字幕,可以停止当前任务(字幕已生成),然后使用左侧面板 语音转录 导入原视频,发音语言选 en,重新生成一个英文 SRT 字幕。4. 若你确定的确认停止任务并复制文件,建议先复制 final_video_with_freeze_lastend.mp4end-edit.srtwill_embed.m4a 到安全位置,避免被自动清理。

#12 203.10.**4 reply at 1 hour ago

这几个文件都是干什么用的

#13 DeepSeek reply at 1 hour ago

以下是这些文件的用途说明(均为视频翻译过程中的中间/最终缓存文件,位于临时目录 D:/pyvideotrans/tmp/6160/2b16658002/):

文件用途
en.wav从原始视频中提取的英文音频流(用于语音识别,文件名 en 表示英文发音)
end.ass带样式的 ASS 字幕文件,通常用于烧录硬字幕(嵌入画面时使用)
end.srt翻译后的目标语言字幕(SRT 格式),即最终要嵌入/显示的字幕
end-edit.srt编辑后的最终字幕版本(可能是程序自动修正或你手动修改过的)
final_video_with_freeze_lastend.mp4合成后的最终视频文件,末尾使用了“冻结最后一帧”补齐时长(对应 ffmpeg 的 tpad=stop_mode=clone
novoice.mp4无声视频流(已剥离音频,用于最后与配音、字幕重新合成)
will_embed.m4a准备嵌入视频的音频文件(可能是配音后的声音,或与背景声混合后的音频)

关键说明

  • 这些文件都是临时缓存,任务一旦结束或软件关闭,tmp 文件夹会被自动清理,请及时复制需要的文件到安全位置。
  • 你现在没有找到 en.srt,因为英文原文字幕文件可能已被程序在翻译后移除,或未保留在当前目录。如需英文原文字幕,需重新通过左侧“语音转录”功能生成。
  • final_video_with_freeze_lastend.mp4 如果已完整生成,可以直接使用;若仍在写入,请等待完成后再复制。
#14 203.10.**4 reply at 1 hour ago

这个final_video_with_freeze_lastend.mp4刚刚是0kb 现在变成2291713kb了

#15 DeepSeek reply at 1 hour ago

final_video_with_freeze_lastend.mp4 正在写入中,从 0KB 增长到 2.29GB 是 ffmpeg 正常编码输出的表现,说明视频合成阶段仍在进行,文件尚未写完。

请保持软件运行,不要关闭或强制结束进程,否则该文件将不完整且无法使用。等待进度条走完或日志出现“任务完成”提示后,该文件即为最终翻译视频。

补充说明:你的原始视频时长约 2小时16分钟,当前采用 CPU 软编码(libx264 + medium 预设)生成约 2.29GB 的文件,体积属于正常范围。若你觉得文件过大或等待时间过久,可在下一次任务中调整高级选项中的“输出视频压缩率”和“视频输出质量控制”,或改用“嵌入软字幕”避免硬字幕重编码。

现在请耐心等待任务完成,完成后可立即将该 mp4 文件复制到安全位置。

#16 203.10.**4 reply at 1 hour ago

还在变大 这是不是最后一个任务

#17 DeepSeek reply at 1 hour ago

是的,这是最后一个主要处理阶段。final_video_with_freeze_lastend.mp4 正在由 ffmpeg 进行最终合成,文件持续变大表示编码仍在进行,尚未完成。合成完成后,软件会进入最后一步“任务收尾”:将成品视频从临时目录移动到最终输出目录(通常是原视频同级的 _video_out/ 文件夹),随后清理临时文件。因此:当该文件不再变大,并且你在 _video_out/ 里看到新的同名视频文件时,即代表任务全部完成。现在请耐心等待,不要中断或复制正在写入的文件,否则会损坏。

#18 203.10.**4 reply at 1 hour ago

我找不到 _video_out/

#19 DeepSeek reply at 1 hour ago

任务可能还未完成,输出文件尚未从临时目录移动到最终位置。当 final_video_with_freeze_lastend.mp4 不再增长且日志出现“任务完成”提示后,输出视频才会出现在最终目录。

找到输出位置的方法:

  1. 点击主界面进度条旁的“打开输出文件夹”按钮,它会直接打开最终输出目录。
  2. 检查原视频所在目录:默认输出在原视频的同级 _video_out/ 文件夹内,进入后找到与视频同名的子文件夹(如 _video_out/你的视频名-mp4/),最终视频就在里面。
  3. 如果你在主界面点击过“输出到...”并指定了其他位置,那么输出就在你指定的文件夹里,而不是默认的 _video_out/
  4. 若勾选了“文件夹”批量模式,则输出在所选文件夹同级的 _video_out/ 下。

如果任务已完成且以上位置都没有,请告诉我你选择的原始视频的完整路径,我帮你判断输出应在哪里。

#20 203.10.**4 reply at 1 hour ago

如果我用en.wav 能不能识别英文字幕

#21 DeepSeek reply at 1 hour ago

可以用 en.wav 识别英文字幕。en.wav 是从原始视频提取的英文音频,可直接用于语音转录,无需重新处理整个视频。

操作步骤:

  1. 先将 en.wav 从临时目录复制到安全位置(如桌面),因为临时目录可能在任务结束后被自动清理。
  2. 打开软件左侧功能面板,选择“语音转录”。
  3. 导入刚才复制的 en.wav 文件。
  4. 发音语言选择 en(英文),语音识别渠道建议用 faster-whisper(内置)或 openai-whisper(内置)。
  5. 点击开始执行,完成后将生成 en.srt 英文字幕,默认保存在软件安装目录下的 output 文件夹内。

注意:如果目前视频合成任务还在运行,建议先停止当前任务(字幕已生成,不影响),然后进行上述操作,避免 CPU/GPU 资源冲突。

#22 203.10.**4 reply at 7 minutes ago

一直没变过

#23 DeepSeek reply at 7 minutes ago

请先确认“一直没变过”是指什么:是 final_video_with_freeze_lastend.mp4 的文件大小长时间不再增长,还是主界面的进度条一直停滞不动?

如果是文件大小不变且 CPU 占用率明显下降,可能 ffmpeg 已完成编码,但软件正在进行最后的文件移动或收尾;如果 CPU 仍保持高占用,则可能是 ffmpeg 进程卡死。

请打开软件安装目录下的 logs/ 文件夹,找到最新日期的日志文件,复制底部约 30 行内容给我,以便判断。

同时你也可以点击主界面进度条旁的“打开输出文件夹”按钮,看看最终视频是否已经出现在输出目录中。如果确实卡死且无法恢复,可以停止任务并重启软件,已生成的字幕文件(如 end-edit.srt)不会丢失。

Thinking...
Post Your Reply
If you have more than 50 messages, you will no longer receive an automatic reply. Please ask a new question!
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

Related resource