MiniDLNA is server software with the aim of being fully compliant with DLNA(Digital Living Network Alliance)/UPnP clients. The MiniDNLA daemon serves media files (music, pictures, and video) to clients on a network. Example clients include applications such as totem and xbmc, and devices such as portable media players, smartphones, and televisions.MiniDLNA is a simple, lightweight alternative to MediaTomb, but has fewer features. It does not have a web interface for administration and must be configured by editing a text file.
在Raspberry Pi上下载文件完毕后,想直接通过局域网中的电脑直接播放Raspberry Pi上的媒体文件,不用再将文件拷贝到本地播放。其实再这里Raspberry Pi就是一个文件缓存服务器,可以解决视频卡顿的问题。这个任务可以使用MiniDLNA来完成,DLNA服务器搭建完毕后,就可以直接通过VLC播放Raspberry Pi上的内容了。在手机、PAD、Mac PC、Linux PC、Windows PC、高清电视上都可以播放Raspberry Pi上的内容,不用再将文件拷贝到各个设备上。
安装
输入如下命令安装:
1 | sudo dnf install -y minidlna |
编辑minidlna配置文件/etc/minidlna.conf
:
1 | media_dir=/home/dolphin/dlna #媒体文件目录 |
启动服务:
1 | 启动服务 |
访问界面http://127.0.0.1:8200/
。DLNA 支持的媒体格式:Image JPEG PNG, GIF, TIFF,Audio LPCM AAC, AC-3, ATRAC 3plus, MP3, WMA9,AV MPEG2 MPEG-1,MPEG-4*, AVC, WMV9
VLC播放媒体
在Raspberry上安装完毕MiniDLNA后,可以直接在局域网中的PC上通过VLC媒体播放器直接播放Raspberry Pi中的媒体文件。在Window-Playlist-Local Network-Universal Plugin Play中可以找到媒体文件,如下图所示。
權限控制
有時想讓某些內容需要授權才能夠查看,比如自己的豔照什麼的。那麼就需要權限限制啦,在 Linux 上, 利用 MAC address 来过滤封包的程序叫作 ebtables.
1 | sudo apt-get install ebtables -y |
ebtables 用起来很像 iptables, 不同的地方在于他是作用在较低阶的链路层(link layer).
1 | sudo ebtables -N dlna -P DROP |
接著把设备的 MAC address 加进 dlna chain 中, 并且设定为接受封包:
1 | sudo ebtables -A dlna -s XX:XX:XX:XX:XX:XX -j ACCEPT |
这么一来就只有已登记 MAC address 的设备可以看到 server 上的媒体了。
常见问题
Media directory not accessible
启动的时候提示目录权限拒绝:
1 | Mar 02 12:36:00 localhost.localdomain minidlnad[3874]: [2017/03/02 12:36:00] minidlna.c:614: error: Media directory "/home/dolphin/dlna" not accessible [Permission Denide] |
原因是由于miniDLNA启动的时候,默认用户是minidlna。可以修改对应目录的权限为miniDLNA,也可以修改DLNA启动用户。这里采用的是后者的方式:
1 | sudo chown -R dolphin:dolphin /var/run/minidlna |
在文件/usr/lib/systemd/system/minidlna.service
中修改miniDLNA的启动用户为dolphin。
1 | [Unit] |