@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 JSON解析示例代码
  2. 【Android】Android Studio 1.5+ 中混合调试Native和Java代码

随机推荐

  1. 【Android】五种不同的Toast
  2. android的listView中设置line
  3. android 设置 dialog位置
  4. Android(安卓)代码实现关机重启
  5. Android清理后台所有历史App任务
  6. Android-BLE低功耗蓝牙开发
  7. android上tcpdump 抓包
  8. Android拍照、录像、录音代码范例
  9. android 键盘显示与隐藏
  10. Android最新版本号与API级别对应关系