AudioVideoCodec

一款视频录像机,支持AudioRecord录音、MediaCodec输出AAC、MediaMuxer合成音频视频并输出mp4,支持自动对焦、屏幕亮度调节、录制视频时长监听、手势缩放调整焦距等

项目地址

  1. 音视频录制合成(github.com/MannaYang/A…)
  2. 单独音频录制播放(github.com/MannaYang/A…)

功能简介

目前包含基本的音频、视频录制与合成操作,功能如下:

  1. 基于AudioRecord录制原始PCM格式音频数据
  2. 基于MediaCodec编码输出音频为AAC格式
  3. 基于MediaCdec.createInputSurface()创建Surface,EGLContext绑定Surface并通过渲染FBO已绑定的纹理录制视频
  4. 基于FBO离屏纹理绘制水印纹理并添加至录制视频文件
  5. 基于MediaMuxer合成音频、视频数据并输出MP4视频文件
  6. 提供基于shader语言修改片元着色器color完成黑白滤镜
  7. 提供相机预览时自动调节预览焦距、屏幕亮度
  8. 提供相机预览时切换闪光灯、前后置摄像头
  9. 提供相机预览时双指缩放调节预览画面、SeekBar拖动调节

未实现:

  1. 手动点击屏幕聚焦缩放预览画面

  2. 横屏预览、录制时上下滑动屏幕左半部分调节屏幕亮度、右半部分调节音频音量

  3. 预览滤镜贴纸、美颜等其它滤镜功能

  4. 音频录制时回声消除、静音降噪

    未实现原因 : 该部分内容需要对OpenGL ES绘制原理、音频数据存储、手势滑动处理、Camera相机聚焦等需要有深入理解

采坑之旅

  1. 前后摄像头切换 目前测试的华为P8max上由后置切换为前置时,始终报setParameters failed,经过逐行代码验证,是由于设置parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO) 自动对焦导致,部分华为、三星手机前置摄像头不允许聚焦(目前自有测试机如此,如果有华为、三星手机测试可行欢迎提供型号)

  2. 自动对焦失效问题 目前项目中自动对焦采用的是 : parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);遇到的问题就是移动屏幕时对焦会屏幕闪烁, 包括Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO;因手动点击聚焦未实现,此处未深入研究适配所有机型,欢迎测试其它机型并给出有效方案!

  3. 设置Camera预览大小、图片大小导致setParameters failed 目前项目CameraManager管理类中,通过获取手机设备支持的预览大小、图片大小,取最适合当前预览的尺寸,解决上述问题;一般报setParameters failed需要检查 对Camera.Parameters设置的参数仔细检查

  4. MediaCodec.queueInputBuffer参数中的时间戳问题 之前对该处时间戳计算公式理解有误,导致录制的视频始终无法播放,一帧音频帧大小 int size = 采样率 x 位宽 x 采样时间 x 通道数,此处时间戳单位时微秒, pcm录制的原始单位是bit,双声道16bit,采用byte[]、short[]装载数据需要进行换算,1 byte = 8 bit,项目中有详细注释,欢迎查证!

公共库

目前该项目直接是以单个Activity承载预览、录制、闪光灯、切换镜头、黑白滤镜、手势缩放、SeekBar显示缩放进度等功能,library提供的是aop权限申请库

截图展示

初始预览 :

闪光灯 :

滤镜:

录制中 :

后置切换前置 :

播放水印视频 :

感谢开源

github.com/ChinaZeng/S…

我的个人星球

欢迎加入星球一起讨论项目、研究新技术,共同成长!

转载于:https://juejin.im/post/5d42d4946fb9a06ae439d46b

