android - 如何使用 ColorMatrix 将反转颜色应用于 Android Camera2 API 视频?
问题描述
是否可以将反色应用于 Android Camera2 API 视频?
解决方案
不幸的是不容易。
最有效的方法是将相机数据传输到 GPU,在那里运行片段着色器以反转颜色,然后将输出传输到视频编码器。
不幸的是,这是相当多的样板:
- 创建和配置 MediaCodec 或 MediaRecorder(可能是前者,在这种情况下,如果您最终想要这样,您还需要一个 MediaMuxer 来编写视频文件)
- 创建一个 EGL 或 Vulkan 上下文,使用 MediaCodec/Recorder 中的 Surface 作为目标图像进行绘制。创建一个 SurfaceTexture 以将相机输出渲染到其中。
- 使用 GL/Vulkan 的 SurfaceTexture 设置相机。
- 编写 GL/Vulkan 代码以使用来自相机的纹理渲染一个四边形,以及一个片段着色器以反转颜色
- 需要时,启动 MediaCodec/Recorder,将帧从 Camera 发送到 SurfaceTexture,然后将文件保存到磁盘。
从好的方面来说,一旦你拥有了所有这些,做很多其他的效果就很容易了。
推荐阅读
- vim - VIM - 通过 :tabfind 以只读模式打开文件
- keycloak - 限制基于帐户的资源的 Keycloak 权限
- testing - Mocha,Electron:测试中的错误
- google-bigquery - BigQuery 中的分区如何工作?
- javascript - 触发点击 UP 或 Down 输入类型编号与其他按钮
- python - 将类与该程序相关联,以帮助更好地理解如何使用类进行编程
- ansible - 使用kubespray安装kubernetes总是失败,貌似是个bug
- java - 我不能在 java 中插入超过 10 位的整数类型的数据
- javascript - 带有@tippyjs/react 的 NextJs 工具提示
- python - 打破内存中的 ZipFile 以进行单元测试