alei 发表于 2007-12-8 20:23:22

Foobar2000专贴——插件,技巧,文件管理,转换★★你问我答

本帖最后由 lemon317 于 2010-4-12 09:25 编辑

看到坛子上很多朋友对Foobar感兴趣,但是好像上手有点点困难,所以特设此帖,如果有什么关于Foobar的疑问,中英文版都可,可以到这里跟贴说明,我会尽快回复给大家的。

Foobar能干什么

其实说到Foobar,大家都是冲着音质来的,虽然我很喜欢FB,但是平心而言,就MP3的播放来说,Foobar和TTplayer的音质是一样的,注意是音质哦,不是音色(要想在音色上有提高,可是使用回旋混响器,但是破坏音质那是一定的了,自己考虑使用不使用了)。因为它们用的都是相同的MP3解码器。

多种格式的支持,foobar默认会支持MP1, MP2, MP3, MP4, MPC, AAC, Ogg Vorbis, FLAC / Ogg FLAC, WavPack, WAV, AIFF, AU, SND, CDDA, WMA,加上插件后可以支持APE,AC3,ALAC,DTS,MIDI,OFR,OFS,SHN,TTA,我相信这已经足够满足一般的用户了,其实大多格式我都没有见过呢。

音质

音质我不想多说了,很多人的心理作用很明显,居然有人能听说来无损APE和WAV的区别,可见心理暗示有多么的强大。自己听吧,不会后悔的。

极低的资源占用率

Foobar在不开任何DSP的时候播放MP3基本上CPU的占用率是0%,4M左右的内存,APE能高一些。

强大的文件管理

我的机器里只有1300多首歌,当然体现不到Foobar的优越了。我的同学有15000左右,相信这个数字足够说明问题了吧。你可以选择硬盘上的一个范围作为媒体库,Foobar初始化的时候会建立索引文件,查找和管理歌曲的时候,既快速又方便。歌曲太多了从自己的电脑上往P3里拷歌是很头疼的事情,但是有了Foobar,这一切是多么的简单。

标签

还需要什么批量标签之类的东东吗,Foobar的批量标签可谓强大,基本上你要是有点程序基础,任何的标签规则你都可以自己建立,Foobar提供了强大的变量库和函数库,真的是方便到不行了。

转换

最新版本的Foobar重新改写了转换器,对于常用的MP3,Flac,Ogg等提供了傻瓜式的操作方式,你不用再去使用所谓的命令行编码器,不用写代码,只需要拖动到一个合适的品质,点击转换,这一切就都完成了。当然Foobar也保留了命令行,对于任何的一种转换器来说,你可以在里面自由的写入参数,有点动手能力的话,基本上没有什么格式是Foobar不能转换的。

全局热键

这个功能是我最喜欢的了,玩游戏的时候听音乐,想要操作Foobar有不想切到桌面,Ok,用全局热键吧,Foobar提供和很多的可选热键方式,并且可以自己定义激活方式,可以满足所有的要求。

各种DSP音效插件

这个我用的不是很多,自己用的比较多的是回旋混响器和Crossfade(交叉反馈?不知道翻译的对不)均衡器和高级限幅器。其实很多时候我都不加任何的效果器的,原汁原味才最好嘛~。。。还有很多是收费的DSP,好像杜比的都是收费的。。没用过,不知道效果怎么样。

鉴别音乐品质

最新版本Foobar自带的简单频谱就可以输出音乐文件的光谱,不用再开Adobe Audition了,多么方便的事情。

界面完全的自定制

Foobar提供了一定的界面自定制的功能,但是如果加上插件的话,Foobar可以变到任何你想想的界面去。当然资源占用就能高一些。

实在写不动了,手指都酸掉了。。

一句话,加了插件的Foobar是无所不能的。先写这么多吧,很累哦。。。

有问题的话就跟贴说明,最新版本的Foobar是V0.9.5beta6 下载的话请到
http://www.foobar2000.org/beta/index.html

官方正式版最新的是v0.9.4.5 下载的话在这里
http://www.foobar2000.org




08-04-22

界面定制---播放列表
先介绍Foobar的几个常用变量,这里介绍的都是些标签中很常用的

作者                %artist%
专辑                %album%
曲名                %title%
歌曲编号        %tracknumber%
比特率                %bitrate%
日期                %date%
长度                %length%

具体其它的变量可以参考Title Formatting的帮助文件

先介绍一下Script的基本语法,既然是Script那也就是解释型的了,也构不成大的代码段,所以还是比较轻松的。加了%%的表示变量,不加的表示字符常量。这里的变量是不可以自己定义的,Foobar已经给了很多可用的变量,足够了,我们要做的,就是灵活的运用组织他们。举个例子吧


比如我要做成下面的界面



