Android OpenGL添加水印并录制视频–抖音视频录制原理

  • 简单的视频录制,我们可以使用MediaRecorder,具体示例可以参考Gitee: Camera2VideoJava
  • 本文将介绍采集Camera的预览数据,然后通过OpenGL添加水印、贴纸、美颜滤镜等后渲染到GLSurfaceView,再用MediaCodec硬编码后通过MediaMuxer写入MP4文件。
    源码地址: Gitee: OpenGLRecorder

大致流程如下,详细可以参见相应代码连接

  1. CameraGlView 用来显示Camera预览的View
    CameraGlView extends GLSurfaceView

  2. 创建SurfaceTexture,用来显示Camera预览,参见CameraRenderer.java
    mSurfaceTexture = new SurfaceTexture(mTextures[0]);

    mCameraHelper.startPreview(mSurfaceTexture);

  3. CameraFilter.java,通过OpenGL将Camera数据写入FBO(Frame Buffer Object 帧缓存)

  4. TimeFilter.java,通过OpenGL在FBO上添加时间水印。
    可以参考此处添加贴纸、美颜等

  5. ScreenFilter.java,将FBO绘制到mSurfaceTexture

  6. MediaRecorder.java,用MediaCodec和EGL对Surface的内容采集编码为avc并写入到MP4文件

原创文章,转载请注明出处、原文链接!
me@h89.cn 我的主页https://chenjim.com

参考文章:

  • OpenGL ES SDK for Android: High Quality Text Rendering
  • Github:opengl-es-sdk-for-android/HighQualityTextJava
  • Github:android-openGL-canvas
  • Github:Media for Mobile is a set of easy to use components and API for a wide range of media scenarios such as video editing and capturing
  • VideoRecorder高性能任意尺寸视频录制 断点录制 离屏录制 录制时的Canvas API支持 实时滤镜,相关资料介绍Link
  • 抖音录制视频预习资料

Android OpenGL添加水印并录制视频--抖音视频录制原理相关推荐

  1. 抖音服务器维护中发不了视频,抖音视频发不出去怎么回事

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 以抖音为12.5.0为例,抖音视频发不出去的原因可能有: 1.是否为使用抖音软件拍摄的,如果不是,那么,可能是格式的问题. 2.如 ...

  2. 实现今日头条-西瓜视频-抖音视频自动化上传(如希望无人值守长期定时执行的话,需自行优化代码)

    业务合作请联系:13958075150 [1]首次登录使用selenium登录并将cookies存为文件,实现免密登录,并便于后期维护cookie. # 首次使用selenium登录,并将cookie ...

  3. 如何导出无水印_抖音视频怎么去水印 抖音怎么导出无水印视频

    去水印神速 去水印去水印短视频去水印小工具去水印解析去水印免费版去水印助手去水印软件去水印视频一键去水印快手去水印 随着短视频越来越火爆,玩抖音的人也越来越多.有人发就有人下载,有人下载就需要考虑水印 ...

  4. Android OpenGL ES 学习(十一) –渲染YUV视频以及视频抖音特效

    OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学 ...

  5. android抖音自动刷新,Android 使用SwipeRefreshLayout控件仿抖音做的视频下拉刷新效果...

    SwipeRefreshLayout(这个控件),我先跟大家介绍一下这个控件: 一.SwipeRefreshLayout简单介绍 •先看以下官方文档,已有了很详细的描述了. 官方文档说明 •这里我再大 ...

  6. Android 使用ViewPager2+ExoPlayer+VideoCache 实现仿抖音视频翻页播放

    1. 实现效果 效果图中,视频没有铺满 是因为使用了ExoPlayer的RESIZE_MODE_FIT模式, 虽然使用RESIZE_MODE_FILL模式可以填充整个父布局,但是本Demo中使用的视频 ...

  7. 怎么让抖音视频当做铃声android,抖音怎么提取视频里的音乐?怎么将抖音里的音乐用来做手机铃声?抖音视频提取音频的方法...

    虽然说抖音发展到现在,褒贬不一,但是架不住人家火啊,现在的人大都喜欢捧着个手机刷抖音,来打发一些碎片时光.抖音不仅带火了短视频,同样也带火了视频里面的背景音乐,许多我们平时并没有听过的歌曲在抖音上就慢 ...

  8. uniapp怎么调起摄像头拍视频_抖音视频怎么拍?我们总结了10个手机视频拍摄小技巧...

    抖音的很多功能与小咖秀类似,但不同的是,抖音用户可以通过视频拍摄的快慢.视频编辑和特效等技术让作品更具创造性,而不是简单地对嘴型. 抖音短视频的10个拍摄技巧,帮助你方便.快捷地制作出更加优质的短视频 ...

  9. python3 def download_python3下载抖音视频

    python3下载抖音视频 发布时间:2019-05-30 11:12, 浏览次数:401 , 标签: python # -*- coding:utf-8 -*- from contextlib im ...

最新文章

  1. CMake编译Makefile
  2. 地域面试:先来谈谈对MySQL索引的认识?
  3. hdu4807枚举费用流
  4. CSS学习04之层次选择器
  5. 多个项目共享一个app.config 的解决办法 (转)
  6. Oracle11g 备份和恢复的方法
  7. Windows11——Modern Standby(现代待机) S0改Suspend to RAM(待机到内存)S3睡眠解决方案
  8. aws中部署防火墙_如何在AWS中设置自动部署
  9. Flink window 用法介绍
  10. foreach循环符合就不往下走了_游泳池循环方式及循环周期
  11. #JS 窗口resize避免触发多次
  12. Python中的unittest模块(入门学习款)
  13. shell表达语句中,各种符号的释义 用法
  14. SoC设计与验证——总线篇——AXI总线
  15. 常见电平信号、RS232与RS485相关知识总结
  16. ESP32核心原理图
  17. 特斯拉为什么要降价?
  18. 微信公众号图文消息悄悄调整,注定10月12号是个不眠夜
  19. Spark应用提交后一直不运行:hadoop-yarn ACCEPTED: waiting for AM container to be allocated, launched and registe
  20. python朋友圈自动点赞_基于airtest的朋友圈自动点赞

热门文章

  1. 适合Java老手阅读的书籍推荐:
  2. Docker的“跳过更新”竟要付费;恶意软件用 Rust 重写后更难被发现;15 款输入法被指过多收集用户信息 | 架构视点...
  3. 软件测试-浪晋的小讲堂-学习笔记
  4. ES6中 export与import
  5. java geojson_GEOJSON标准格式学习
  6. 什么是窄带物联网(NB-IoT)?
  7. 3d游戏建模制作流程详解 丨漫威宇宙【万磁王】
  8. excel图表技巧:如何用填充单元格制作比率分析图
  9. python文件读写删
  10. BPRetriever:批量Sci文献检索下载工具(图形界面版)