#6470 non-negative timestamp expected:Traceback (most recent call last): File

2408:**:c384 Posted at: 2 hours ago

non-negative timestamp expected:Traceback (most recent call last):
File "videotrans\process\stt_faster.py", line 118, in faster_whisper
File "faster_whisper\transcribe.py", line 460, in transcribe
File "faster_whisper\utils.py", line 124, in format_timestamp
AssertionError: non-negative timestamp expected

Traceback (most recent call last):
File "videotrans\task\only_one.py", line 62, in run
File "videotrans\task\_stage_recogn.py", line 62, in recogn
File "videotrans\recognition\__init__.py", line 206, in run
File "videotrans\recognition\_base.py", line 92, in run
File "videotrans\recognition\_whisper.py", line 41, in _exec
File "videotrans\recognition\_whisper.py", line 129, in _faster
File "videotrans\configure\base.py", line 267, in _new_process
videotrans.configure.excepts.VideoTransError: non-negative timestamp expected:Traceback (most recent call last):
File "videotrans\process\stt_faster.py", line 118, in faster_whisper
File "faster_whisper\transcribe.py", line 460, in transcribe
File "faster_whisper\utils.py", line 124, in format_timestamp
AssertionError: non-negative timestamp expected

cfg=[TaskCfgVTT]当前工作模式: 翻译视频或音频 单视频模式
原始输入文件名: C:/Users/Administrator/Desktop/翻译片段/6.mp4,
输出结果保存到文件夹: C:/Users/Administrator/Desktop/翻译片段/翻译输出/6-mp4,
临时文件夹: D:/win-pyvideotrans-v4.08/tmp/3196/0c31bb41c8
未选 清理已存在
未启用CUDA加速
未选 降噪
已选 识别说话人,最大说话人数量不限制
语音识别:faster-whisper(内置), model_name: medium, 发音语言: 简体中文, 断句方式:默认断句
翻译渠道:Google(免费),原始语言:简体中文,目标语言:英语, 已选 发送完整字幕
配音渠道:Qwen3-TTS(内置), 角色:clone, 配音语言:英语, 未选 二次语音识别
音量:+100%, 语速:+0%, 已选 音频加速, 未选 视频慢速
字幕: 嵌入硬字幕
已选 仅输出mp4
代理地址:


=
system:Windows-10-10.0.19045-SP0
version:v4.08
frozen:True
language:zh
root_dir:D:/win-pyvideotrans-v4.08

11 Replies

该报错是 faster-whisper 在生成字幕时遇到了负时间戳,通常由音频切片或时间轴解析异常导致。

可尝试按以下步骤排查:

  1. 先升级软件到最新补丁 v4.08-0802(当前日志显示为 v4.08,可能未包含最近修复),源码版请重新下载源码覆盖。
  2. 在“设置更多参数”中取消勾选“识别说话人”,再重新执行,排除说话人分离对时间轴的影响。
  3. 进入 菜单 → 工具 → 高级选项 → 语音识别参数,尝试:

    • 将“静音分割持续毫秒”调大(如从默认值调到 500 或 1000);
    • 将“最长语音持续(秒)”调小(如 10)。
  4. 关闭软件,手动清空软件根目录下的 tmp/ 临时文件夹,再重启重试。
  5. 若仍报错,先用 FFmpeg 或格式转换工具将 6.mp4 重新封装为 mp4(如 ffmpeg -i 6.mp4 -c copy 6_new.mp4),再用新文件尝试;若问题消失,说明原视频时间戳异常。

如果以上步骤仍然无法解决,请提供软件目录下 logs/ 中当天的日志文件内容(复制底部约30行),同时确认软件左上角显示的完整版本号。

我已经升级补丁了呀,为什么还是v4.08

这是正常现象:v4.08-0802 这个补丁更新后,软件左上角显示的版本号仍然是 v4.08,不会变为其他数字。需要确认补丁是否真的覆盖成功,可以查看软件根目录下是否存在更新日期为 2026-08-02 左右的文件,或检查 logs/ 中记录的实际构建时间。

如果升级后之前的报错仍在,请注意以下几点:

  1. 如果旧版本与当前最新版相差较大,仅用约300MB补丁包覆盖可能出错,建议下载约2.7GB完整包后全量解压使用。
  2. 确认补丁是覆盖到完整版同一目录下,且未解压到含中文、空格或特殊符号的路径。
  3. 覆盖前建议退出正在运行的 sp.exe,覆盖后再重新启动。

FFmpeg怎么下载使用,我下载了怎么没看到软件

FFmpeg 是后台命令行工具,没有可见的软件界面,pyVideoTrans 会在处理视频时自动调用它,所以你"看不到软件"是正常的。

针对你的情况分两种:

1. 如果你使用的是 Windows 完整版压缩包(约2.7GB)
ffmpeg 和 ffprobe 已经内置在解压后的主文件夹的 ffmpeg/ 目录下,无需额外下载。直接双击 sp.exe 使用即可。

