#4337 win-pyvideotrans-v3.99-428执行后没生成.mp4文件

2a09:bac1* Posted at: 1 hour ago 👁10

[DEBUG] [Audio] 开始处理 8 个音频变速任务
[DEBUG] CPU进程池:max_workers=6
[DEBUG] [Audio-RB] E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/dubb-8.wav 原长:3075ms -> 目标:2500ms 倍率:1.23
[DEBUG] [Audio-RB] E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/dubb-2.wav 原长:5594ms -> 目标:3780ms 倍率:1.48
[DEBUG] [Audio-RB] E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/dubb-5.wav 原长:2645ms -> 目标:1980ms 倍率:1.34
[DEBUG] [Audio-RB] E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/dubb-7.wav 原长:2207ms -> 目标:2020ms 倍率:1.09
[DEBUG] [Audio-RB] E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/dubb-1.wav 原长:4125ms -> 目标:4120ms 倍率:1.00
[DEBUG] [Audio-RB] E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/dubb-9.wav 原长:2973ms -> 目标:2580ms 倍率:1.15
[DEBUG] [Audio-RB] E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/dubb-12.wav 原长:3141ms -> 目标:2860ms 倍率:1.10
[DEBUG] [Audio-RB] E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/dubb-14.wav 原长:3855ms -> 目标:2680ms 倍率:1.44
[DEBUG] [Audio] 开始对齐拼接...
[DEBUG] [Audio-Sync] Line=1 | 音频末尾补静音 321ms | [current_slot_audio_len=3739 slot_duration=4060] | Timeline: 20 -> 4080
[DEBUG] [Audio-Sync] Line=2 | 匹配 | [current_slot_audio_len=4120 slot_duration=4120] | Timeline: 4080 -> 8200
[DEBUG] [Audio-Sync] Line=3 | 匹配 | [current_slot_audio_len=3780 slot_duration=3780] | Timeline: 8200 -> 11980
[DEBUG] [Audio-Sync] Line=4 | 音频末尾补静音 1379ms | [current_slot_audio_len=3601 slot_duration=4980] | Timeline: 11980 -> 16960
[DEBUG] [Audio-Sync] Line=5 | 音频末尾补静音 40ms | [current_slot_audio_len=1900 slot_duration=1940] | Timeline: 16960 -> 18900
[DEBUG] [Audio-Sync] Line=6 | 匹配 | [current_slot_audio_len=1980 slot_duration=1980] | Timeline: 18900 -> 20880
[DEBUG] [Audio-Sync] Line=7 | 音频末尾补静音 687ms | [current_slot_audio_len=3173 slot_duration=3860] | Timeline: 20880 -> 24740
[DEBUG] [Audio-Sync] Line=8 | 匹配 | [current_slot_audio_len=2020 slot_duration=2020] | Timeline: 24740 -> 26760
[DEBUG] [Audio-Sync] Line=9 | 匹配 | [current_slot_audio_len=2500 slot_duration=2500] | Timeline: 26760 -> 29260
[DEBUG] [Audio-Sync] Line=10 | 匹配 | [current_slot_audio_len=2580 slot_duration=2580] | Timeline: 29260 -> 31840
[DEBUG] [Audio-Sync] Line=11 | 音频末尾补静音 24ms | [current_slot_audio_len=5016 slot_duration=5040] | Timeline: 31840 -> 36880
[DEBUG] [Audio-Sync] Line=12 | 音频末尾补静音 140ms | [current_slot_audio_len=3980 slot_duration=4120] | Timeline: 36880 -> 41000
[DEBUG] [Audio-Sync] Line=13 | 匹配 | [current_slot_audio_len=2860 slot_duration=2860] | Timeline: 41000 -> 43860
[DEBUG] [Audio-Sync] Line=14 | 音频末尾补静音 230ms | [current_slot_audio_len=2290 slot_duration=2520] | Timeline: 43860 -> 46380
[DEBUG] [Audio-Sync] Line=15 | 匹配 | [current_slot_audio_len=2680 slot_duration=2680] | Timeline: 46380 -> 49060
[DEBUG] [Audio-Sync] Line=16 | 音频末尾补静音 895ms | [current_slot_audio_len=2525 slot_duration=3420] | Timeline: 49060 -> 52480
[DEBUG] [Audio-Sync] Line=17 | 音频末尾补静音 74ms | [current_slot_audio_len=3206 slot_duration=3280] | Timeline: 52480 -> 55760
[DEBUG] [Audio-Sync] Line=18 | 音频末尾补静音 297ms | [current_slot_audio_len=1309 slot_duration=1606] | Timeline: 55760 -> 57366
[DEBUG] concat_txt='E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/final_audio_concat.txt',filelist[0]='E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/silence_head_0.wav'
[DEBUG] [Audio-Concat] 最终音频已生成: E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/target.wav
[DEBUG] 进入二次识别

