python check_h264.py test.h264
连接Android设备并启用USB调试
查找文件路径
Android设备上的文件路径通常是:
/storage/emulated/0/Android/data/com.anyun.h264/files/test.h264
或者使用adb查找:
bash adb shell "find /sdcard -name test.h264 2>/dev/null"
下载文件到本地
bash adb pull /storage/emulated/0/Android/data/com.anyun.h264/files/test.h264 ./test.h264
运行检查工具
bash python check_h264.py test.h264
工具会检查以下内容:
一个可以播放的H264文件应该包含:
A: 这是之前的问题。现在的代码已经修复:
- ✅ 正确处理SPS/PPS配置
- ✅ 在关键帧时合并SPS/PPS
- ✅ 改进编码循环,确保处理所有输出
- ✅ 添加清空编码器功能
建议:
1. 重新编译并运行应用
2. 录制至少3-5秒视频
3. 停止编码后检查文件
可能原因:
1. ❌ 缺少SPS/PPS - 检查是否输出了配置数据
2. ❌ 文件格式错误 - 检查是否是Annex-B格式
3. ❌ 只有1帧 - 检查编码循环是否正常工作
解决方案:
1. 查看Logcat日志,搜索 "H264Encoder"
2. 检查是否有 "SPS/PPS included" 日志
3. 检查是否有 "Frame encoded" 日志
4. 使用此工具检查文件结构
可以使用以下播放器:
- VLC Media Player(推荐)
- ffplay (FFmpeg自带)
- MPC-HC
- PotPlayer
直接双击 .h264 文件或拖放到播放器窗口即可。
如果文件无法播放,请检查:
查看Logcat日志
bash adb logcat -s H264Encoder:D MainActivity:D
检查关键日志
验证文件结构
bash python check_h264.py test.h264
使用hexdump查看文件头
bash hexdump -C test.h264 | head -20
应该看到:00 00 00 01 或 00 00 01(Annex-B起始码)