Android 基于MediaCodec+MediaMuxer实现音视频录制合成相关推荐

  1. Android 基于MediaCodec开发抖音短视频录制(壹)

    前言 当一个Android开发者玩抖音玩疯了之后,就会绞尽脑汁思考自己是否也能开发出一款相同的APP来呢? 滴,滴滴! 本篇文章将介绍自己总结的短视频录制的相关内容,主要分为三个部分: 摄像头内容录制 ...

  2. Android 基于MediaCodec开发抖音短视频录制(贰)

    前言 上一篇文章中,我大概介绍了一下短视频的拍摄,主要就是音视频的加减速.这篇文章我将介绍下抖音视频特效的实现,废话不多说,进入正题. 1.特效概览 抖音上目前有这九种视频特效,本文将介绍前面六种的实 ...

  3. Android OpenGL添加水印并录制视频--抖音视频录制原理

    Android OpenGL添加水印并录制视频–抖音视频录制原理 简单的视频录制,我们可以使用MediaRecorder,具体示例可以参考Gitee: Camera2VideoJava 本文将介绍采集 ...

  4. 《android多媒体api》之MediaRecorder音视频录制api

    <android多媒体api>系列是整合梳理android开发中经常用到的媒体相关api:多媒体开发主要内容有音频.视频录制播放.摄像头操作.录制操作.流媒体.直播.推流.拉流等方面:最近 ...

  5. FFmpeg Android 学习(一):Android 如何调用 FFMPEG 编辑音视频

    一.概述 在Android开发中,我们对一些音视频的处理比较无力,特别是编辑音视频这部分.而且在Android上对视频编辑方面,几乎没有任何API做支持,MediaCodec(硬编码)也没有做支持.那 ...

  6. 基于声网的音视频SDK和FreeSWITCH开发WebRTC2SIP Gateway 方案和思路

    为什么做这个? 今年初接到一个项目任务,客户要求在自己的音视频平台系统中集成webrtc功能(原系统是基于SIP协议开发的,已经稳定运行多年,有很多客户).在比对了多家RTC产品的效果后,.他们对声网 ...

  7. 视频教程-Android WebRTC 实现1V1实时音视频通信-Android

    Android WebRTC 实现1V1实时音视频通信 从2012年开始从事移动互联网方面的开发工作,曾担任去哪儿网开发工程师,搜狗高级开发工程师,拥有多年一线实战开发经验. 擅长语言:Object- ...

  8. 基于iOS的网络音视频实时传输系统(一)- 前言

    演示图 (由于GIF大小限制,图做得比较模糊和不太流畅,实际的效果是不错的,可以自己下下来实际跑一下) client端: server端: 下载 GitHub: client 端:https://gi ...

  9. QT入门第十天 QT安装和使用alsa库和jpeg库实现音视频录制

    QT入门第十天QT安装和使用alsa库和jpeg库实现音视频录制 第一章 ALSA库的移植和使用 1.ALSA简介 2.移植ALSA (1)移植步骤 3.把移植好的库下载到开发板配置 4.使用移植好的 ...

最新文章

  1. linux shell 学习
  2. python生成csv文件带水印_Python从CSV文件导入数据和生成简单图表
  3. linux-centos7 常用的基本命令--用户组管理
  4. 主题:Hibernate/Spring/Struts架构使用OpenSessionInView的问题
  5. .sln vcxproj vcxproj.filter文件作用(转载)
  6. 南京高中计算机老师,正高级教师、江苏省高中信息技术特级教师——巫雪琴
  7. 大话设计模式--解释器模式
  8. rs232转usb驱动_Trinamic发布6轴步进电机驱动模块TMCM-6214
  9. magisk 启动 安全 app
  10. Stripies POJ 1862
  11. 桶装水同城预订下单送水小程序开发制作(水站桶装水配送系统)
  12. 4个让你相见恨晚的电脑操作技巧
  13. 从江户川乱步到东野圭吾-日本推理小说的发展 (1)
  14. java 获取map keys_Java ConcurrentHashMap keys()用法及代码示例
  15. html实现鼠标跟随,html5实现鼠标跟随
  16. 华南理工大学电气考研经验贴
  17. 罗技mx5000驱动安装,实现所有功能(不用罗技原装接收器)
  18. 支付宝 自动发货 php,ecshop 支付宝自动发货接口
  19. 数理统计学(Mathematic Statistics)的基本概念
  20. monotonic queue 单调队列

热门文章

  1. [SPFA负环]虚空之遗
  2. 政府采购方式有几种?各自适用的条件是什么?
  3. JS监听页面----无鼠标键盘动作,自动跳页
  4. Ubuntu20.04改变鼠标滚轮速度
  5. lnmp 升级php后 502 bad gateway,LNMP出现502 bad gateway的解决
  6. 华为android下载地址,解决Android 华为推送库下载不了
  7. 如涵赴美上市破发 网红经济还有多少生命力?
  8. 0基础学习VR全景平台篇第33章:场景功能-嵌入标尺
  9. WSL2--Config
  10. java计算机毕业设计毕业生离校管理系统源码+mysql数据库+系统+lw文档+部署