好吧,我快要叛变了。又写了个foobar2000的AMR插件,下载链接等在文末。
KMplayer就可以放AMR,但启动太慢了。foobar2000早就有相关插件,问题是歌词外挂支持不良。惦记了很久Winamp的AMR插件一直没出现,今天终于自己写了一个。
(从*UIX系统来的不算,命令行工具不算,Winamp是我现在还常用的辈分最老的程序了,总觉得有那么点英雄迟暮的味道。)
AMR由rfc3267定义,网上最容易找到的实现是3GPP发布的3GPP TS 26.104(AMR-NB)和3GPP TS 26.204(AMR-WB)。
由于写这个插件就是为了播放手机录制的音频文件,而手机录制的音频文件全部都是AMR-NB IF1格式,所以这个插件目前只实现了AMR-NB IF1的解码功能。ETSI和IF都没有文件头,应该不是设计给独立文件用的。至于AMR-WB,以后遇到了再说吧。
AMR-NB IF1格式很简单,头部为6个字节的标识信息"#!AMR\n",余下部分为若干个frame。每个frame第一字节的前4位决定了frame的字节长度(包括首字节),如1表示13,2表示14,3表示16,有个表可以查。
AMR-NB的目标码率只有一种,8kHz、13bit、单声道。而且每frame表示的数据量也是一定的,即160次采样的数据,20ms长。
因为AMR-NB格式没有任何的索引信息,所以不扫描整个文件就无法得知文件时长,这也是KMplayer播放AMR-NB时为什么不能拖动的原因。
下载:
Winamp - in_amr_v0.1_20090902.zip
foobar - foo_input_amr_v0.2.1_20100924.zip
- 2009-5-28 oAMRpW v0.1
- 支持AMR-NB IF1格式
- 可拖放,可显示文件时长
- 播放损坏的文件时可能crash
- 不支持Winamp示波器及相关插件
- 2010-4-15 oAMRpF v0.2
- 基本功能跟Winamp版一样,多了示波功能
- AMR-NB IF1最后一个frame的实际长度有可能小于应当值,不知道合不合规范,懒得查了
- 2010-9-24 oAMpF v0.2.1
- 忘记具体改了什么,好像是一点bug的说。这一版的foobar插件已经比较完善了,起码我自己用没遇到什么问题。
我使用foobar 1.1.5
回复删除然後放入這個amr 插件
撥放我的motorola手機作出來的amr
可是不能撥放?
上頭寫著
"Unable to open item for playback (Unsupported format or corrupted file)"
我看了一下開頭 寫著#!AMR 所以照理說應該跟您說的一樣 滿奇怪的
但是kmp是可以撥放的
附上不能撥放的amr文件
回复删除http://www.megaupload.com/?d=81FVQMGJ
不好意思,去年就有了v0.2.1,可我忘記放上來了…
回复删除你下新的試試看,在我的foobar v1.1.2里一切正常。只是聽不太清你錄的是什麽,AMR音質還是太次了的說。
謝謝您 可以撥放了:D
回复删除錄的是福山芳樹的live演唱會,我一直很想在電腦上用foobar聽XD
表客氣,這個東西我兩年前就開始弄,但搞不好你是除了我之外第一個用戶的說…
回复删除不敢當XDD
回复删除我會把他推廣的 到時候會很多人會用他的
順道請問一下 您知道大宇dos遊戲的音樂檔 *.rix
在foobar裡 是否有插件可用呢?
因為我不想灌解碼器在系統裡..
I was looking for a amr plugin for foobar... thanks so much.
回复删除太感谢了!
回复删除