【问题标题】:Any way to get preview frames while recording video?录制视频时有什么方法可以获取预览帧?
【发布时间】:2013-04-23 10:14:54
【问题描述】:

我想将视频流式传输到服务器并同时在设备上录制。

如果我没有录制视频,我可以使用 Camera.onPreviewCallback 来获取作为字节数组的预览数据并将数据发送到服务器。

当我开始录制(我正在使用 MediaRecorder)时,不再调用 onPreviewCallback。

我怎样才能从相机中获取帧?

【问题讨论】:

    标签: android android-camera android-mediarecorder


    【解决方案1】:

    相机 API 目前不支持在录制视频的同时获取预览回调。

    在最新的 Android 版本上,您可以使用 SurfaceTexture 作为预览输出,并从 GPU 读回纹理以发送到您的服务器,而不是使用预览回调。

    【讨论】:

    • 谢谢。那么我如何从 GPU 读取纹理呢?我已经设置了 TextureView 而不是 SurfaceView,但我该如何着手呢?
    • 你不能直接用 TextureView 来做,因为它在内部管理自己的 OpenGL 上下文。您需要创建自己的 OpenGL 上下文,使用您选择的纹理 ID 创建 SurfaceTexture,将纹理渲染到帧缓冲区,然后使用 glReadPixels 将其读回。所以这无论如何都不是微不足道的。
    猜你喜欢
    • 1970-01-01
    • 2018-05-01
    • 2014-05-01
    • 2020-02-02
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多