分享一个很久以前做的G.726编码语音传输代码
来源:互联网 发布:日本买房知乎 编辑:程序博客网 时间:2024/06/06 00:09
很久之前做了个基于G.726编码的单向语音传输的东东。简单说就是一个人用Android手机说话,然后处于同一局域网的PC机能听到。
原理就是Android手机采集语音的PCM编码,然后用NDK在底层编码成G.726码流,通过组播在局域网传播,PC端接收数据,通过G.726动态连接库解码成PCM流,通过SDL库的播放出来,当然通话质量并不是很好。
这里用到了Sun公司的G.726语音编码库,C语言编写。我通过Android NDK把它编译成.so动态库供上层Java调用,用VC++6.0编译成.lib动态库。
编解码最主要就是如下两个函数:
void g726_Encode(unsigned char *speech,char *bitstream);void g726_Decode(char *bitstream,unsigned char *speech);
我在Android端采集的是8KHz采样,16位量化PCM编码的单声道数据,上述G.726编码库的压缩比是8:1,理论上编码后的数据为:8000*16/8=16Kbps=2KBps,1分钟是120KB,如果双向通话就是240KB,如果打个电话5分钟的话,就是1.2MB的流量,呃,也不少吧。
当然G.726是早期的编码啦,现在的诸如Speex的编码库可以做到可变比特率,在静音时节省流量。
我后来也完成了G.729库的编解码,压缩比是16:1,流量更小,通话质量也不错,有空再整理吧。
本文提到的源码可以在我上传的资源里下载。
PC端 http://download.csdn.net/detail/chenxupro/3930982
Android端 http://download.csdn.net/detail/chenxupro/3930978
- 分享一个很久以前做的G.726编码语音传输代码
- 很久以前做的一个外汇牌价的曲线图
- 很久以前的一个梦
- 语音传输中RFC2833传送DTMF的编码
- 分享一个语音增强的链接
- 【分享】分享一个swing做的代码生成器---还需要改进,代码未稳定。
- 语音编码标准(G.711 G.723 G.726 G.729 iLBC)
- 语音编码标准(G.711 G.723 G.726 G.729 iLBC)
- 语音编码标准(G.711 G.723 G.726 G.729 iLBC)
- 语音编码标准(G.711 G.723 G.726 G.729 iLBC)
- 语音编码标准(G.711 G.723 G.726 G.729 iLBC) .
- 语音编码标准(G.711 G.723 G.726 G.729 iLBC)
- 语音编码标准(G.711 G.723 G.726 G.729 iLBC)
- 很久以前写的五子棋的代码
- 在做一个语音系统的开发
- 很久以前开心网很火时候的群发代码
- 一个很久以前写的 Cool Buttons 脚本
- 很久很久很久以前的一个故事
- 两个init方法的区别
- Android开发环境搭建
- android内存优化
- 用一个随机函数表示出更大范围的随机函数
- openldap学习笔记
- 分享一个很久以前做的G.726编码语音传输代码
- 一个较好的C++冒泡排序
- Java多线程技术初识——5. 死锁
- 官网瀑布流实现分享thinkphp
- XML笔记
- ubuntu (LAMP)
- 又是一届校赛进行时
- SSDP
- 数据库分页查询语句