我们可以在播放列表的上方点击右键选择Columns,FB已经预先提供了很多可以选的变量,对与一般的用户来说,直接选择组合就可以了,然后你要做的就是调整他们所占的宽度让排版看起来比较好看。关于这个我想多说一点,因为是预置的,所以灵活性必然降低很多,比如在条目中我选择artist上面的名字就只能显示artist,如果自己手工编写,上面就可以自己定义了,不过这也仅仅对排版有利一点,能满足一部分人的DIY心情,别的意义不大~

不过,对于上面并没有提供的项目,我们倒是可以自己写,比如像一些CD专辑,里面会有CD的号码,我们在上面的项目上单击右键->columns->more弹出如下的画面,也可以通过perferences->display-defualt user interface->playlist view 进入





在custom columns上点击add new
name就是你想要在项目里显示的名字,pattern里便是你要写的代码,alignment是对齐方式,有left center right三个选项供使用,顾名思义了。比如上面我们说的CD编号,我们就可以这样建立

name                   DiskNum
pattern                %discnumber%
alignment            center



这样,一项新的“DiskNum”就在playlist的columns上显示出来了,可以随时使用。需要说明的是pattern中可以写任意多的变量、常量,定制方法完全看个人意愿,比如我就想把artist和album放在一起,那可以按照下面的方法写

name                   A/A
pattern                %artist% | %album%
alignment            left

这就是一项新项目建立的过程,基本方法是这样,具体需要什么样的变量,Title Formatting里有很详细的描述,大家可以自己看看。


进阶技巧

函数的使用

函数的引入,无疑是FB更加的强大,虽然内置的函数有限,但还是那句话,已经足够满足日常需要,这里举一个浅显的例子,目的还是为了介绍怎么用,方法是核心,而不是具体的代码。

有这么一种情况,有可能你需要显示的项目是不存在的,比如很多歌曲就没有tracknumber这一项,默认的状态FB会显示一个"?",这样是没什么不好,可是影响了整体的排版,那么我们是否能让他在有曲目编号的时候显示编号,没有的时候显示一个特定的符号,假定这里我选择符号"◆"呢?

对于强大的FB,是可以的,我们需要用到$if()函数,在FB中,所有的函数都是以$开头的,我们可以写入如下的代码段

$if(%tracknumber%,%tracknumber%,◆)

解释一下上面的代码,$if(x,y,z),如果x为真%tracknumber%的值用y表示,否则用z表示

在上面的例子中,如果不存在%tracknumber%,那么%tracknumber%的值就是0,否则%trackmuber%的值就是"◆"

这样,就得到了统一的格式,很方便,这些代码同样适用于其它的比如album list、facts里面,方法相同,唯一比较遗憾的是对于$if()函数,没有办法支持嵌套,这样在进行分类的时候就很被动,这个不太好~

比如在album list中按照artist|album的方法分类,代码如下

$if(%artist%,[%album artist% - ]['['%date%']' ]%album%|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%,'['Other']'|%filename%)



有兴趣的朋友可以试着修改一下,一定能找到属于自己的分类方法的。

比较常用的函数还有

$abbr(x)                缩写

$num(X,Y)             格式化数字,主要是前导符"0"

$caps(x)                首字母大写

$len(x)                   x所占长度(X可以是任意的常量)

$ext(x)                   扩展名

FB提供的函数还是比较多的,详细情况可以参考Title Formatting中的Functions

关于播放列表的基本部分到这里都差不多了,基本方法很简单,变化却是多样的,自己动手试试看吧~!


03-06-09
补充一下,新版本的Foobar已经很好的支持$if()函数的嵌套,这样,我们就能一次实现更加复杂的操作,参看下面的图。




02/01/2010 Mon

今天在这里详细讲解一下命令行编码器

首先介绍一个概念——命令行编码器

所谓命令行编码器也是一个程序,后缀为exe。但是和一般的exe不同,命令行编码器没有GUI界面,也就是我们通常讲的图形用户接口,所以我们没有办法使用鼠标来操作这个exe文件,只能在CMD中用命令来操作。这其实也是不容易的,尤其是那些对Dos没有概念的同学来说。这个东西不直观,抽象,并且难于记忆,好多的缺点,不是吗?可是他存在也是有合理的一面的,他很灵活,善于处理复杂的操作。扯远了,我们今天并不打算详细解释Dos命令,有兴趣的同学可以自己学习这部分内容,我们只注重实践,在FB中。

开始的时候我用Neroaacenc.exe 作为例子,后来想想,可能没有这么多人像我一样拥有众多的aac文件,所以下面的例子,皆选取常用的mp3编码器——lame.exe 作为例子。

命令行编码器最重要的就是命令,只有知道了命令就可以方便的运用它,所以第一步我们要学习如何获取命令行编码器支持的命令。

