多路格式不一样的PCM音频混音, 该怎么个混法

zylthinking 2007-09-10 09:49:56
rt, 似乎网上可见的都是格式相同的音频, 采样率, 声道等都是一样的, 如果这些参数不一样, 怎么做混音呢?
...全文
696 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
接分先!
xjfox 2007-12-04
  • 打赏
  • 举报
回复
做越界判断的时候的确要注意数据类型

比如8bit的相加的结果用short保存,16bit的相加结果用int保存,否则你的判断可能是无效的
starytx 2007-12-03
  • 打赏
  • 举报
回复
楼上能详细点吗?怎么做简单叠加以及防止越界?多谢了
xjfox 2007-12-03
  • 打赏
  • 举报
回复
格式一样的,做简单叠加。但要防止越界。
starytx 2007-12-03
  • 打赏
  • 举报
回复
多谢楼上指导,我使用了一个全局字符数组,然后在各个语音接收线程(和多人同时语音)进行相加,判断了越界问题,简单如下:
if(cSave[i]>32767)
{
cSave[i]=32767;
}
else if(cSave<-32767)
{
cSave[i]=-32767;
}
编译时出现警告。开始试的时候我没有管越界的情况,反正运行测试时没出现什么异常错误,保存的声音也正常,但我感觉还是应该判断一下是否越界并进行处理,后来我改成short数组并进行了越界处理,目前运行正常。请到http://topic.csdn.net/u/20071130/10/ee3ede49-05d7-43f6-9fe4-68a04b630af0.html接分!再次感谢!
xjfox 2007-12-03
  • 打赏
  • 举报
回复
直接将PCM的数据做加法,但要注意数据范围,如
8bit音量范围是0-255
16bit音量范围是-32767-32767
starytx 2007-12-01
  • 打赏
  • 举报
回复
up,我也在愁混音问题,不过我的格式是一模一样的,不知道怎么混合起来,这样就方便将多人语音通信时的对话保存在一个文件中了,借此贴请教大人了!我的帖子http://topic.csdn.net/u/20071130/10/ee3ede49-05d7-43f6-9fe4-68a04b630af0.html,分不是问题啊。谢了!
hugeice 2007-11-28
  • 打赏
  • 举报
回复
楼上正解 ^_^
xjfox 2007-11-27
  • 打赏
  • 举报
回复
你把它们先转换为格式一样的PCM数据,再进行混音不就行了。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