之前写得太乱,回头看看感觉自己都有点看不懂,重新写下。
在android上需要做一个录像留言功能,需要生成MP4或者waw格式视频。但是使用MediaRecorder录制出的MP4视频格式音量太小,几乎听不到,且MediaRecorder提供API太少,所有只能考虑其它方法。
试验后的方案是分别录制音频和视频,然后合成MP4格式视频。

1、音频录制。通过AudioRecord录制增益音量后的wav音频文件。录制wav的方法网上有很多例子,增益音量的方法在项目中的方式是使用WEBRTC中的增益模块,我在网上还找到了另一种办法,比较简单,但是效果不好。
//音量大小,此种方法放大声音会有底噪声 
                audiodata[i]= (byte) (audiodata[i] * 5);//数字决定大小
参考http://blog.csdn.net/smile3670/article/details/41310241

2、MediaRecorder 录制无声视频。网上例子也很多。
3、有了音频和视频,可以合成了。在网上找了找一些合成库,首先找到的开源java库mp4parser,他可以将AAC、h264、mp4等格式合成MP4。随后找到了isoviewer-1.0-RC-35.jar(该库包含了mp4parser),可使用它实现音视频合成。

// mp4音视频合成try {Movie countVideo = MovieCreator.build(videoMp4);AACTrackImpl aacTrack = new AACTrackImpl(new FileDataSourceImpl(audioAac));countVideo.addTrack(aacTrack);{Container out = new DefaultMp4Builder().build(countVideo);FileOutputStream fos = new FileOutputStream(new File(messageRecordFile));out.writeContainer(fos.getChannel());fos.close();}} catch (IOException e) {e.printStackTrace();}

4、由于音视频合成的音频是AAC格式,而之前录制的是wav,需要转码成AAC。最先在网上找到的是一个java实现的通过ffmpeg在Windows和linux上转码的例子,但不支持android。参考其中java调用ffmpeg的方法,并将一个支持android的ffmpeg放到/system/bin/,实现了android上的转码。ffmpeg 转码命令ffmpeg -i aec_out.wav -strict -2 -b:a 32k -y abc.aac。

相关库资源,源码参考
http://blog.csdn.net/smile3670/article/details/41279749
录制合成的java部分实现
http://download.csdn.net/detail/smile3670/8487683

Android MediaRecorder录制视频音量小问题解决 (音视频转码合成)相关推荐

  1. 常青:小程序音视频能力再升级

    LiveVideoStack采访了腾讯云音视频业务终端研发团队负责人常青,针对小程序音视频能力技术升级.场景支持.政策审核以及未来演进趋势进行了详细的探讨. 文 / 常青 策划 / LiveVideo ...

  2. 腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践

    概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebRTC ...

  3. 微信小程序 RTMP 音视频 通话 ffmpeg_WebRTC与微信小程序音视频互通方案设计与实现...

    背景 在之前的WebRTC实时音视频通话之语音通话设计与实践中介绍了58 TEG部门基于 WebRTC 的实时音视频通话解决方案. 考虑到腾讯微信的小程序平台提供了音视频通话与直播的支持,如果能打通基 ...

  4. 技术分享:微信小程序音视频与WebRTC互通的技术思路和实践

    1.概述 本文内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebRTC互通的实现思路以及技术方案.希望能带给你启发. 分别介绍 ...

  5. 小程序音视频能力技术负责人解读“小程序直播”

    策划 / LiveVideoStack 责编 / 包研 一夜之间,"小程序+直播"成为多媒体开发者热议的话题.从底层技术实现到接口开放程度,是否绑定腾讯云?价格体系?低延迟性能如何 ...

  6. Android 音视频难学?音视频(流媒体)开发学习也有套路

    我们都知道音视频流媒体开发这块的知识比较纷繁复杂,对新手很不友好,自学难度大,想要们既需要比较扎实的C/C++基础,又需要有很多的工程/项目经验,今天就从音视频开发/开源框架/就业方向分析,为广大开发 ...

  7. 腾讯技术分享:微信小程序音视频技术背后的故事

    1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...

  8. 小程序音视频功能的原理及应用

    本文由云+社区发表 作者:常青 腾讯视频云是做什么的?腾讯视频云既不做数据库,也不做存储,也不做网络,我们只做音视频服务,也就是直播.点播.视频通话.这类面向B类客户的音视频PAAS业务. 今天主要是 ...

  9. 小程序音视频背后的故事

    作者:rexchang(常青),腾讯视频云终端技术总监,2008 年毕业加入腾讯,一直从事客户端研发相关工作,先后参与过 PC QQ.手机QQ.QQ物联 等产品项目,目前在腾讯视频云团队负责音视频终端 ...

最新文章

  1. cstring只获取到第一个数_一文讲透 Dubbo 负载均衡之最小活跃数算法
  2. 基于边缘计算平台的分析与研究
  3. java enum 报错_enum报错问题,求大神帮看下
  4. icmp消息类型报告传输_ICMP消息的类型和ICMP消息格式
  5. 吴恩达深度学习4.1练习_Convolutional Neural Networks_Convolution_model_Application_2
  6. python接口自动化(四十四)- 公共模块configparser读取ini数据库、邮箱配置文件(单独说明)
  7. 网盘和云备份 区别在哪里
  8. ACM时间复杂度及算法的选择分析
  9. c语言串口通信实验报告,单片机实验报告-串口实验
  10. matlab新建数据字典及如何导入
  11. 干涉光强公式怎么计算_光强及计算
  12. ubuntu阿里云盘(小白羊)
  13. 蓝牙耳机品牌排行榜,连接稳定的四款蓝牙耳机分享
  14. Key was created with errors:报错
  15. linux系统软路由软件,使用Linux+Zebra构建软路由系统
  16. Ugly Windows UVA - 1419
  17. 后面尾缀-T、-X、-TX…分别表示的意思
  18. 如何做好跨境电商,先了解3个基本观念
  19. 中国工商银行数据中心(北京)一面--2011
  20. 企业生产管理集成的核心工具—MES管理系统

热门文章

  1. AudioKit 教程:入门
  2. .net framework 3.5 dotNetFx35setup 能不需要网络支持吗?
  3. GDPR全文翻译(一)
  4. shell命令 vxworks5.5_VxWorks Shell下常用的命令
  5. PASCAL VOC2012类型的数据集生成train.txt\val.txt等文件
  6. 关于软件功能点评估的问题(一)
  7. 月嫂证考试试题及答案
  8. textarea 中的内容自动换行
  9. 检测浏览器无痕模式下是否支持localStorage
  10. 关于python语言概述