基本音频格式

http://baike.baidu.com/view/168526.htm


有两类主要的音频文件格式:

一般获取音频数据的方法是:采用固定的时间间隔,对音频电压采样(量化),并将结果以某种分辨率(例如:CDDA每个采样为16比特或2字节)存储。采样的时间间隔可以有不同的标准,如CDDA采用每秒44100次;DVD采用每秒48000或96000次。因此,采样率分辨率声道数目(例如立体声为2声道)是音频文件格式的关键参数。




1. 有损格式: mp3, 最受欢迎的有损编码格式之一(之后貌似有AAC格式)

2. aac 目前最好的有损格式。AAC可以在比MP3文件缩小30%的前提下提供更好的音质


mp3是1989年由德国研发的一种音频有损压缩格式。其主要原理是舍弃音频中对人类听觉不重要的数据,从而将音频文件大小进行压缩的效果。一般的速率介于128kbps~320kbps, 一般mp3文件相对于无损的CD格式的压缩率大概是1:12.

mp3文件的品质,除了跟码率(比特率)有关,还跟mp3的编码器以及编码信号本身难度有关。


2. 非压缩格式:wav

3. 无损压缩格式:ape(wav->ape) 被压缩后的APE文件容量要比WAV源文件小一半多. 庞大的WAV音频文件可以通过Monkey's Audio这个软件进行压缩为APE格式, 通过monkey's audio 解码还原之后的wav文件跟原本没有差异。


4. WMA 格式

WMA的全称是Windows Media Audio,是微软力推的一种音频格式。WMA格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18,


多声道格式

从九十年代起,影院开始将音响系统升级为环绕声系统,它可容纳2个以上的声道。环绕声系统中最流行的是微軟公司開發的Windows Media 音频(或称WMA)中的「Windows Media Audio Professional(Windows Media 音频 專業版)」和苹果公司的iTunes所采用的高级音频编码系统(或称AAC)和杜比数字系统(或称AC-3)。這三种编解码器都是受版权保护的,其编码器和解码器须支付许可证费用才能获得。最流行的多通道格式叫做5.1,意思是5个环绕声道(左前、前中、右前、左后和右后)和一个低重音声道(因为人的耳朵无法区分低频率声音传来的方向)。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要封装属于自己的音频格式,您需要了解音频格式基本知识,并使用适当的库或工具进行编码和解码。下面是一个示例,演示如何封装属于自己的音频格式。 首先,您需要确定自己的音频格式的参数,如采样率、位深度、声数等。然后,您可以使用Java中的`javax.sound.sampled`包来处理音频数据。 以下是一个简单的示例代码,用于封装属于自己的音频格式: ```java import javax.sound.sampled.*; public class CustomAudioFormat { public static void main(String[] args) { String inputFilePath = "path/to/input.wav"; String outputFilePath = "path/to/output.custom"; // 自定义音频格式的文件扩展名 try { // 获取输入音频流 AudioInputStream inputStream = AudioSystem.getAudioInputStream(new java.io.File(inputFilePath)); // 获取输入音频格式 AudioFormat inputFormat = inputStream.getFormat(); // 创建自定义音频格式 AudioFormat customFormat = new AudioFormat( AudioFormat.Encoding.PCM_SIGNED, // 编码方式 44100, // 采样率 16, // 位深度 2, // 声数 4, // frameSize = (位深度 / 8) * 声数 44100, // frameRate = 采样率 true // bigEndian = true 表示使用大端字节顺序 ); // 转换为自定义音频格式 AudioInputStream customStream = AudioSystem.getAudioInputStream(customFormat, inputStream); // 写入目标文件 AudioSystem.write(customStream, AudioFileFormat.Type.OTHER, new java.io.File(outputFilePath)); System.out.println("音频格式封装成功!"); } catch (Exception e) { System.out.println("发生异常:" + e.getMessage()); e.printStackTrace(); } } } ``` 在上述示例中,我们首先定义了输入音频文件的路径`inputFilePath`和输出音频文件的路径`outputFilePath`。然后,通过`AudioSystem.getAudioInputStream()`方法获取输入音频流,并使用`getFormat()`方法获取输入音频格式。 接下来,我们创建了一个新的音频格式`customFormat`,根据自己的需要设置自定义的音频参数。在这个示例中,我们使用了PCM_SIGNED编码方式、采样率为44100Hz、16位深度、2个声、帧大小为4字节(16位深度/8 * 2声)、帧率为44100Hz,并且使用大端字节顺序。 然后,使用`AudioSystem.getAudioInputStream()`方法将输入音频流转换为自定义音频格式,并使用`AudioSystem.write()`方法将自定义音频流写入输出文件。在这个示例中,我们将输出文件的格式设置为Type.OTHER,表示自定义的音频格式。 请注意,在实际应用中,您可能需要更复杂的音频编码和解码处理,以及更复杂的自定义格式规范。这只是一个简单的示例代码,用于演示封装自定义音频格式基本思路。 希望以上信息对您有所帮助!如果有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值