[DEBUG] [recognition]__init__:kwargs={'detect_language': 'zh', 'audio_file': 'E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/recogn2pass-1777452242.4365509.wav', 'cache_folder': 'E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc', 'model_name': 'medium', 'uuid': '5bc842a6fc', 'is_cuda': True, 'subtitle_type': 0, 'recogn_type': 0, 'max_speakers': -1, 'llm_post': False, 'recogn2pass': True}
[DEBUG] BaseRecogn 初始化

[DEBUG] faster_whisper实际使用计算精度:float16
[DEBUG] faster-whisper模式下,对medium模型返回的断句结果重新修正
[DEBUG] [语音识别]渠道0,medium:共耗时:13s
[DEBUG] 二次识别成功完成
[DEBUG]


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


=
[DEBUG] 最终确定字幕嵌入类型:1 ,目标字幕语言:chi, 字幕文件:E:/win-pyvideotrans-v3.99-428/tmp/21400/5bc842a6fc/end.srt

[DEBUG] 原始hw_type='h264_nvenc'
[DEBUG] 整理后hw_type='nvenc'
[DEBUG] [尝试硬件编解码执行命令]
-y -progress compose1777452259.5529356.txt -hwaccel cuda -hwaccel_output_format cuda -i novoice.mp4 -i origin_audio.m4a -filter_complex [0:v]hwdownload,format=nv12,subtitles=filename='end.ass',hwupload_cuda[v_out] -map [v_out] -map 1:a -c:v h264_nvenc -c:a copy -cq 23 -preset p4 -movflags +faststart -t 57.366000 laste_target.mp4

3 Replies

日志显示软件已完成二次识别,正准备执行FFmpeg视频合成命令,但此后没有进一步输出,大概率是硬件编码步骤失败且错误未被记录。由于使用了h264_nvenc(NVIDIA GPU硬件编码器),常见原因是显卡驱动与编码参数不兼容、显存不足或滤镜链在GPU上执行出错。

解决方案:

  1. 检查完整日志
    进入软件目录的logs文件夹,打开当天最新的.log文件,搜索ERRORffmpeg关键字,通常会看到FFmpeg报错原因。据此可精确定位问题。
  2. 临时禁用硬件编码,切换为CPU软编码
    打开菜单 → 工具/选项高级选项

    • 取消勾选 视频合成cuda硬解码
    • 勾选 强制软编码视频?(如果存在该选项)。
      重新翻译同一视频,这将使用libx264软编码,虽慢但兼容性更好。
  3. 若仍失败,调整输出视频参数
    在“视频输出控制”区域,将 视频输出质量控制 设为 23输出视频压缩率medium264/265编码264,避免使用高负载编码设置。
  4. 检查输出目录
    确保输出路径不含中文或特殊符号,且磁盘有足够空间,软件有写入权限。
  5. 关闭其他GPU加速选项
    在翻译前,尝试取消勾选主界面的 CUDA加速 以及 关闭 二次识别,降低整体资源占用。

请查阅相关文档:

若以上步骤仍无法生成mp4,请提供logs文件夹中对应时间戳的完整日志(尤其是FFmpeg相关错误行),以便进一步分析。

我输入的视频是.webm格式,输出是勾选的.mp4

WebM 格式(通常 VP8/VP9 编码)与 FFmpeg 硬件加速的兼容性较差,即使勾选输出为 MP4,合成阶段也容易因解码器或滤镜链冲突卡死。

解决方案(按推荐顺序):

  1. 禁用硬件解码/编码
    打开 菜单 → 工具/选项 → 高级选项

    • 取消勾选 视频合成cuda硬解码
    • 取消勾选 主界面 CUDA加速(如果仍在勾选状态)
      然后重新翻译同一视频。这样会自动转用纯 CPU 软编解码,虽慢但能稳定处理 WebM。
  2. 预处理转码为标准 MP4
    若软编码仍慢或报错,先用工具将 WebM 转为 H.264 编码的 MP4:

    • 使用软件自带的 工具音视频格式转换,将 WebM 转成 MP4;
    • 再用转换后的 MP4 作为输入文件进行翻译。
      这能彻底避开 WebM 解码兼容问题。
  3. 检查输出目录与文件路径
    确保视频存放路径不含中文、特殊符号,且磁盘空间充足。WebM 文件名若含表情符或过长也需简化(如改为 video.webm)。
  4. 调整输出质量控制
    同时建议在高级选项中:

    • 视频输出质量控制 设为 23(默认)
    • 输出视频压缩率medium
    • 264/265编码264

请查阅相关文档:

如果仍然失败,请提供 logs/ 文件夹中该任务的完整日志,定位 FFmpeg 层面的具体报错。

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