有时候需要把一些文件比如图片、视频、音乐放在一个服务器上共享给所有设备,比如电脑、手机等使用。在Linux环境比如ubuntu、debian、树莓派等搭建一个DLNA服务器,把资源分享出去就可以实现这个需求了。本文写的是使用的是minidlna这个软件包配置一个DLNA服务。
安装
sudo apt install minidlna
配置
sudo vi /etc/default/minidlna
,添加配置USER="root"
sudo vi /etc/minidlna.conf
配置参数说明:
参数 | 作用 | 举例 |
---|---|---|
port | 使用的端口号 | port=8200 |
media_dir | 媒体目录,可设置多个目录首,大写的首字母代表类型A(audio音频),V(video视频),P(picture图像) | media_dir=A,/home/xxx/files/dlna/music media_dir=P,/home/xxx/files/dlna/pictures media_dir=V,/home/xxx/files/dlna/videos |
friendly_name | 在其它设备中看到的本DLNA服务设备名称 | friendly_name=dlna_server |
inotify | 如果为值yes将自动发现扫描媒体目录中的新文件 | inotify=yes |
inotify_interval | 扫描检测文件变动周期,单位为秒。该配置和inotify互斥,只能配置其中一项 | inotify_interval=60 |
minidlna常用命令
- 启动:
systemctl start minidlna
- 停止:
systemctl stop minidlna
- 查看状态:
systemctl status minidlna
或者/etc/init.d/minidlna status
- 手动更新minidlna数据库并重启服务:
sudo minidlnad -R && sudo service minidlna restart
- 强行修改配置:
sudo service minidlna force-reload
或者sudo /etc/init.d/minidlna force-reload
管理
访问:http://ip:8200
,ip就是你开启DLNA服务所在的设备ip。打开可以看到如下界面,说明服务开启成功。
可能遇到的问题
连接上了但是看不到任何文件,可能是哪个配置项错了,比如我就把media_dir写成了media,另外如果执行命令,一定要注意是否有error的信息,有要仔细看。
APP
可以使用以下App连接搭建的DLNA服务器,浏览音乐、视频、图片:
- 海贝音乐
- Allconnect
- BubbleUPnP
[转载]详细配置文件说明/命令说明
# HTTP 流量端口 (描述,SOAP,媒体传输)
port=8200
# 服务的网络接口,逗号分隔
#network_interface=eth0
# 指定以哪个用户运行(用户名或UID)
#user=jmaggard
# 设置要扫描的目录
# * 如果你有多个目录,你可以添加多行 media_dir=
# * 如果你要限制 media_dir 目录特定文件类型,
可以在目前名前添加类型标识:
# + "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
# 将媒体目录内容合并到根目录
# 注意:默认为 no
#merge_media_dirs=no
# 自定义名称
#friendly_name=My DLNA Server
# 设置 MiniDLNA 数据和专辑封面缓存目录
#db_dir=/var/cache/minidlna
# 设置 MiniDLNA 日志目录
#log_dir=/var/log
# 设置日志记录级别
# 级别有: off, fatal, error, warn, info, or 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
# 监视文件变动
# 注意:默认值是 yes
inotify=yes
# 是否支持将 .jpg 和 .mp3文件传输到支持 HMO的 TiVo上。
enable_tivo=yes
# 设置 beacon 以传统广播方式发现
# 默认 bonjour,如果 avahi 可用
tivo_discovery=bonjour
# 使用严格的 DLNA 标准
# * 这将允许服务端缩小非常大的 JPEG图像
# 这可能影响索尼 Sony DLNA 产品性能
strict_dlna=no
# 默认演示文稿地址 (默认在 80端口上)
#presentation_url=http://www.mylan/index.php
# 通知间隔
# 默认 895 秒
notify_interval=900
# 在XML描述中向客户端报告序列号和型号
serial=12345678
model_number=1
# MiniSSDPd 套接字路径
#minissdpdsocket=/var/run/minissdpd.sock
# 使用不同的目录做为根容器
# 值有:
# + "." - 标准容器(默认值)
# + "B" - "浏览目录"
# + "M" - "音乐"
# + "V" - "视频"
# + "P" - "图片"
# + 或者,你可以指定根容器的 ObjectID(如,1$F 是 Music/Playlists)
# 如果你指定为 "B" 并且客户端设备是音频,则,"Music/Folders" 将 将做为根
#root_container=.
# 无论客户端传递的 SortCriteria 如何,始终强制 SortCriteria 为此值
#force_sort_criteria=+upnp:class,+upnp:originalTrackNumber,+dc:title
# 最大同时连接数
# 注意:许多客户端在流式传输时会打开多个连接
#max_connections=50
# 允许访问媒体目录外的文件
# 如果媒体目录中包含符号链接,设置为 no 将不允许访问媒体目录以外的文件。
#wide_links=no
[root@host www]# minidlnad -h
用法:
minidlnad [-d] [-v] [-f config_file] [-p port]
[-i network_interface] [-u uid_to_run_as]
[-t notify_interval] [-P pid_filename]
[-s serial] [-m model_number]
[-w url] [-r] [-R] [-L] [-S] [-V] [-h]
注:
通知以秒为单位,默认为 895 秒。
默认 pid 文件在 /var/run/minidlna/minidlna.pid。
使用 -d 时,minidlna 将在调试模式下运行(而不是后台运行)。
-w 设置展示 URL,默认在 http 的 80 端口
-v 启用详细输出
-h 显示帮助并退出
-r 强制重新扫描
-R 强制重建
-L 不创建播放列表
-S 更改 systemd 行为
-V 打印版本号
Q.E.D.