OGG

■什么是OGGOGG是一种多媒体容器格式,它可以嵌入音频、视频、文本、元数据等文件。OGG是由Xiph基金[1]赞助开发的,它是免费、开源、没有专利限制的。OGG的音频有损压缩编码方案就是OGG Vorbis,其文件扩展名为.OGG。
■OGG Vorbis特性采用灵活编码形式,现在创建的文件,未来可以通过调节库文件的算法,来不断改善音质;(有点类似于MIDI文件)
支持编码多声道;
支持任意采样频率;
支持8、16、24、32bit音频;
支持音频流式播放;
支持分成小块样本粒度进行编辑;
拥有操作灵活、信息全面的标签栏;
……
■OGG Vorbis比得上MP3吗与MP3类似,OGGVorbis也是对音频进行有损压缩编码,但通过使用更加先进的声学模型去减少损失,因此,相同码率编码的OGGVorbis比MP3音质更好一些,文件也更小一些。另外,MP3格式是受专利保护的。发布或者销售MP3编码器、MP3解码器、MP3格式音乐作品,都需要付专利使用费。而OGGVorbis就完全没有这个问题。目前,OGG Vorbis虽然还不普及,但在音乐软件、游戏音效、便携播放器、网络浏览器上都得到广泛支持。
■如何编码成OGG Vorbis图形界面的编码器oggdropXPd.exe[2]
命令行界面的编码器oggenc2.exe[3]
OGGVorbis其实都是以VBR(可变比特率)模式进行编码,推荐使用Quality码率模式来编码。图形界面的编码器oggdropXPd.exe由于简单易懂就不多作介绍,命令行界面的编码器oggenc2.exe可以在其它程序中调用它进行编码,以下是它的使用说明:
OggEnc v2.85 (libvorbis 1.2.3)
格式:oggenc2 [参数] 输入文件.wav [...]
输入文件:
输入文件必须是8、16、24、32位的PCMWAV、AIFF、AIFF/C,或者32位的IEEE浮点WAV。当输入文件格式是FLAC、MONKEY'SAUDIO、WAVPACK、LAPC、OPTIMFROG、SHORTEN时,必须确保在oggenc2.exe同一文件夹下有相应的编解码器(或者在系统path环境变量中所指定的文件夹下有相应的编解码器)。
参数(注:区分大小写):
-r,--raw
启用Raw模式,直接读取PCM数据作为输入文件,此时输入文件名以“-”代替。
--raw-endianness n
raw输入数据的字节读取顺序,0为little(默认),1为bigendian。具体要看CPU和操作系统的支持。
-F n,--raw-format=n
raw输入数据的格式,1为标准PCM(默认),3为浮点IEEE。
-C n,--raw-chan=n
raw输入的声道数,默认为2,声道数与实际不符时将会得到不正确结果。
-R n,--raw-rate=n
raw输入的每秒采样次数,默认为44100,单位Hz。
-B n,--raw-bits=n
raw输入的每个采样使用多少bit来描述,一般默认为16bit,浮点IEEE时默认为32bit。位数与实际不符时将会得到不正确结果。
--resample n
对输入的数据进行重新采样,单位Hz。
-S n,--converter n
指定重新采样引擎,0好,1中(默认),2快。
--ignorelength
忽略wav文件头里的数据的长度值,支持从标准设备读取数据流,支持数据流大于4GB。
-b n,--bitrate n
指定编码VBR码率,n最高为500kbps,单位kbps。
-m n,--min-bitrate n
指定编码最小码率,单位kbps。
-M n,--max-bitrate n
指定编码最大码率,单位kbps。
--managed
精确控制码率,但编码将会变得很慢。
--advanced-encode-option
高级编码参数,提供给专家级用户使用,详见官方主页相关文档,或者参考使用图形用户界面编码程序oggdropXPd.exe。
-q n,--quality n
使用质量模式代替具体指定码率,n从-2.00(低质量)到10.00(高质量),默认为3.00。在编码2声道音频时,质量与码率大致对应关系如下:
-q -232kbps
-q -145kbps
-q 064kbps
-q 180kbps
-q 296kbps
-q 3112kbps
-q 4128kbps
-q 5160kbps
-q 6192kbps
-q 7224kbps
-q 8256kbps
-q 9320kbps
-q 10500kbps
-s n,--serial n
设置OGG位流序列号,取值从0-4294967295(十六进制的FF FF FF FF),默认为随机数值。在编码多个文件时位流序列号将会从n开始递增。位流序列号可用ogginfo.exe查看。
-k,--skeleton
写入OGG Skeleton信息,用来解释OGG内部各个位流之间逻辑关系。
--downmix
立体声混音成单声道。
--scale n
音量缩小n倍,n取值从0.00到1.00。
--FLAC-scale n
按FLAC标签里的增益信息来改变音量,1为使用音轨增益值,2为使用专辑增益值。同时使用参数--discard-comments会此参数无效。
-Q,--quiet
编码过程不显示相关信息。
-h,--help
显示当前这个帮助信息。
-o fn,--output=fn
指定输出文件名,只能用在编码输出一个文件时。不用此参数时输出文件名与输入名相同。启用raw模式输入时,如果不使用这个参数指定输出文件名,则输出到标准输出设备。
-n string,--names=string
用字符串命名输出文件名,其中%a、%t、%l、%d、%n分别代表artist、title、album、date、track number标签内容,空标签内容用字符串“(none)”代替,字符“%”要写成%%才能输出。
-X s,--name-remove=s
与-n参数连用,查找删除标签内容中出现的所有指定字符,s为多个单字符而非一个字符串。
-P S,--name-replace=S
与-X参数连用,将-X参数要删除的字符替换为指定字符,此参数S定义与-X参数中的s定义相同,S与s在位置上一一对应,S多于s时,多出字符没有作用,S少于s时,没有与s对应的字符照旧删除。
-p n,--padding n
输出文件预留n KB标签空间,n取值范围为0-4。
--utf8
使用UTF8字符编码格式写入artist、title、album、date、genre、comment标签内容。在Windows中,这个参数也会应用到输出文件名。
--discard-comments
FLAC与Ogg FLAC的标签信息不被复制到输出文件的标签中。
-d string,--date string
发行年代
-N string,--tracknum string
音轨编号
-t string,--title string
标题
-l string,--album string
专辑
-a string,--artist string
艺人
-G string,--genre string
风格流派
(在多个输出文件时,上面6个参数都可以使用多次,依次写入对应位置输出文件中。如果给出的-N参数较少,则余下的输出文件都没有写入字符串;如果给出的-t参数较少,将会显示一个警告信息,并且余下的输出文件都使用最后一个-t参数的字符串;如果给出的-d、-l、-a、-G参数较少,余下的输出文件都相应使用最后一个-d、-l、-a、-G参数字符串,并且没有显示警告信息。)
-c tag=string,--comment=tag=string
在标签中添加自定义标签,此参数能被多次使用。tag为自定义标签段名,string为标签段内容,string可以为空。
■OGG Vorbis播放及解码支持支持播放OGG Vorbis的软件:
[4]
[5]
[6]
[7]
支持解码OGG Vorbis的芯片:
VS1053:基于16bit DSP的解码芯片,除支持MP3,WMA,AAC解码之外还支持Ogg解码和编码。
VS1000:基于16bit DSP的解码芯片,支持Ogg解码,支持Nand flash,Nor flash,EEPROM,SD card 多种Ogg文件存储方式。
RK****系列:瑞星微电子公司的数字音视频处理芯片系列都可支持OGG格式。
■另外一个OGG格式此外,使用origin 7.5保存图形窗口(save as window)文件,文件扩展名也是.ogg。