#2731 During handling of the above exception, another exception occurred:Traceback (most recent call last): File "videotrans\

212.135* Posted at: 29 days ago 👁79

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "videotrans\task\_only_one.py", line 90, in run
File "videotrans\task\trans_create.py", line 518, in assembling
File "videotrans\task\trans_create.py", line 1095, in _join_video_audio_srt
RuntimeError: 最后一步字幕配音嵌入时出错

7 Replies

这个错误“最后一步字幕配音嵌入时出错”通常发生在视频合成阶段,可能由以下几种原因导致:

核心解决方法:

  1. 检查输出路径权限

    • 确保输出文件夹(通常是原视频目录下的 _video_out 文件夹)有写入权限。
    • 不要将视频文件放在系统保护目录(如 C:\Program Files)或路径包含特殊字符的文件夹中。
  2. 清理缓存并重试

    • 在主界面处理同一视频时,务必勾选“清理已生成”选项,以清除之前的临时文件,避免冲突。
  3. 检查视频/音频文件完整性

    • 确保原始视频文件没有损坏,并且包含有效的音轨。
    • 如果使用了“人声分离”功能,请尝试关闭它再处理。
  4. 降低并发或改为串行处理(针对批量处理)

    • 如果是在批量处理多个视频时出错,请在 菜单 -> 工具 -> 高级选项 中,勾选 “批量翻译时强制串行”
    • 在“配音调整”区域,将“同时配音字幕数”改为 1,以降低系统负载。
  5. 检查FFmpeg

    • 确保软件目录下的 ffmpeg.exe 文件未被误删或损坏。如果是源码部署,请确认系统已正确安装 ffmpeg
  6. 查看详细日志

    • 错误信息中缺少关键细节。请打开软件所在目录下的 logs 文件夹,找到最新的日志文件(如 videotrans_2025-xx-xx.log),查看 RuntimeError 之前的详细错误堆栈,这将指明具体是哪个环节(如编码、混流)出了问题。

如果以上步骤无法解决,请提供完整的日志文件内容以便进一步分析。

请查看更多参考文档:

2026-01-19 22:18:17,612 - WARNING - FFmpeg 命令执行失败 (force_cpu=True)。
命令: ffmpeg -hide_banner -ignore_unknown -threads 0 -y -progress D:/aifanyi/tmp1112/compose1768832292.7879107.txt -i D:/aifanyi/tmp1112/0cad320b04/novoice.mp4 -i D:/aifanyi/tmp1112/0cad320b04/ja.wav -c:v libx264 -c:a aac -b:a 128k -vf subtitles=end.srt.ass -movflags +faststart -crf 22 -preset fast -shortest C:/Users/jie/Desktop/_video_out/1月19日/1月19日.mp4
错误: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:/aifanyi/tmp1112/0cad320b04/novoice.mp4':
Metadata:

major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf61.7.100

Duration: 00:11:01.47, start: 0.000000, bitrate: 8047 kb/s
Stream #0:00x1: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 8044 kb/s, 30 fps, 30 tbr, 15360 tbn (default)

  Metadata:
    handler_name    : VideoHandler
    vendor_id       : [0][0][0][0]

