mpd在openbsd下的使用

OpenBSD的安装、升级、更新等日常问题。

版主: chenjun天地乾坤

回复
hyaska
铜 Cu
帖子: 311
注册时间: 2010-12-10 16:11

mpd在openbsd下的使用

帖子 hyaska » 2011-06-23 22:38

最近搞了一下mpd,以前在FreeBSD、archlinux下很少放音频文件的,这2个系统已经很久没有玩过了。OB上想放几个MP3听听,所以安个mpd试试,听说这个很流行的,更新也很勤快。

1、什么是MPD?
它是一个基于C/S架构的播放音乐的后台进程,声音输出可以是本地也可以是远程,客户端可以控制播放的内容及音量。我觉得相当于个点唱机了,可以放在有音响的地方,用手机来控制播放,可以我的手机太烂了,没有WIFI不是安卓系统;不过还可以当音频服务器,通http stream来传,差不多等于网络收音机。

2、MPD的客户端
很多很多,可以在MPD的官方网站上找到,常用的是mpc、ncmpc、gmpc、sonata等等,跨平台的是gmpc,相当不错的一个软件。不过先说一下,客户端是用来控制的,本身是放不出声音的,切记。

3、MPD的配置文件
~/.mpdconf
~/.mpd/mpd.conf
/etc/mpd.conf
只要其中一个就可以了,查找的优先顺序是像上面那样从上往下的。我用OB,用的是PORTS安装,自动生成/etc/mpd.conf这个文件了,就不用折腾了直接拿来用,只改少量几个地方,比如启用http stream等等

代码: 全选

music_directory                 "/data/MP3"
playlist_directory              "/data/MP3/playlists"
db_file                         "/data/MP3/mpd.db"
log_file                        "/data/MP3/mpd.log"
pid_file                        "/data/MP3/mpd.pid"
state_file                      "/data/MP3/mpdstate"
user                            "_mpd"
bind_to_address         "any"
auto_update     "yes"
input {
        plugin "curl"
#       proxy "proxy.isp.com:8080"
#       proxy_user "user"
#       proxy_password "password"
}
# 下面这个就是http stream了
audio_output { 
        type            "httpd"
        name            "My HTTP Stream" 
        encoder         "lame"
        port            "8000"
#       bind_to_address "0.0.0.0"
##      quality         "5.0"
        bitrate         "128"
        format          "44100:16:1"
        max_clients     "0"}        
#下面这个就是本地输出
audio_output { 
        type                    "ao"
        name                    "Libao Audio Device"
        mixer_type              "software"
}
#这个不用多说是字符集了
filesystem_charset              "UTF-8"
id3v1_encoding                  "UTF-8" 
4、生成MPD运行所需的文件
根据上面的配置来生成

代码: 全选

# cd /data/MP3
# mkdir -p playlists
以上是创建目录
# touch mpd.db mpd.log mpd.pid mpdstate
以上是创建文件
# chmod 666 mpd*
以上是改权限,让mpd能读写这些文件

5、启动MPD
一般不会有什么错误提示,有问题也是上面生成的文件的权限问题,用chmod改一下就行,我这里就偷懒了

代码: 全选

# mpd -v
config: loading file /etc/mpd.conf
path: path_set_fs_charset: fs charset is: UTF-8
database: reading DB
ao: using ao driver "sndio" for "Libao Audio Device"
daemon: opening pid file 
#  daemon: daemonized!
daemon: writing pid file
6、运行客户端gmpc,本地出声音
我是在WIN7下截图的,OB上没抓,不好意思啊,反正差不多的,见图。
点播放就可以在本地听到声音了。怎么播放啊,你懂的。:p

7、如果你要在远程听到声音
仔细看第三张图,知道了吧,把第二项禁止就可以了。如果是用命令行的话是这样的

代码: 全选

# mpc outputs
Output 1 (My HTTP Stream) is enabled
Output 2 (Libao Audio Device) is enabled
这个是查看MPD配置的输出,1和2的次序是按配置文件中的先后决定的。
要禁止第二项的话,用

代码: 全选

# mpc disable 2
Output 1 (My HTTP Stream) is enabled
Output 2 (Libao Audio Device) is disabled
最后用支持http stream的播放器来放就行了,我这里的url为:

代码: 全选

http://192.168.16.1:8000
一般用浏览器也可放,但我用IE打开总是下载,用FireFOX总是放一小段,不知道问题出在哪里。用精简版的WINAMP就没什么问题。

8、最后让mpd在机器启动时就运行
编辑/etc/rc.conf.local

代码: 全选

rc_scripts="mpd"
完成,晕,第一次写这么多。
附件
QQ截图20110623222629.png
QQ截图20110623222001.png
QQ截图20110623221804.png

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

回复: mpd在openbsd下的使用

帖子 leo » 2011-06-24 0:15

不错的port, 确实值得一试。看着似乎有中文乱码的问题,影响播放吗?

hyaska
铜 Cu
帖子: 311
注册时间: 2010-12-10 16:11

回复: mpd在openbsd下的使用

帖子 hyaska » 2011-06-24 7:31

那是论坛里下的MP3,id3估计是那人自己加的,有可能是GBK编码,但我指定的是UTF-8,所以就乱码了,不影响播放的。

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

回复: mpd在openbsd下的使用

帖子 leo » 2011-06-24 10:05

原来如此,多谢了。

回复

在线用户

正浏览此版面之用户: 没有注册用户 和 1 访客