在 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 中处理视频(裁剪、叠加等) - 怎么样?

iOS 上视频的动画叠加

在android中录制视频时如何在视频上绘图,并保存视频和绘图?

在IOS中录制带有实时时间戳水印的视频,最好使用appcelerator

在 Android 上录制视频时拍照

在 android 的视频视图中播放视频时不录制语音