gpt4 book ai didi

java - Android 将视频录制到循环缓冲区中并将其存储在 RAM 中

转载 作者:行者123 更新时间:2023-12-01 13:47:10 29 4
gpt4 key购买 nike

我正在寻找一种简单的方法来将视频(包括音频)录制到存储在 RAM 中的循环缓冲区中。

因此我可以保留视频录制,它会将最后 2 分钟的内容保留在 RAM 中,然后可以选择将其提交到内存(如果需要)。

不幸的是,我看不到一种简单的方法来做到这一点。到目前为止,我已经研究过使用:

  • MediaRecorder - 我找不到将输出数据存储在缓冲。唯一的选项是 setOutputFile()

  • JavaCV FFmpegFrameRecorder - 同样,其构造函数需要传入一个文件。

  • android.hardware.Camera.PreviewCallback - 这给出了一个字节数组我可以添加到缓冲区的每一帧。但是,这种方法不提供任何音频数据。

我觉得一定有一种简单的方法可以做到这一点,但到目前为止我还没有太多运气。任何有关此问题的帮助将不胜感激。

最佳答案

JavaCV提供cvCreateCameraCapture()来打开相机界面。 <强> This code演示如何从相机捕获帧并将其显示在窗口上。

有趣的部分在于 while 循环:循环的每次迭代都会使用 cvQueryFrame() 从相机检索单个帧。请注意,该函数返回的数据类型是IplImage,该类型负责存储从相机抓取的图像。

您所需要做的就是将 cvQueryFrame() 返回的 IplImage 存储在循环缓冲区中。

关于java - Android 将视频录制到循环缓冲区中并将其存储在 RAM 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20277255/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com