在 Android 上录制视频时添加叠加层
Posted
技术标签:
【中文标题】在 Android 上录制视频时添加叠加层【英文标题】:Add overlay while record video on Android 【发布时间】:2014-10-31 10:29:30 【问题描述】:我想在我的 android 设备上通过摄像头录制视频。我需要在录制的电影上添加叠加图像。在 ios 中,我会使用 GPUImage。在 Android 中,我找到了Android GPUImage。我尝试使用它,但我没有找到任何方法在视频录制时添加任何过滤器。在提供的示例中,我可以添加仅用于拍照的过滤器。有没有办法用Android GPUImage 的滤镜录制视频?有没有其他方法可以在实时录制视频上添加图像叠加?如果没有,有什么方法可以在后期处理中在录制的视频上添加图像叠加?
【问题讨论】:
如果你想在录制的视频中添加图像,有一个库调用 ffmpeg4android (androidwarzone.blogspot.com/2011/12/ffmpeg4android.html),它可以帮助你做到这一点。接下来,您可以在ffmpeg.org/ffmpeg-all.html 找到所有命令语法。希望现在还不算晚 【参考方案1】:您可以使用混合滤镜在视频上添加叠加图像。
关于视频录制:android-gpuimage 库不支持,但您可以尝试使用 android-gpuimage-videorecording 库。它是 android 的 gpu-image 的一个分支,还提供视频录制功能
android-gpuimage-videorecording
查看 GPUImageMovieWriter 类
它应该为您指明在 GPUImage 之上开发自己的视频编写器的正确方向。
这个想法是:
在当前屏幕表面上绘制 切换到编码器输入表面并在其上再次绘制上一个帧缓冲区 切换回屏幕表面其他有用的链接:EGL surface helper、Media encoder
【讨论】:
【参考方案2】:这个项目 (MagicCamera) 有许多多个输入过滤器。您可以编写自己的片段着色器以在相机纹理上叠加图像(类似于 MagicN1977Filter)。它还包括视频录制。
【讨论】:
以上是关于在 Android 上录制视频时添加叠加层的主要内容,如果未能解决你的问题,请参考以下文章
在 android 中处理视频(裁剪、叠加等) - 怎么样?
在android中录制视频时如何在视频上绘图,并保存视频和绘图?