搭建 dlna 服务器主要作为 samba 的补充,简单方便。windows 7 已经自带流媒体共享,设置也很简单,可以自行上网搜索。
在linux搭建的目地主要是作为家庭媒体共享服务器,手机和智能电视访问比较方便。
我之所以没有用 CentOS 而用了 fedora 系统,主要是因为在笔记本上仅添加 rpmfusion 这个repo就够了,安装驱动什么的比较方便,全部使用 dnf 安装不需要自己编译,其他发行版也是大同小异。
如果没有安装的得先装上 rpmfusion-free-release rpmfusion-nofree-release 这两个包,再刷新 dnf 缓存就行。
在国内的话按下面操作就行,要修改成对应的操作系统版本,我这里用的是 fedora 22。
[root@fedora ~]# wget http://mirrors.aliyun.com/rpmfusion/free/fedora/rpmfusion-free-release-22.noarch.rpm [root@fedora ~]# wget http://mirrors.aliyun.com/rpmfusion/nonfree/fedora/rpmfusion-nonfree-release-22.noarch.rpm [root@fedora ~]# rpm -ivh rpmfusion-free-release-22.noarch.rpm rpmfusion-nonfree-release-22.noarch.rpm [root@fedora ~]# dnf update
所有的 repo 文件放在 /etc/yum.repos.d/ 下面,如果嫌速度不够快可以自行配置使用国内的镜像站点,怎么修改可以上网查查,更新后先重启。
首先先搜索一下有关 dlna 的软件。
[root@fedora ~]# dnf search dlna 上次元数据过期检查在 2:58:13 前执行于 Mon Dec 21 13:13:02 2015。 =========================N/S 匹配:dlna ========================================== gupnp-dlna-docs.noarch : Development package for gupnp-dlna gupnp-dlna-devel.i686 : Development package for gupnp-dlna gupnp-dlna-devel.x86_64 : Development package for gupnp-dlna minidlna.x86_64 : Lightweight DLNA/UPnP-AV server targeted at embedded systems gupnp-dlna.i686 : A collection of helpers for building UPnP AV applications gupnp-dlna.x86_64 : A collection of helpers for building UPnP AV applications rygel.i686 : A collection of UPnP/DLNA services rygel.x86_64 : A collection of UPnP/DLNA services
安装 minidlna 软件
[root@fedora ~]# dnf install minidlna.x86_64
查看软件包文件列表
[root@fedora ~]# rpm -ql minidlna.x86_64 /etc/minidlna.conf /run/minidlna /usr/lib/systemd/system/minidlna.service /usr/lib/tmpfiles.d/minidlna.conf /usr/sbin/minidlnad …………省略………… /usr/share/man/man5/minidlna.conf.5.gz /usr/share/man/man8/minidlnad.8.gz /var/cache/minidlna /var/log/minidlna
软件文件很简单的。
可以自己看看 minidlnad 的 man 手册
[root@fedora ~]# man minidlnad
运行 minidlnad -h 也差不多
[root@fedora ~]# minidlnad -h
也可以再看看 minidlna.conf 手册。
[root@fedora ~]# man minidlna.conf
接着看看 minidlnad 的 service 文件
[root@fedora ~]# cat /usr/lib/systemd/system/minidlna.service [Unit] Description=MiniDLNA is a DLNA/UPnP-AV server software After=syslog.target local-fs.target network.target [Service] User=minidlna Group=minidlna Type=simple ExecStart=/usr/sbin/minidlnad -S [Install] WantedBy=multi-user.target
看来最主要的就是执行 /usr/sbin/minidlnad -S 这个命令。之前运行 minidlnad -h 有说明,“-S”代表以systemd的方式运行服务。
看来是一个比较简单的服务。
配置文件路径一般在 /etc/minidlna.conf,使用常用的编辑器修改就行。
我们可以基本了解所有的设置都可以在 minidlna.conf 配置文件中修改,重点就主要看看 minidlna.conf 的配置选项。
接下来修改配置文件 minidlna.conf。
[root@fedora ~]# vi /etc/minidlna.conf # 自定义网页访问的端口,用于状态信息等。默认端口号为8200,那么访问 http://127.0.0.1:8200,就可以看到相关的状态信息(其实是一个很简单的网页)。 port=8200 # 指定服务网络接口,默认所有接口。多个接口用“逗号”分开,例如 network_interface=eth0,enp3s0。 #network_interface=eth0 # 指定使用哪个系统用户来运行服务。用户名或 UID 都可以。systemd 方式不需要修改这个,在 /usr/lib/systemd/system/minidlna.service 已经指定了。 #user=jmaggard # 设置共享目录。多个目录需要多次指定。 # 可以通过下面的方式限定目录存放的媒体类型 # + "A" 代表音乐 (例如:media_dir=A,/home/jmaggard/Music) # + "V" 代表视频 (例如:media_dir=V,/home/jmaggard/Videos) # + "P" 代表照片 (例如:media_dir=P,/home/jmaggard/Pictures) # + "PV" 代表照片和视频 (例如:media_dir=PV,/home/jmaggard/digital_camera) # media_dir=/opt 代表 /opt 目录下有多种类型的文件。 # 是否将上面多个 media_dir= 合并到一个根目录下。默认为 merge_media_dirs=no 不合并,如果 media_dir= 比较多比较乱可以选择合并。 #merge_media_dirs=no # 自定义客户端显示的主机名称,可以理解为你自己的网络邻居的名称,不设置的话会使用当前的主机名。 #friendly_name=My DLNA Server # 指定存放专辑封面等缓存数据的路径,一般不需要修改。确保对这个目录有写权限就行。 #db_dir=/var/cache/minidlna # 指定日至存放目录,一般不需要修改。确保对这个目录有写权限就行。 #log_dir=/var/log/minidlna # 指定日志记录等级,每个 section 可以使用不同的等级:off, fatal, error, warn, info, debug。看着不太重要,具体没仔细研究。 #log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn # 使用斜杠 "/" 分隔的可能存在的专辑封面的文件名。如果发现有其他的文件就再再加上去。默认已提供了下面的设置。 album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg # 是否使用 inotify 通知来自动发现新的文件。默认 inotify=yes。 # 一般 linux 发行版设定 inotify 为 8196,启动服务后会报错,实际并不影响使用,本文最后附有解决方法。 inotify=yes # 好象是数字录像机支持,没用到过。默认 enable_tivo=no。 # set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO enable_tivo=no # 是否严格遵守 DLNA 标准,默认 strict_dlna=no。 # 这会允许服务器自动缩放非常大的图片,会影响图片保存的质量(至少)在 Sony DLNA 产品中会有这类情况。 # 对硬盘上的图片文件是否影响有待测试。还是建议为 strict_dlna=no。 strict_dlna=no # default presentation url is http address on port 80 #presentation_url=http://www.mylan/index.php # 通知时间间隔,默认895秒。 #notify_interval=900 # serial and model number the daemon will report to clients # in its XML description serial=12345678 model_number=1 # 指定 MiniSSDPd socket 的路径,好像没用到过。 #minissdpdsocket=/var/run/minissdpd.sock # use different container as root of the tree # possible values: # + "." - use standard container (this is the default) # + "B" - "Browse Directory" # + "M" - "Music" # + "V" - "Video" # + "P" - "Pictures" # + Or, you can specify the ObjectID of your desired root container (eg. 1$F for Music/Playlists) # if you specify "B" and client device is audio-only then "Music/Folders" will be used as root #root_container=. # 按照指定的排序条件进行,忽略客户端的要求。 #force_sort_criteria=+upnp:class,+upnp:originalTrackNumber,+dc:title # 允许最大同时连接数,注意:一个客户端会打开多个连接。 #max_connections=50
设置开机自动启动
[root@fedora ~]# systemctl enable minidlnad.service
启动服务
[root@fedora ~]# systemctl start minidlnad.service
重启服务
[root@fedora ~]# systemctl restart minidlnad.service
禁用开机自动启动
[root@fedora ~]# systemctl disenable minidlnad.service
如果遇到这个警告:
WARNING: Inotify max_user_watches [8192] is low or close to the number of used watches [4] and I do not have permission to increase this limit. Please do so manually by writing a higher value into /proc/sys/fs/inotify/max_user_watches.
下面这些都能搞定。
[root@fedora ~]# echo 65538 > /proc/sys/fs/inotify/max_user_watches [root@fedora ~]# sysctl fs.inotify.max_user_watches=66538
永久生效需新建编辑 /etc/sysctl.d/90-inotify.conf
[root@fedora ~]# vi /etc/sysctl.d/90-inotify.conf fs.inotify.max_user_watches = 66538
如果遇到这个警告:
upnphttp.c:1054: warn: HTTP Connection closed unexpectedly
请检查电源管理软件设置包括但不限于 powertop、tuned等,一般是处于省电考虑把网卡给关掉了。
minidlna 适合服务器安装,依赖很少,只要改改配置文件就成。
其他类似的软件:
rygel 适合图形界面用户,有专门的图形界面配置,也很简单。
mediatomb 带有网页接口配置,适合服务器安装。
找着找着发现有个 kodi 的软件,搜索一下之后顿时眼前一亮,等有时间再玩玩了。