openwrt minidlna config

MiniDLNA

MiniDLNA is a lightweight DLNA/UPnP media server. The MiniDNLA daemon serves media files (music, pictures, and video) to clients on a network.

Installation

root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install minidlna

Configuration

edit file: /etc/minidlna.confor/etc/config/minidlna.confor/tmp/minidlna.confdepend on your miniDLNA Version

#------------------------------------------------------#
# port for HTTP (descriptions, SOAP, media transfer) traffic
#------------------------------------------------------#
port=8200

#------------------------------------------------------#
# network interfaces to serve, comma delimited
#------------------------------------------------------#
network_interface=br-lan

#------------------------------------------------------#
# set this to the directory you want scanned.
# * if have multiple directories, you can have multiple media_dir= lines
# * if you want to restrict a media_dir to a specific content type, you
#   can prepend the type, followed by a comma, to the directory:
#   + "A" for audio  (eg. media_dir=A,/home/jmaggard/Music)
#   + "V" for video  (eg. media_dir=V,/home/jmaggard/Videos)
#   + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
#------------------------------------------------------#
# Directory of media is depend on your storage
#------------------------------------------------------#
media_dir=A,/mnt/sda1/music
media_dir=P,/mnt/sda1/picture
media_dir=V,/mnt/sda1/video
#------------------------------------------------------#
# set this if you want to customize the name that shows up on your clients
#------------------------------------------------------#
friendly_name=My DLNA Server

#------------------------------------------------------#
# set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
#------------------------------------------------------#
db_dir=/mnt/sda1/minidlna/db

#------------------------------------------------------#
# set this if you would like to specify the directory where you want MiniDLNA to store its log file
#------------------------------------------------------#
log_dir=/mnt/sda1/minidlna/log

#------------------------------------------------------#
# this should be a list of file names to check for when searching for album art
# note: names should be delimited with a forward slash ("/")
#------------------------------------------------------#
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

#------------------------------------------------------#
# set this to no to disable inotify monitoring to automatically discover new files
# note: the default is yes
#------------------------------------------------------#
inotify=yes

#------------------------------------------------------#
# set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
#------------------------------------------------------#
enable_tivo=no

#------------------------------------------------------#
# set this to strictly adhere to DLNA standards.
# * This will allow server-side downscaling of very large JPEG images,
#   which may hurt JPEG serving performance on (at least) Sony DLNA products.
#------------------------------------------------------#
strict_dlna=no

#------------------------------------------------------#
# default presentation url is http address on port 80
#------------------------------------------------------#
presentation_url=http://192.168.1.1:8200/

#------------------------------------------------------#
# notify interval in seconds. default is 895 seconds.
#------------------------------------------------------#
notify_interval=900

#------------------------------------------------------#
# serial and model number the daemon will report to clients
# in its XML description
#------------------------------------------------------#
serial=12345678
model_number=1

#------------------------------------------------------#
# specify the path to the 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"
# if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
#------------------------------------------------------#
#root_container=.

Configuration (uci)

This describes the configuration options in /etc/config/minidlna.

FIXME This is just an initial dump of all the options I found, I am not certain about any other options or their actual meaning!
FIXME I just guessed the Type entries. — hcc23 2013/02/21 02:02
NameTypeRequiredDefaultDescription
enabledboolean???0 
portstring???8200port for HTTP (descriptions, SOAP, media transfer) traffic
interfacestring???br-lannetwork interfaces to serve; comma (,) delimited
friendly_namestringno(none)set this if you want to customize the name that shows up on your clients
db_dirstringno/var/run/minidlnaset this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
log_dirstringno/var/logset this if you would like to specify the directory where you want MiniDLNA to store its log file
inotifybooleanno1set this to no to disable inotify monitoring to automatically discover new files
enable_tivobooleanno0set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
strict_dlnaboolean???0strictly adhere to DLNA standards; This will allow server-side down-scaling of very large JPEG images, which may hurt JPEG serving performance on (at least) Sony DLNA products.
notify_intervalintegerno895notify interval in seconds
serialinteger???12345678model number the daemon will report to clients in its XML description
model_numberinteger???1model number the daemon will report to clients in its XML description
root_container.,B,M,V,Pno.container for the tree root; .: default, B:browse directory, M:music, V:video, P:pictures
media_dirstring???/mntset this to the directory you want scanned;if have multiple directories, you can have multiple media_dir lines; if you want to restrict a media_dir to a specific content type, you can prepend the type, followed by a comma, to the directory: A for audio (eg. A,/home/jmaggard/Music)V for video, P for pictures; if you specify B and client device is audio-only then "Music/Folders" will be used as root
album_art_namesstringnoCover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpga list of file names to check when searching for album art; / delimited
presentation_urlstring??? default presentation url is http address on port 80
minisdpdsocketstring??? specify the path to the MiniSSDPd socket

