Warning: Unable to determine the number of frames in this file

本文解决了在Matlab中使用VideoReader函数时出现的Unable to determine the number of frames in this file警告问题。通过调整视频播放软件完美解码的设置,将LAV Splitter改为系统默认设置,成功避免了该警告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前通过下面的代码读取,没有错误:

videoObj = VideoReader('..\..\dataset\smoke-detection\ForestSmoke\Smoke_Manavgat_Raw.avi');
numFrames = get(videoObj, 'NumberOfFrames');
后来在安装了一堆其他软件之后,特别是安装完美解码之后,就产生Warning: Unable to determine the number of frames in this file的警告,参考[1][2]给出了一种解决方法:

frame=read(obj,inf);
obj.NumberOfFrames
是通过读取最后一帧图像来确定的,但是当视频有点长的时候,确定这最后一帧就会特别慢。

在我运行程序之前

在我点击运行中断后:


这个LAV是一个什么东西?


我想大概就是这个LAV Splitter影响了Matlab,因此只需关闭它既可。找了好久发现在在完美解码的设置里面可以关掉:


这个分离器对AVI格式默认的是LAV,需要改回system既可。然后在运行matlab,就不会产生Warning: Unable to determine the number of frames in this file了,大笑

参考:

【1】matlab   VideoReader Warning: Unable to determine the&nb  http://blog.sina.com.cn/s/blog_6051d8810101js31.html

【2】Thread Subject: Video info for non-AVI's http://www.mathworks.com/matlabcentral/newsreader/view_thread/139245

<think>我们正在处理用户的问题:“Flutter doctor Error: Unable to determine engine version solution” 根据引用[1][2][3],用户之前遇到了“Unable to find git in your PATH”的错误,但当前问题变成了“Unable to determine engine version”。 然而,引用中并没有直接提到“Unable to determine engine version”的错误。因此,我们需要根据Flutter的常见问题来推测解决方案。 常见原因: 1. Flutter SDK损坏或不完整。 2. 网络问题导致无法下载引擎版本信息。 3. 环境变量配置问题(如git问题,但用户已经解决git问题)。 4. 缓存问题。 解决方案: 步骤1:检查网络连接,确保可以访问flutter服务器(如storage.googleapis.com)。 步骤2:运行`flutter doctor -v`获取详细日志。 步骤3:尝试清除或重置Flutter环境: - `flutter clean` - `flutter upgrade` (升级Flutter到最新版本) 步骤4:如果升级失败,可以尝试重新安装Flutter SDK。 但是,根据引用[3]中提到的git安全目录问题,我们注意到git对Flutter目录的访问权限也很重要。因此,我们也可以尝试将Flutter目录添加到git的安全目录中(尽管该问题原本是解决git不在PATH的问题,但可能权限问题也会影响引擎版本的获取)。 具体步骤: 1. 打开终端(或命令提示符)。 2. 运行以下命令,将Flutter SDK目录添加到git的安全目录(注意替换路径为你的Flutter SDK实际路径): ``` git config --global --add safe.directory <你的Flutter SDK路径> ``` 例如: ``` git config --global --add safe.directory C:/src/flutter ``` 3. 然后再次运行`flutter doctor`。 如果以上步骤不能解决,可以尝试以下步骤: 步骤5:检查Flutter SDK目录的权限,确保当前用户有读写权限。 步骤6:检查Flutter的缓存和临时文件,可以尝试删除`<Flutter SDK目录>/bin/cache`目录,然后运行`flutter doctor`重新生成缓存。 注意:删除缓存目录是安全的,因为`flutter`命令会自动重新下载必要的文件。 步骤7:如果问题仍然存在,考虑重新克隆Flutter仓库: ``` git clone https://github.com/flutter/flutter.git -b stable ``` 然后更新环境变量PATH指向新的Flutter SDK目录。 由于用户之前已经解决了git不在PATH的问题,所以现在的问题可能是由于Flutter缓存损坏或权限问题导致无法确定引擎版本。 我们按照上述步骤给出解决方案。 注意:由于用户的环境可能不同(Windows/Mac/Linux),需要适当调整路径格式。 如果用户是在Windows上,使用PowerShell,那么命令可能是: ``` git config --global --add safe.directory "C:\src\flutter" ``` 在Mac/Linux上: ``` git config --global --add safe.directory "/path/to/flutter" ``` 最后,如果用户遇到模拟器无法启动的问题(如引用[4]),但当前问题是关于引擎版本的,所以先解决引擎版本问题。 生成相关问题: 1. 如何检查Flutter SDK是否完整? 2. 如何清除Flutter的缓存? 3. 如何重新安装Flutter SDK? 4. 为什么需要将Flutter目录添加到git的安全目录? 5. 运行`flutter doctor -v`后如何分析日志?</think>### Flutter doctor 报错:Unable to determine engine version 解决方案 当执行 `flutter doctor` 出现 **"Unable to determine engine version"** 错误时,通常是由于 Flutter SDK 完整性受损或环境配置问题导致引擎版本检测失败。以下是逐步解决方案: --- ### **1. 验证 Flutter SDK 完整性** 首先检查 SDK 是否完整: ```bash flutter doctor -v ``` 观察输出中是否包含 `Bad state: Unable to find git in your PATH` 或文件缺失提示。若存在: - **重新克隆 Flutter SDK**(保留现有配置): ```bash cd <原Flutter目录> git clean -xfd git stash git pull flutter doctor ``` --- ### **2. 修复 Git 安全目录配置** Flutter 依赖 Git 获取引擎版本,需确保 SDK 目录被 Git 信任: ```bash git config --global --add safe.directory <你的Flutter SDK绝对路径> ``` 例如: ```bash git config --global --add safe.directory C:/src/flutter ``` --- ### **3. 清除缓存并强制刷新** 删除缓存文件强制重建: ```bash rm -rf <Flutter目录>/bin/cache flutter doctor -v ``` 此时 Flutter 会自动下载所需依赖。 --- ### **4. 检查网络和代理** 确保可访问 Google 服务(引擎信息从 `storage.googleapis.com` 获取): - 测试连接:`curl https://storage.googleapis.com` - 若有代理,配置环境变量: ```bash export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn ``` --- ### **5. 验证环境变量** 确保 `PATH` 包含: - Flutter 的 `bin` 目录(如 `C:\src\flutter\bin`) - Git 的 `bin` 目录(如 `C:\Program Files\Git\bin`) --- ### **6. 重装 Flutter(最后手段)** 若上述步骤无效: 1. 备份 `flutter/.pub-cache` 目录 2. 删除旧 SDK 并重新安装 3. 恢复备份到新 SDK 目录 --- ### **常见原因总结** | 原因 | 解决方案 | |---------------------|----------------------------------| | SDK 文件损坏 | 重新克隆或清除缓存 | | Git 安全目录未配置 | `git config --add safe.directory` | | 网络阻塞 | 检查代理/镜像配置 | | PATH 缺失关键路径 | 添加 Flutter/Git 到环境变量 | > 引用案例:用户通过添加 Git 安全目录解决类似问题[^3],网络问题也可能导致版本检测失败[^1][^2]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值