注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

widebright的个人空间

// 编程和生活

 
 
 

日志

 
 

Directshow写的语音聊天程序  

2008-10-06 22:20:20|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Directshow写的语音聊天程序 - widebright - widebright的个人空间

前些天都在学习这个directshow,用来做个语音聊天程序。主要参考directshow到几个例子。

1) 用jrtplib开源库来发送语音数据

2)捕获声音流程大概是 Audio Capture filter -> ACM Mp3 encoder -> Dump filter -> jrtplib

其中Dump filter 由directshow sdk自带 到dump例子修改而来,就是在Recevice函数中收到数据就改为用jrtplib发送出去就行了。   ACM Mp3 encoder 是系统自带的mp3 编码器,但好像我只能用来编码22hz到输出音频。压缩率还是很高的,20毫秒的数据压缩后应该在200个byte左右。

3)播放流程的话,参考directshow sdk中的memfile和ball写了两个push和pull两种模式的filter。 根据ball修改得来的push延时效果还是不错的,在本机测试基本上是同步了。push source filter 从jrtplib接受到数据后是传给mp3解码器的。然后 mp3解码器 出来,我使用了一个 dsp filter进行音效处理,音量放大和过滤高频声音等。dc-dsp是个开源的directshow filter来的,其实kmplayer应该也是使用这个来做音效处理的滤镜。在kmplayer里面的内置音效效果使用的就是这个dsp插件。他的主页是http://www.dsp-worx.de/

不过叫朋友帮忙在其他电脑测试,好像都不行,现在还不知什么原因。奇怪了我在自己和公司电脑测试都是可以的。

以后有时间再发些源代码吧。

  评论这张
 
阅读(949)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017