2009年5月28日星期四

AMR Plugin For Winamp & foobar2000

好吧,我快要叛变了。又写了个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

Google Drive
OneDrive

foobar - foo_input_amr_v0.4.0_20220901.zip

Google Drive
OneDrive

2022-9-1 oAMpF v0.4.0
Update with SDK v20220810
Tested with fb2k v2.0b3
Add x64 support
2017-9-18
Box的下载链接挂掉了,换成了Google Drive,也不知道能用多久…
2012-8-13 oAMpF v0.3.1
增加单声道AMR-WB支持,改了几个bug。
2010-9-24 oAMpF v0.2.1
忘记具体改了什么,好像是一点bug的说。这一版的foobar插件已经比较完善了,起码我自己用没遇到什么问题。
2010-4-15 oAMRpF v0.2
基本功能跟Winamp版一样,多了示波功能
AMR-NB IF1最后一个frame的实际长度有可能小于应当值,不知道合不合规范,懒得查了
2009-5-28 oAMRpW v0.1
支持AMR-NB IF1格式
可拖放,可显示文件时长
播放损坏的文件时可能crash
不支持Winamp示波器及相关插件

37 条评论 :

匿名 说...

我使用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

oCameLo 说...

不好意思,去年就有了v0.2.1,可我忘記放上來了…

你下新的試試看,在我的foobar v1.1.2里一切正常。只是聽不太清你錄的是什麽,AMR音質還是太次了的說。

匿名 说...

謝謝您 可以撥放了:D

錄的是福山芳樹的live演唱會,我一直很想在電腦上用foobar聽XD

oCameLo 说...

表客氣,這個東西我兩年前就開始弄,但搞不好你是除了我之外第一個用戶的說…

匿名 说...

不敢當XDD
我會把他推廣的 到時候會很多人會用他的

順道請問一下 您知道大宇dos遊戲的音樂檔 *.rix
在foobar裡 是否有插件可用呢?
因為我不想灌解碼器在系統裡..

ColdFire 说...

I was looking for a amr plugin for foobar... thanks so much.

笔戎 说...

我使用MIUI系统的录音功能,经测试,电话录音的AMR文件,可以使用你的foobar插件来播放,但直接录音也是AMR文件,却不能用你的插件来播放。
我上传了一个test.amr给你测试:
https://www.evernote.com/shard/s1/sh/bb63770c-23e4-41d8-ac03-8e3a80549343/09c9a9ff3e379f3385929f537c945707/res/d6616640-46b4-488e-8370-dbfd8d0adc1e/test.amr

这个文件是可以在evernote和手机里播放的,但你的插件播放不了。

oCameLo 说...

你这个文件是AMR-WB格式的(用写字板打开就能看到),目前的插件的确不支持。加上这个功能在代码方面问题不大,只是fb2k的sdk需要visual studio这种个头很大的东西来编译,我机器上现在又没有。我尽快吧,搞定了会去你那告诉你一声的。

笔戎 说...

谢谢你,我主要是想用foobar来把amr转换为mp3或wav,加以编辑。

不知道小米的程序员为何选用两种格式,电话录音用nb,普通录音用wb

oCameLo 说...

你如果只是想转换成wav,那potplayer就可以。

笔戎 说...

我下了个PotPlayer64_20120726,但只能播放这种amr,没有找到选项来转换为wav,请指教。

又或,你的插件什么进修可以更新?

oCameLo 说...

PotPlayer毕竟是个播放器,所以这个功能藏得有点深。右键、音频、语音录制、录制音频,设置好并选中播放开始时自动录制,然后播放AMR即可。

你只是想转成WAV的话,PotPlayer肯定可以的,你试试先吧。

笔戎 说...

原来是这样。

不过,我用的是1.5.33921
选择播放开始自动录制,似乎无效,播放AMR,不会录制,需要在录制里,点击开始,再播放,才录制。可能这个功能,就是这样用吧。

THX

oCameLo 说...

更新了,有兴趣的话试试吧。

holy834 说...

Failed to load DLL: foo_input_amr.dll
Reason: The specified procedure could not be found.
咋回事?

holy834 说...

升级了下foobar搞定了, 这个插件对我很重要, 多谢!

水水 说...

感谢成功了^^

Sabercon 说...

感谢
不发布到fb2k的官网上么?也方便获取更新(虽然觉得不可能会继续更新了...)

oCameLo 说...

这东西确实没什么可更新的了,本来说把多声道文件的支持也加上,结果找了半天也没找到个sample。

匿名 说...

不能拖动?foobar 1.2.1b1+foo_input_amr_v0.3.1_20120813

匿名 说...

https://github.com/unjello/foo_input_amr
http://angelo.scene.pl/download,foo_amr_1_1_1.exe

这个可以拖动播放

oCameLo 说...

1.2.1b1+0.3.1,我这里一切正常。你再试试吧,如果还是不行,把不能拖动的文件给我,我去查查是什么问题。

匿名 说...

感謝,終於可以讓foobar播放AMR

匿名 说...

Not working anymore

Didn't find other solution

匿名 说...

fb2k v1.3.15 with foo_input_amr v0.3.1, no problem here.

匿名 说...


楼上提到的foobar_input_amr 1.1.1,播放某些文件时间显示不正确,播放文件显示的属性也是错的。
这个插件很好在新版的foobar2000运行正常,感谢!

匿名 说...

链接不能下载了,能否分流下呢,非常感谢拉

匿名 说...

链接已更新,只是我不确定能不能用能用多久,有需要又下载不能的同学麻烦留言说一下。

之前一直是放box上的,现在好像dropbox也不能外链了,有点麻烦。

匿名 说...

补档太速度了~
非常感谢,已下载~
另外,两个链接贴反了~

Unknown 说...

Thank you so much!!!!! Everything is working!

Unknown 说...

Thank you so much!!!!! Everything is working!

匿名 说...

Hello, thank you very much for the component! Unfortunately "you don't have permission to download this file". I sent request for access the file to google account. Thanks in advance for this!

匿名 说...

If Google Drive doesn't work, try OneDrive please. Let me know if anything wrong, thanks.

匿名 说...

OK, link one drive work! Thank you very much! Greetings, DJ Graco

匿名 说...

Hello,
The first beta version of fobar2000 v2.0 will arrive in a while. It will be a 64-bit version. Even
https://www.foobar2000.org/files/SDK-2022-08-10.7z
Are you planning to rewrite your AMR plugin to 64-bit?
Unfortunately, I am not a programmer and I do not know how complicated the process will be and whether it is profitable at all. As far as I know, the new foobar will not support 32-bit components.
Best Regards
DJ Graco

匿名 说...

https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Development:SDK_2022-08-10_Release_Notes

"32-bit version of foobar2000 v2.0 remains capable of running all available components"

I think foo_input_amr will work with 32bit version fb2k v2.0.

--------

About 64bit version, I have to install the VisualStudio to build the component, and I didn't use that for years.

I will release a 64bit of my component, but it will take time.