2. 如果你使用的是源码部署 或 只下载了补丁包
需要手动下载 FFmpeg:

  • 下载地址:https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full.7z
  • 下载后解压,在解压出的文件夹中找到 bin 目录里的 ffmpeg.exeffprobe.exe
  • 在 pyVideoTrans 源码目录下新建 ffmpeg 文件夹,将这两个文件复制进去,路径应为:你的代码目录/ffmpeg/ffmpeg.exe你的代码目录/ffmpeg/ffprobe.exe
  • 之后从源码目录运行 uv run sp.py 打开软件即可

注意:不能直接双击 ffmpeg.exe 来"打开软件",它没有图形界面;ffmpeg 是通过命令行运行的工具,pyVideoTrans 会在需要时自动调用。

你是说pyvideotrans自带 FFmpeg是吗?那在软件的哪里可以使用呢

是的,Windows 完整版压缩包(约2.7GB)自带 ffmpeg.exe 和 ffprobe.exe,位于解压后的主文件夹内的 ffmpeg 文件夹中。你不需要手动打开或操作它——当你点击软件主界面的【开始】按钮执行翻译、转录、配音、合并等任务时,pyVideoTrans 会在后台自动调用 ffmpeg 来完成音频提取、视频合成、编码转换等操作,整个过程对你完全透明,你只需要照常使用软件即可。如果你是想验证 ffmpeg 是否正常可用,可以直接打开文件夹查看是否存在以下文件:你的软件目录/ffmpeg/ffmpeg.exe你的软件目录/ffmpeg/ffprobe.exe。只要这两个文件存在,说明自带的 ffmpeg 是可用的。注意:只有当你是从官方下载的约 2.7GB 完整版压缩包(或完整包+补丁覆盖)时,才自带 ffmpeg。如果你下载的只是约 300MB 的补丁包,里面是没有 ffmpeg 的,需要手动下载放置,否则运行时会报 ffmpeg/ffprobe 相关错误。

可是我现在不是用pyvideotrans翻译视频,并不能成功吗

是的,你确实是在用 pyVideoTrans 翻译视频,但这个报错不是软件不能翻译,而是 faster-whisper 语音识别环节遇到了 non-negative timestamp expected 错误:音频切片或时间轴出现负值,导致识别中断。请按以下顺序排查:

  1. 更新到最新完整版:你当前是 v4.08,但版本号若仍是 v4.08 且报错依旧,建议直接下载约 2.7GB 完整包全量解压,再覆盖补丁,避免只覆盖补丁不完整。
  2. 临时关闭“识别说话人”:在“设置更多参数”里取消勾选“识别说话人”,排除说话人分离对时间轴的干扰。
  3. 调整 VAD 参数:进入 菜单 → 工具 → 高级选项 → 语音识别参数,把“最长语音持续(秒)”调小到 10,把“静音分割持续毫秒”调大到 500 或 1000。
  4. 清理临时缓存:关闭软件,删除软件根目录下 tmp/ 文件夹里的所有内容,再重启重试。
  5. 重新封装视频:用 ffmpeg 命令 ffmpeg -i 6.mp4 -c copy 6_new.mp4 重新封装一次,再用新文件翻译,排除原视频时间戳异常。

如果以上步骤都试过仍失败,请提供 logs/ 目录下最新的日志内容(复制底部约30行)以及软件左上角的完整版本号,以便进一步判断。

第五条怎么操作啊

Windows 下操作步骤如下:

第1步:打开命令提示符

  1. 在电脑键盘上按 Win + R,弹出运行窗口
  2. 输入 cmd,按回车,打开黑色命令行窗口

第2步:进入视频所在目录

在命令行窗口中输入以下命令并按回车(注意把命令中的路径改成你视频实际所在路径):

cd /d C:/Users/Administrator/Desktop/翻译片段
  • 如果路径中有空格,就保持原样写在英文双引号内,例如 cd /d "C:/Users/Administrator/Desktop/翻译片段"

第3步:执行重新封装命令

在命令行中输入以下命令并按回车:

ffmpeg -i 6.mp4 -c copy 6_new.mp4
  • 如果提示 ffmpeg 不是内部或外部命令,说明 ffmpeg 不在系统环境变量中。请改用软件自带的 ffmpeg 完整路径,例如:

    D:/win-pyvideotrans-v4.08/ffmpeg/ffmpeg.exe -i 6.mp4 -c copy 6_new.mp4
  • 如果软件目录与上述路径不同,请改成你的实际安装路径

第4步:等待完成

命令执行完后,你会在同一个文件夹下看到新生成了 6_new.mp4 文件。这就是重新封装后的视频,回到软件中选择这个新文件进行翻译即可。

注意:这个操作只是把视频重新封装一遍,不会改变内容和画质。如果执行过程中没有报错,说明原文件本身能被正常读取;如果原视频时间戳有问题,生成的 6_new.mp4 即使报错也能修复部分异常(如果这个命令就报错了,请把报错信息发给我)。

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