Unity中Vuforia ARCamera无法加载非SessionRecorder录制视频求助
解决方案:使用非Vuforia录制视频测试Vuforia
对比你提供的两段视频元数据,核心差异集中在容器格式、音频流、帧率/时间基准、颜色空间这几个维度,以下是针对性的修复步骤:
1. 移除音频流
Vuforia SessionRecorder录制的视频无音频流,而你的自制视频包含AAC音频轨道。Vuforia的视频播放初始化可能会因额外的音频轨道报错,先移除音频:
ffmpeg -i 自制视频.mp4 -an -c:v copy 无音频版.mp4
2. 统一容器格式与元数据标识
Vuforia录制视频使用mp42作为major_brand,而你的自制视频是isom,需修改容器标识:
ffmpeg -i 无音频版.mp4 -c copy -major_brand mp42 -compatible_brands mp42isom 容器修正版.mp4
3. 匹配帧率与时间基准
Vuforia视频的帧率为29.94fps,时间基准(tbn)为1000k,而你的自制视频是30fps、15360tbn,需统一这些参数:
ffmpeg -i 容器修正版.mp4 -c:v libx264 -profile:v high -pix_fmt yuv420p -r 29.94 -video_track_timescale 1000000 -g 60 最终适配版.mp4
参数说明:
-r 29.94:设置帧率为29.94fps-video_track_timescale 1000000:将时间基准调整为1000k-g 60:设置关键帧间隔为60帧(对应29.94fps下约2秒,匹配Vuforia录制视频的关键帧密度)-profile:v high -pix_fmt yuv420p:确保编码 profile 和像素格式与Vuforia视频一致
4. Unity中的配置验证
- 在Vuforia Configuration窗口中,将Playback Mode设置为
Video - 确保视频文件放置在Unity的
StreamingAssets目录下,路径配置正确 - 检查VuforiaBehaviour组件的初始化顺序,避免视频加载滞后导致引擎启动失败
额外排查点
如果仍报错,尝试提取Vuforia录制视频中的Data流(Stream #0:0)并合并到自制视频中:
ffmpeg -i Vuforia录制视频.mp4 -i 最终适配版.mp4 -map 0:0 -map 1:0 -c copy 带Data流版.mp4
注:该Data流是Vuforia录制时生成的校准元数据,部分场景下可能需要它来完成跟踪初始化。
内容的提问来源于stack exchange,提问作者Chengyuan Qian
相关产品推荐
相关产品推荐

