android - MediaCodec 在每个视频帧上记录带有时间戳的视频

android - MediaCodec record video with timestamp on each video frame

我需要在每个视频帧上录制带有时间戳的视频。我在 cts 中看到一个示例,它使用 InputSurace.java 和 OutputSurface.java 连接解码器和编码器以转码视频文件。是否可以重用这两个androidjavaclass来实现时间戳录像机?

我尝试使用 OutputSurface 作为相机预览输出并使用 InputSurface 作为 MediaCodec 编码器输入,但听起来好像只记录 2 或 3 帧然后它永远挂在那里!

花点时间探索这个 link 以了解如何将相机预览输入视频文件。一旦您对该机制有信心,您应该能够为 MediaCodec 输入表面提供某种 OpenGL 魔法,以将额外的图形放在相机预览的顶部。我建议首先调整示例代码的 drawExtra()