首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

做过音频处理的友人进来一下

2013-10-13 
做过音频处理的朋友进来一下问题1: 2个假设同编码同设置的音频文件要混合成1个音频文件,是否还是需要先解

做过音频处理的朋友进来一下
问题1: 2个假设同编码同设置的音频文件要混合成1个音频文件,是否还是需要先解码成pcm后再混?或者说各有各的处理比如mp3和ogg。

问题2: 假设无论如何都需要先解码,2段pcm用什么算法混一起?

问题3: 假设无论如何都需要先解码再混合再编码,多次之后是不是音质下降严重(因为每次重新编码都应该会造成质量损失吧?)

问题4: ogg有没有相关函数可以做这事?
[解决办法]
当然总是从压缩的数据(ogg、mp3等)转成非压缩的时间-幅度数据,然后再做处理。
是否能直接处理,要看位数、采样率是否一致。如果不一致就要转化成一致的才行,比如时间上差值、幅度上缩放。
反复解压、修改、再压缩,质量会下降。如果只是对完全一样的数据,用完全一样的方法压缩、解压,质量不会下降。
[解决办法]
另外,混一起你直接取平均值就行了啊
[解决办法]

引用:
Quote: 引用:

当然总是从压缩的数据(ogg、mp3等)转成非压缩的时间-幅度数据,然后再做处理。
是否能直接处理,要看位数、采样率是否一致。如果不一致就要转化成一致的才行,比如时间上差值、幅度上缩放。
反复解压、修改、再压缩,质量会下降。如果只是对完全一样的数据,用完全一样的方法压缩、解压,质量不会下降。

谢谢。顺带问下采样率放大用什么算法?比如22050放大到44100。
引用:
另外,混一起你直接取平均值就行了啊

取平均好奇怪啊!那我先测试下吧。

采样率放大不需要复杂的算法,通常用线性插值就行。如果觉得不爽就用更高端的,二次插值什么的。
混一起当然是取平均了。混一起之前,注意区分声道。文件通常都是俩声道的。如果你要写适应性更强的代码,就要读取文件的声道数,然后按那个处理声道。
[解决办法]
其他不清楚,但这点可以肯定
“假设无论如何都需要先解码再混合再编码,多次之后是不是音质下降严重”

如果不是采用有损压缩算法,多次编解码并不会造成质量下降。
[解决办法]
推荐使用NCTAudioStudio控件处理音频。
[解决办法]
引用:
Quote: 引用:

推荐使用NCTAudioStudio控件处理音频。
看到价格退缩了。

搜破解版不难吧。
[解决办法]
有人告你侵犯版权说明你发了!
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

当然总是从压缩的数据(ogg、mp3等)转成非压缩的时间-幅度数据,然后再做处理。
是否能直接处理,要看位数、采样率是否一致。如果不一致就要转化成一致的才行,比如时间上差值、幅度上缩放。
反复解压、修改、再压缩,质量会下降。如果只是对完全一样的数据,用完全一样的方法压缩、解压,质量不会下降。

谢谢。顺带问下采样率放大用什么算法?比如22050放大到44100。
引用:
另外,混一起你直接取平均值就行了啊

取平均好奇怪啊!那我先测试下吧。

采样率放大不需要复杂的算法,通常用线性插值就行。如果觉得不爽就用更高端的,二次插值什么的。
混一起当然是取平均了。混一起之前,注意区分声道。文件通常都是俩声道的。如果你要写适应性更强的代码,就要读取文件的声道数,然后按那个处理声道。

谢谢。
刚要动手又想到一个混合的问题。。。16位采样的数据,是16位作为一个整数去计算还是作为2个signed char分别算,还是16位作为一个float去算?

当然不可能是两个signed char。
具体是16位整形还是半精度浮点,这都是可能的,取决于原本是怎么存储的。

热点排行