Android MediaRecorder录制视频音量小问题解决 (音视频转码合成)
之前写得太乱,回头看看感觉自己都有点看不懂,重新写下。
在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录制视频音量小问题解决 (音视频转码合成)相关推荐
- 常青:小程序音视频能力再升级
LiveVideoStack采访了腾讯云音视频业务终端研发团队负责人常青,针对小程序音视频能力技术升级.场景支持.政策审核以及未来演进趋势进行了详细的探讨. 文 / 常青 策划 / LiveVideo ...
- 腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践
概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebRTC ...
- 微信小程序 RTMP 音视频 通话 ffmpeg_WebRTC与微信小程序音视频互通方案设计与实现...
背景 在之前的WebRTC实时音视频通话之语音通话设计与实践中介绍了58 TEG部门基于 WebRTC 的实时音视频通话解决方案. 考虑到腾讯微信的小程序平台提供了音视频通话与直播的支持,如果能打通基 ...
- 技术分享:微信小程序音视频与WebRTC互通的技术思路和实践
1.概述 本文内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebRTC互通的实现思路以及技术方案.希望能带给你启发. 分别介绍 ...
- 小程序音视频能力技术负责人解读“小程序直播”
策划 / LiveVideoStack 责编 / 包研 一夜之间,"小程序+直播"成为多媒体开发者热议的话题.从底层技术实现到接口开放程度,是否绑定腾讯云?价格体系?低延迟性能如何 ...
- Android 音视频难学?音视频(流媒体)开发学习也有套路
我们都知道音视频流媒体开发这块的知识比较纷繁复杂,对新手很不友好,自学难度大,想要们既需要比较扎实的C/C++基础,又需要有很多的工程/项目经验,今天就从音视频开发/开源框架/就业方向分析,为广大开发 ...
- 腾讯技术分享:微信小程序音视频技术背后的故事
1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...
- 小程序音视频功能的原理及应用
本文由云+社区发表 作者:常青 腾讯视频云是做什么的?腾讯视频云既不做数据库,也不做存储,也不做网络,我们只做音视频服务,也就是直播.点播.视频通话.这类面向B类客户的音视频PAAS业务. 今天主要是 ...
- 小程序音视频背后的故事
作者:rexchang(常青),腾讯视频云终端技术总监,2008 年毕业加入腾讯,一直从事客户端研发相关工作,先后参与过 PC QQ.手机QQ.QQ物联 等产品项目,目前在腾讯视频云团队负责音视频终端 ...
最新文章
- cstring只获取到第一个数_一文讲透 Dubbo 负载均衡之最小活跃数算法
- 基于边缘计算平台的分析与研究
- java enum 报错_enum报错问题,求大神帮看下
- icmp消息类型报告传输_ICMP消息的类型和ICMP消息格式
- 吴恩达深度学习4.1练习_Convolutional Neural Networks_Convolution_model_Application_2
- python接口自动化(四十四)- 公共模块configparser读取ini数据库、邮箱配置文件(单独说明)
- 网盘和云备份 区别在哪里
- ACM时间复杂度及算法的选择分析
- c语言串口通信实验报告,单片机实验报告-串口实验
- matlab新建数据字典及如何导入
- 干涉光强公式怎么计算_光强及计算
- ubuntu阿里云盘(小白羊)
- 蓝牙耳机品牌排行榜,连接稳定的四款蓝牙耳机分享
- Key was created with errors:报错
- linux系统软路由软件,使用Linux+Zebra构建软路由系统
- Ugly Windows UVA - 1419
- 后面尾缀-T、-X、-TX…分别表示的意思
- 如何做好跨境电商,先了解3个基本观念
- 中国工商银行数据中心(北京)一面--2011
- 企业生产管理集成的核心工具—MES管理系统