[aist
......
=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=22.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'C:/Users/jie/Desktop/_video_out/1月19日/1月19日.mp4':
Metadata:

major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf61.7.100

Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 30 fps, 15360 tbn (default)

  Metadata:
    handler_name    : VideoHandler
    vendor_id       : [0][0][0][0]
    encoder         : Lavc61.19.101 libx264
  Side data:
    cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A

Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s

  Metadata:
    encoder         : Lavc61.19.101 aac

[Parsed_subtitles_0 @ 0000017126f6e400] fontselect: (Arial, 400, 0) -> ArialMT, 0, ArialMT
[Parsed_subtitles_0 @ 0000017126f6e400] Glyph 0x611F not found, selecting one more font for (Arial, 400, 0)
[Parsed_subtitles_0 @ 0000017126f6e400] fontselect: (Arial, 400, 0) -> MicrosoftYaHeiUI, 1, MicrosoftYaHeiUI
frame= 89 fps=0.0 q=28.0 size= 512KiB time=00:00:02.90 bitrate=1446.4kbits/s speed=5.63x
frame= 225 fps=219 q=28.0 size= 1280KiB time=00:00:07.43 bitrate=1410.7kbits/s speed=7.23x
frame= 304 fps=197 q=28.0 size= 1792KiB time=00:00:10.06 bitrate=1458.3kbits/s speed=6.53x
frame= 359 fps= 77 q=28.0 size= 2304KiB time=00:00:11.90 bitrate=1586.1kbits/s speed=2.54x

Traceback (most recent call last):
File "videotrans\util\help_ffmpeg.py", line 274, in runffmpeg
File "subprocess.py", line 524, in run
subprocess.CalledProcessError: Command '['ffmpeg', '-hide_banner', '-ignore_unknown', '-threads', '0', '-y', '-progress', 'D:/aifanyi/tmp1112/compose1768832292.7879107.txt', '-i', 'D:/aifanyi/tmp1112/0cad320b04/novoice.mp4', '-i', 'D:/aifanyi/tmp1112/0cad320b04/ja.wav', '-c:v', 'libx264', '-c:a', 'aac', '-b:a', '128k', '-vf', 'subtitles=end.srt.ass', '-movflags', '+faststart', '-crf', '22', '-preset', 'fast', '-shortest', 'C:/Users/jie/Desktop/_video_out/1月19日/1月19日.mp4']' returned non-zero exit status 3221225477.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "videotrans\task\trans_create.py", line 1092, in _join_video_audio_srt
File "videotrans\util\help_ffmpeg.py", line 319, in runffmpeg
RuntimeError: frame= 359 fps= 77 q=28.0 size= 2304KiB time=00:00:11.90 bitrate=1586.1kbits/s speed=2.54x

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "videotrans\task\_only_one.py", line 90, in run
File "videotrans\task\trans_create.py", line 518, in assembling
File "videotrans\task\trans_create.py", line 1095, in _join_video_audio_srt
RuntimeError: 最后一步字幕配音嵌入时出错

错误的核心原因是 FFmpeg 在嵌入字幕时找不到所需的字体,具体体现在日志中的 Glyph 0x611F not found。这导致合成过程在运行约 12 秒后崩溃,并返回了 Windows 系统错误码 3221225477(通常与内存访问冲突或程序崩溃相关)。

请按以下步骤解决:

  1. 检查并安装缺失字体

    • 日志显示 FFmpeg 试图使用 ArialMicrosoftYaHeiUI(微软雅黑)字体渲染字幕,但未能找到字形 0x611F(一个中文字符)。
    • 确保您的 Windows 系统已安装“微软雅黑”字体。这是 Windows 的默认中文字体,如果缺失,请从可靠来源下载并安装。
  2. 修改字幕字体设置(首选方案)

    • 在软件主界面,点击右下角的 “设置更多参数”
    • 找到 “字幕字体” 选项。
    • 将字体名称改为一个您系统上确定存在的、支持中文的字体,例如:

      • SimHei (黑体)
      • NSimSun (新宋体)
      • FangSong (仿宋)
      • KaiTi (楷体)
    • 或者,如果您知道字体的确切文件名(不带扩展名),也可以直接使用。
  3. 简化输出路径

    • 当前的输出路径 C:/Users/jie/Desktop/_video_out/1月19日/1月19日.mp4 包含中文字符。虽然软件支持中文路径,但有时会与外部组件(如FFmpeg)产生兼容性问题。
    • 尝试将输出目录改为一个全英文、无空格的路径,例如 D:\output_videos
  4. 关闭硬件编码(如果上述步骤无效)

    • 菜单 -> 工具 -> 高级选项 中。
    • “视频输出控制” 区域,勾选 “强制使用软编码”
    • 这可以排除因显卡驱动或硬件编码器不稳定导致的崩溃。
  5. 清理缓存并重试

    • 重新处理时,在主界面务必勾选 “清理已生成” 选项,以确保使用新的字体设置重新合成。

操作顺序建议:首先尝试第2步(修改字体),如果问题依旧,再结合第3步(修改路径)和第4步(软编码)。完成设置后,执行第5步重新处理视频。

如果问题仍然存在,请提供您修改字体设置后,重新运行产生的新日志文件。

请查看更多参考文档:

2026-01-19 22:28:13,962 - WARNING - FFmpeg 命令执行失败 (force_cpu=True)。
命令: ffmpeg -hide_banner -ignore_unknown -threads 0 -y -progress D:/aifanyi/tmp1112/compose1768832889.2438219.txt -i D:/aifanyi/tmp1112/c1b2c6e7a1/novoice.mp4 -i D:/aifanyi/tmp1112/c1b2c6e7a1/ja.wav -c:v libx264 -c:a aac -b:a 128k -vf subtitles=end.srt.ass -movflags +faststart -crf 22 -preset fast -shortest D:/out/119/119.mp4
错误: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:/aifanyi/tmp1112/c1b2c6e7a1/novoice.mp4':
Metadata:

major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf61.7.100

Duration: 00:11:01.47, start: 0.000000, bitrate: 8047 kb/s
Stream #0:00x1: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 8044 kb/s, 30 fps, 30 tbr, 15360 tbn (default)

  Metadata:
    handler_name    : VideoHandler
    vendor_id       : [0][0][0][0]

[aist#1:0/pcm_s16le @ 00000195a777
......
ffset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=22.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'D:/out/119/119.mp4':
Metadata:

major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf61.7.100

Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 30 fps, 15360 tbn (default)

  Metadata:
    handler_name    : VideoHandler
    vendor_id       : [0][0][0][0]
    encoder         : Lavc61.19.101 libx264
  Side data:
    cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A

Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s

  Metadata:
    encoder         : Lavc61.19.101 aac

[Parsed_subtitles_0 @ 00000195a8d579c0] fontselect: (楷体, 400, 0) -> KaiTi, 0, KaiTi
frame= 88 fps=0.0 q=28.0 size= 512KiB time=00:00:02.86 bitrate=1463.3kbits/s speed=5.53x
frame= 217 fps=209 q=28.0 size= 1024KiB time=00:00:07.16 bitrate=1170.6kbits/s speed=6.92x
frame= 304 fps=196 q=28.0 size= 1792KiB time=00:00:10.06 bitrate=1458.3kbits/s speed=6.51x
frame= 415 fps=201 q=28.0 size= 2816KiB time=00:00:13.76 bitrate=1675.7kbits/s speed=6.66x
frame= 537 fps=208 q=28.0 size= 3840KiB time=00:00:17.83 bitrate=1764.0kbits/s speed=6.92x


stack smashing detected
: terminated

Traceback (most recent call last):
File "videotrans\util\help_ffmpeg.py", line 274, in runffmpeg
File "subprocess.py", line 524, in run
subprocess.CalledProcessError: Command '['ffmpeg', '-hide_banner', '-ignore_unknown', '-threads', '0', '-y', '-progress', 'D:/aifanyi/tmp1112/compose1768832889.2438219.txt', '-i', 'D:/aifanyi/tmp1112/c1b2c6e7a1/novoice.mp4', '-i', 'D:/aifanyi/tmp1112/c1b2c6e7a1/ja.wav', '-c:v', 'libx264', '-c:a', 'aac', '-b:a', '128k', '-vf', 'subtitles=end.srt.ass', '-movflags', '+faststart', '-crf', '22', '-preset', 'fast', '-shortest', 'D:/out/119/119.mp4']' returned non-zero exit status 3221226505.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "videotrans\task\trans_create.py", line 1092, in _join_video_audio_srt
File "videotrans\util\help_ffmpeg.py", line 319, in runffmpeg
RuntimeError:


stack smashing detected
: terminated

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "videotrans\task\_only_one.py", line 90, in run
File "videotrans\task\trans_create.py", line 518, in assembling
File "videotrans\task\trans_create.py", line 1095, in _join_video_audio_srt
RuntimeError: 最后一步字幕配音嵌入时出错

错误信息已发生变化,现在是 stack smashing detected : terminated。这是一个严重的运行时错误,通常由程序缓冲区溢出(内存越界)导致。结合日志中字体已成功选择 KaiTi 来看,问题很可能出在 FFmpeg 或其依赖库与当前系统环境的兼容性上。请按以下步骤解决:禁用字幕嵌入(测试核心功能):这是最直接的诊断方法。在主界面“同步与字幕显示”区域,将“字幕形式”从“嵌入硬字幕”改为“不嵌入字幕”。然后重新处理视频。如果此步骤成功,则问题确定是由字幕渲染环节引起的。如果失败,则问题可能更深层。更换 FFmpeg 版本(核心解决方案):软件自带的 FFmpeg 可能与您的 Windows 系统存在兼容性问题。请下载一个更新的静态编译版 FFmpeg。访问 FFmpeg 官方构建网站:https://www.gyan.dev/ffmpeg/builds/ 下载 ffmpeg-release-full.7z。解压后,找到其中的 bin/ffmpeg.exe 文件。用这个新的 ffmpeg.exe 替换软件目录下的 ffmpeg.exe(建议先备份原文件)。关闭所有硬件加速选项:在 菜单 -> 工具 -> 高级选项 中。在“视频输出控制”区域,确保勾选“强制使用软编码”。在“Faster/OpenAI/Whisper 语音识别微调”区域,确保“CUDA”相关选项未被异常勾选(如果您未使用CUDA)。检查系统环境:确保您的 Windows 系统已安装最新的系统更新和 Visual C++ 运行库。可以尝试从微软官网下载并安装 “Microsoft Visual C++ Redistributable” 最新版本。操作顺序建议:首先执行第1步,确认问题是否与字幕相关。无论第1步结果如何,都强烈建议执行第2步(更换FFmpeg),这是解决此类兼容性问题的常见有效方法。如果问题依旧,尝试第3步和第4步。如果上述所有步骤均无效,则可能是更深层的系统冲突。请考虑在另一台电脑上尝试,或使用软件的“预打包版”而非源码部署。请查看更多参考文档:遇到报错如何处理

成功了,然后怎么解决

很好!第一步成功说明核心的视频和音频合成功能是正常的,问题完全出在字幕渲染(嵌入硬字幕)环节。现在我们需要解决字幕渲染导致的崩溃。请按以下步骤操作:

1. 更换 FFmpeg 版本(最可能解决问题)

软件自带的 FFmpeg 可能在您的系统上存在与字幕滤镜(subtitles filter)相关的兼容性问题或 Bug。

  • 操作

    1. 访问 FFmpeg 官方构建网站:https://www.gyan.dev/ffmpeg/builds/
    2. 下载 ffmpeg-release-full.7z
    3. 解压后,找到 bin 文件夹里的 ffmpeg.exe
    4. 关闭 pyVideoTrans 软件
    5. 用这个新的 ffmpeg.exe 替换软件根目录下的 ffmpeg.exe(建议先备份原文件)。
    6. 重新启动软件,恢复“嵌入硬字幕”设置,并勾选“清理已生成”后重新处理视频。

2. 尝试嵌入软字幕(替代方案)

如果更换 FFmpeg 后硬字幕问题依旧,可以改用“软字幕”,它不渲染到视频画面,而是作为可开关的字幕流,兼容性更好。

  • 操作
    在主界面“同步与字幕显示”区域,将“字幕形式”改为 “嵌入软字幕”,然后处理。播放时可在播放器中切换字幕。

3. 检查并简化字幕文件(ASS格式)

stack smashing 错误有时也由字幕文件内容(如特殊样式、过长行、异常字符)引发。

  • 操作

    1. 在处理视频时,当“语音识别”完成后,会弹出字幕编辑窗口。
    2. 在编辑窗口中,点击 “保存翻译并退出” 按钮上方的 “格式化” 按钮。这可以清理字幕格式。
    3. 继续后续流程。

4. 使用更简单的字体

虽然日志显示已找到“楷体”,但可以尝试使用系统最基础的字体。

  • 操作
    在“设置更多参数”中,将“字幕字体”改为 Arial(英文系统基础字体)或 SimSun(宋体,Windows 最基础的中文字体之一)。

操作顺序建议:

首选执行第1步(更换FFmpeg),这解决过大量类似问题。
如果更换后仍报错,则按顺序尝试:第3步(格式化字幕) -> 第4步(换字体) -> 第2步(改用软字幕)。

完成任何一步的更改后,都请确保勾选主界面的“清理已生成”,然后重新处理视频以测试效果。

Post Your Reply