Execute Daemon

root@OpenWrt:~# /etc/init.d/minidlna enable
root@OpenWrt:~# /etc/init.d/minidlna start

Done!

miniDLNA server is ready to use :-D

Notes

  • MiniDLNA's inotify support may not work as expected when trying to watch on an overlayfs filesystem. In the case of extroot, e.g. you can watch on `/overlay/root/minidlna` instead of `/root/minidlna`.

Reference:

Example

A video demonstration of how MiniDLNA 1.1.3-1 in the repositories can be installed on OpenWrt 14.07 Barrier Breaker: https://www.youtube.com/watch?v=-vU2zOw6ga0

Chaos Calmer Tips

If you have a decent size music library, you will more than likely find building the minidlna database on your OpenWrt device extremely slow or impossible due to RAM constraints. The solution is to build the minidlna database on a Linux PC.

  • Create a directory on your OpenWrt hard or flash drive to hold the minidlna log and database files.
    • mkdir /PathToHardDrive/minidlna
  • On the OpenWrt device, modify the following /etc/config/minidlna lines to put the minidlna database and log file on the hard or flash drive connected to your OpenWrt device.
    • option db_dir '/PathToHardDrive/minidlna'
      option log_dir '/PathToHardDrive/minidlna'
      option inotify '0'
      list media_dir 'A,/PathToHardDrive/PathToMp3s'
  • Create a minidlna configuration file on the hard or flash drive connected to your OpenWrt device
    • Put the following in file cp_minidlna_conf.sh.
      • #!/bin/sh
         
        . /lib/functions.sh
         
        minidlna_cfg_append() {
        	echo "$1" 
        }
         
        minidlna_cfg_addbool() {
        	local cfg="$1"
        	local key="$2"
        	local def="$3"
        	local val
         
        	config_get_bool val "$cfg" "$key" "$def"
        	[ "$val" -gt 0 ] && val="yes" || val="no"
        	minidlna_cfg_append "$key=$val"
        }
         
        minidlna_cfg_addstr() {
        	local cfg="$1"
        	local key="$2"
        	local def="$3"
        	local val
         
        	config_get val "$cfg" "$key" "$def"
        	[ -n "$val" ] && minidlna_cfg_append "$key=$val"
        }
         
        minidlna_cfg_add_media_dir() {
        	local val=$1
         
        	minidlna_cfg_append "media_dir=$val"
        }
         
        minidlna_create_config() {
        	local cfg=$1
        	local port
        	local interface
         
        	config_get port $cfg port
        	config_get interface $cfg interface
         
        	[ -z "$interface" -o -t "$port" ] && return 1
         
        	echo "# this file is generated automatically, don't edit" 
         
        	minidlna_cfg_append "port=$port"
        	minidlna_cfg_append "network_interface=$interface"
         
        	minidlna_cfg_addstr $cfg friendly_name
        	minidlna_cfg_addstr $cfg db_dir
        	minidlna_cfg_addstr $cfg log_dir
        	minidlna_cfg_addbool $cfg inotify '1'
        	minidlna_cfg_addbool $cfg enable_tivo '0'
        	minidlna_cfg_addbool $cfg strict_dlna '0'
        	minidlna_cfg_addstr $cfg album_art_names
        	minidlna_cfg_addstr $cfg presentation_url
        	minidlna_cfg_addstr $cfg notify_interval '900'
        	minidlna_cfg_addstr $cfg serial '12345678'
        	minidlna_cfg_addstr $cfg model_number '1'
        	minidlna_cfg_addstr $cfg minissdpsocket
        	minidlna_cfg_addstr $cfg root_container '.'
        	config_list_foreach "$cfg" "media_dir" minidlna_cfg_add_media_dir
         
        	return 0
        }
         
         
        config_load 'minidlna'
         
        minidlna_create_config config
    • chmod +x cp_minidlna_conf.sh
    • ./cp_minidlna_conf.sh > /PathToHardDrive/minidlna/minidlna.conf
  • Remove the hard or flash drive from the OpenWrt device and connect it to your Linux PC.
  • Build the minidlna database on a Linux PC with minidlna 1.1.4.
    • minidlnad -d -R -v -f /PathToHardDrive/minidlna/minidlna.conf
  • Remove the hard or flash drive from your Linux PC and reconnect to your OpenWrt device.
Ensure that the Linux PC portable hard or flash drive mount point is exactly the same as the OpenWrt hard or flash drive mount point. Otherwise, the OpenWrt minidlna will delete and rescan the database you generated on the PC since the paths don't match

This method has been tested with an Openwrt device with 32MB of RAM and a music library of over 11,000 songs. You may also want to add swap if you are running low on memory.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值