提问人:ttshaw1 提问时间:11/14/2023 更新时间:11/14/2023 访问量:24
Android - 缓冲并有选择地保存 30 秒的视频
Android - buffer and selectively save 30s of video
问:
我想要一个可以拍摄 30 秒缓冲视频的应用程序,但只有在按下快门按钮时才会将缓冲区保存到文件中。该应用程序供我在打排球时使用它;当我做一个大戏时,我想点击其中一个蓝牙快门遥控器,然后有一个我可以稍后观看的视频。
我能想到的最明显的解决方案是有一个包含视频帧的环形缓冲区和一个音频环形缓冲区。但我以前没有写过 Android 应用程序,我不想咬掉比我能咀嚼的更多的东西。理想情况下,我希望有一个我可以关注的类似应用程序的源代码,但我还没有找到任何使用视频环形缓冲区的应用程序。另外,同步音频似乎很棘手。在内存中保留 30s*60fps=1800 4K 位图会占用大量 RAM,我可以想象有一些解决方案使用视频编码来节省 RAM。
因此,我正在考虑只使用两个 30 秒的视频文件,使用 AOSP 相机教程代码交替覆盖。那是
- 启动应用程序
- 文件 1 开始写入
- 30 秒后,停止并开始写入文件 2
- 30 秒后,停止并覆盖文件 1
- 按钮 15 秒后按下:取 File 15 的 15 秒和 File 2 的最后 15 秒并将它们拼接在一起
但我担心的是,在拼接点可能会有一些明显的不连续性,这是由于应用程序没有在不到一帧的时间内完成文件 2 的写入和启动文件 1 造成的。有人对此有什么想法吗?
这里、这里和这里都提到了类似的问题,但解决方案相当古老,早于迁移到 Kotlin。所以我问是因为可能有一个更现代的解决方案。
答: 暂无答案
评论