@Author:明明不说话

@Statement:博客内容纯属个人观点,欢迎转载,转载请注明,谢谢

android 基于rtmp的语音采集和播放

前段时间研究了android使用rtmp协议进行语音采集,以及语音直播,所以,特意记录下来,不正确以及不当的地方,欢迎指正~!

1.采集发送部分

其实有很多方案可以实现该需求(服务器部分都暂时采用RED5):


a.android AudioRecord等(JAVA) + ffmpeg(Native c/c++)

ffmpeg是集成了rmtp的一套开源代码,完全是以C语言实现的,移植起来也是比较方便的,在android上也有很多ffmpeg移植成功的案例,这里可以阅读[雷神关于ffmpeg的博客](http://my.csdn.net/leixiaohua1020),里面包括很多平台对ffmpeg的介绍。(可以用来实现采集和播放)


b.android AudioRecord(Native c/++)+ librtmp(Native c/c++)

因为rtmp最终传送的是一片buffer,而android提供的多媒体类比较难获取audio的buffer,AudioRecord则提供了方便,但是RTMP是采用的Native c/c++代码,所以AudioRecord集成到Native中,通过AudioRecord获取音频数据,然后通过RTMP发送给Red5服务器。


2.接收播放部分

a.android AudioRecord(Native c/++)+ librtmp(Native c/c++)


b.android AudioRecord等(JAVA) + ffmpeg(Native c/c++)

这就是发送的逆向过程

其实这里最主要的是想介绍两个开源的播放项目VLC(完全免费)、Vitamio(学习使用免费),Vitamio其实也是从VLC中抽离集成过来的,而Vitamio在小咖秀、秒拍等应用当中也可以见到其身影。


c.[VLC播放](http://www.videolan.org/)

其实VLC播放起来比较简单,VLC已经将Native代码封装成jni java API供给android调用,传递相应的参数就可以直接播放了。


d.[Vitamio播放](https://www.vitamio.org/)

其实Vitamio和VLC基本类似,所以可以挑选其中一种来学习。


3.服务器部分 RED5

网上有很多RED5流媒体服务器搭建的,可以参考借鉴,因为我对后台也不是很了解,所以都是照网上流程操作验证~----------

述方案其实操作过程中可能涉及到很多问题,其中最主要如JNI开发,后续内容继续做介绍,不正之处,欢迎指正,共同进步,欢乐码农~!


更多相关文章

  1. Android应用程序的六个组成部分
  2. 解决 android GIF播放的问题
  3. android 中SoundPool总结
  4. Android应用程序四大组件
  5. Android应用程序的六个组成部分
  6. Android应用开发学习笔记之播放音频
  7. Android录音文件在IOS上播放不出来的问题
  8. Android知识体系总结之Android部分之通知篇
  9. Android(安卓)java与html js交互 html视频播放没有画面 画面卡顿

随机推荐

  1. Flink通过异步IO实现redis维表join
  2. 最简单的全年个税计算模板,拿走不谢
  3. 《数据持久化与鸿蒙的分布式数据管理能力
  4. 移动办公服务的未来之路
  5. 新冠肺炎:新增确诊和治愈病例走势图
  6. Capital One 的流线型微服务设计实践
  7. 阿里测试环境运维及研发效率提升之道
  8. EXCEL连通数据库,供应链进度追踪效率倍增
  9. Custom attributes for VM in vCenter
  10. 如何知道 window 的 load 事件已经触发