首先将你的lame.exe 复制到一个路径相对简单的地方,比如我这里是e:\(当然了,这里的路径无所谓的,如果你善于运用regular express的话那更是方便了,我完全是为了方便)

在运行(WIN+R)中输入cmd <ENTER>

如果你已在目标目录(e:\)下,那么只需键入 lame --help即可获得帮助文件,如果你不在目标盘符下,那么键入"e:\lame.exe" --help(注意这里的引号是必须的)可以得到同样的效果,如下。



键入上述命令后,可以得到如上的信息(这里感谢一下 vim 这个编辑器,什么,你只听说过 UltraEdit。UE 是不错,不过相对 vim 来说,他只是小学生。)

我已经人工的给上面标上了行号,这样便于讲解,实际是没有的。

06 OPTIONS:
07    -b bitrate      set the bitrate, default 128 kbps//指定比特率,默认128 bbps。
08    -h              higher quality, but a little slower.  Recommended.//高质量,会降低速度,推荐使用。
09    -f              fast mode (lower quality)//快速模式,低质量。
10    -V n            quality setting for VBR.  default n=4//VBR(可变比特率)设置,默认为4。
                    0=high quality,bigger files. 9=smaller files//0为最好质量,文件较大。9较小。
11    --preset type   type must be "medium", "standard", "extreme", "insane",
                    or a value for an average desired bitrate and depending
                    on the value specified, appropriate quality settings will
                    be used.
                    "--preset help" gives more info on these//类型必须为"medium", "standard", "extreme", "insane"或是依赖所给定值的平均比特率值,才能使用正确的质量设置。(如果你没办法理解这句话,let it be)

12    --priority type  sets the process priority//优先级设置,0,1低优先级,2中等,3,4高优先级。
                     0,1 = Low priority
                     2   = normal priority
                     3,4 = High priority

13    --longhelp      full list of options//所有设置的列表。

14    --license       print License information//相关的许可信息。

到这里,简单的lame命令就已经解释完毕,其实lame的命令远不止这么几条,详细情况请查看--longhelp。

如果我们要将文件 e:\test.wav 转换为 e:\test.mp3 的话,就可以写下述命令:

lame -V 2 test.wav test.mp3 如果当前目录current dir 是 lame 所存在的,这条命令没问题,否则使用下面的命令:

"e:\lame.exe" -V 2 e:\test.wav e:\test.mp3

请注意,这里的参数V是大小写敏感的。

这样你在命令行中会得到如下的画面:



等到画面结束后,就可以得到转换的结果了。这里我用了参数-V,即可变比特率质量设置。2表示质量等级,0最高,9最小。其它的情况类似。

如果需要固定码率的,比如320Kbps,可以这样写:

lame -b 320 test.wav test.mp3

如果工作目录不再e:\下,那么写入如下命令:

"e:\lame.exe" -b 320 e:\test.wav e:\test.mp3

到目前位置,我们用到的命令行还和FB没有一点儿关系,下面,我们来介绍如何在FB中调用命令行编码器,这里同样使用 lame.exe 为例。

打开FB,依次进入File>;Preferences>Tools>Converter
选中MP3<LAME>然后单击 Add New 于是出现了如下的画面:



(God damn. where's the field to input command?)你一定会抓狂,辛辛苦苦学了这么久命令行,却没有发现可以写命令行的地方。取而代之的是,一个你可以通过拖动选择文件质量的条,尽管这也是很方便的。It's good enough but not best! 虽然这么做方便很多,但是却失去了灵活性与可控性。

好吧,FB 这么做一定程度上降低了使用的门槛,可同样造成一个严重的问题——我需要固定编码320Kbps的mp3文件,怎么办?

FB 当然会给你这样的机会,在Encoder选项框中选择Custom,你将得到如下画面:



先赞一个所有参数都可以调整了,看一下参数说明,%s表示输出文件名,还记得"-"符号吗,lame的说明中"-"表示标准的输入文件名与输出文件名,输入文件名我们通常想使用原始文件名,而输出,我们则希望拥有自己的规则,比如01. artistname-test.mp3(音轨编号. 演唱者-音轨名.mp3)。当然这个输出设置是在FB的一个子菜单中完成,通过字符串d%传递的。这样,我们就可以在Parameter一项中填入如下内容:

-b 320 - %d

是的,你没有看错,要把目标文件转换成恒定码率320Kbps的mp3文件,就是这么简单的参数!这里需要注意一个问题,在cmd中使用lame.exe,源文件必须是.wav 格式,但是FB中却不用!换句话说在FB中,只要源文件是可以被FB解码的,都可以通过该参数进行转换!(实际上,FB内部先将其它的音频文件转换到了wav文件,进而再转换为目标格式的。)

在FB中转换之上的V2参数如下:

-V 2 - %d

至此,FB 调用命令行编码器也就到此结束了,之上举了几个简单例子,目的是为了用该例证明操作方法的正确,而非为了通过例子传达给大家命令行的使用方法。当然如果你能举一反三那很好,如果能直接理解我说的方法那是最好不过的了。


[ 本帖最后由 alei 于 2009-3-6 19:44 编辑 ]

leeve2007 发表于 2007-12-8 22:23:09

yct13 :'( :'( 嘿..顶下..学习中...沙发

聚智 发表于 2007-12-9 19:20:42

谢谢楼主的热情分享icon8.gif

alei 发表于 2007-12-9 23:33:47

不用谢我了,我也是看到大家有很多关于FB的问题,所以在这里集中回复吧,我会把友友的问题都放到第一页来的,这样也方便大家查询,不用往后再翻了。
谢谢大家支持~

lao__wang 发表于 2007-12-11 15:50:04

问个很菜的问题,就是怎样下载和安装Foobar插件,谢谢

alei 发表于 2007-12-12 00:23:36

原帖由 lao__wang 于 2007-12-11 15:50 发表 http://www.zasv.com/images/common/back.gif问个很菜的问题,就是怎样下载和安装Foobar插件,谢谢

恩,这个很简单的,插件你可以到Foobar的官方网站或者
http://wiki.hydrogenaudio.org/in ... 2000:Components_0.9
下载,这个是FB的官方论坛中列出的0.9版的插件,下载下来的插件一般都是.dll的,直接移动到Foobar2000的安装目录下的components文件夹里,重启Foobar就可以了。

friskfire 发表于 2007-12-17 22:44:37

请教楼主,foobar v0.8.3增强中文版,怎么管理媒体库?我试着扫描硬盘,但是只扫描了部分歌曲,有大部分歌曲没能扫到,请问怎么解决?

另外歌曲管理,播放列表及软件的界面又如何设置?

alei 发表于 2007-12-18 00:04:45

原帖由 friskfire 于 2007-12-17 22:44 发表 http://www.zasv.com/images/common/back.gif请教楼主,foobar v0.8.3增强中文版,怎么管理媒体库?我试着扫描硬盘,但是只扫描了部分歌曲,有大部分歌曲没能扫到,请问怎么解决?另外歌曲管理,播放列表及软件的界面又如何设置?
恩,先说媒体库吧,0.8.3的版本的确很经典,插件很多。
关于媒体库,你把需要扫描的路径路径写在foobar的数据库上,然后重启FB就可以了,出来的时候如果没有可以在数据库面板上点右键>刷新列表树
这样应该就可以了,如果还是不行的话,再进入数据库选项,选择“清空数据库”重启FB,然后按照上面的方法再试下看,因该没有问题的。
下面我截了张图,你可以参考一下。。

alei 发表于 2007-12-18 00:33:44

至于说到如果自定义播放列表和界面的自定义,我简单的讲一下方法,原理都是相同的,你可以无限的发挥。
先讲讲播放列表的自定义
比如我现在想要让播放列表这样显示
  艺术家   专辑名  歌曲编号 歌曲名 时间
我可以在Columns UI的分栏中新建一些参数  具体是这样的
分栏显示的名字                参数
艺术家                      %artist%
专辑名                      %album%
歌曲编号                    %tracknumber%
歌曲名                      %title%
时间                        %length%
然后在主界面的播放列表上方就可以使用你刚才新建的这些参数了
如果你想使用其它的参数,请你参考FB自带的帮助文件。
帮助文件中提供了很多变量和函数。

至于界面的完全定制,这个就比较麻烦了,你可以参看Columns UI中的Tilte Formatting
这个可不是一两句话能说的清的,了解的人相信都知道。但是总的原则还是和播放列表的定制差不多,就是利用FB自带的变量和函数,组合出你想要的界面,如果你有程序设计的经验,相信很容易上手的。

最后,如果你实在是不希望把时间花费到繁琐的代码上面,可以使用V0.9.5beta版的,这个的界面自定义很容易,可以用鼠标拖动任何的模块,定制起来相当的方便。而且功能性比0.8.3要好很多,整个的架构上了一个等级,更不会出现数据库不完整的事情。记得坛子里就有汉化版的下载地址,这里我就不再多说了。

要是还有什么疑问,就在发上来吧。祝你好运~
下面附带一张我的截图,这个分栏界面完全没有写代码,但是很简洁我很喜欢
http://imgcash5.imageshack.us/img84/4713/clipboardbk1.jpg

liningyuan 发表于 2007-12-18 02:15:44

哇,原来foobar2000可以这么用啊,谢谢了
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Foobar2000专贴——插件,技巧,文件管理,转换★★你问我答