Skip to content
A UPnP DLNA Digital Media Server that includes basic video transcoding. Tested on a Panasonic Viera television, several Android UPnP apps, and Chromecast.
Go Other
  1. Go 99.7%
  2. Other 0.3%
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Move dms-gtk-gui out of this repo Nov 7, 2019
.github Create FUNDING.yml Jun 29, 2019
data Add rescale method for default image to be able to keep only one icon Oct 18, 2019
dlna Add 'force transcode to' cli switch Oct 25, 2019
misc Add x264 chromecast transcode, and reduce logging in the main applica… Oct 6, 2014
play package ffmpeg was extracted to Mar 18, 2017
rrcache Document rrcache Oct 5, 2013
soap Work around Go's standard library broken implementation of marshallin… Jan 13, 2014
ssdp ssdp: simplified (delayed)send(). Jan 17, 2018
systemd Add a sample systemd .service file to use DMS as a system service Dec 28, 2019
transcode Fix chromecast transcode (#61) Oct 24, 2019
upnp (Hopefully) better error handling. Jan 17, 2018
upnpav Most servers have the searchable attr in res elements Oct 16, 2014
LICENSE Add BSD 3-clause license Oct 6, 2012
README.rst Add documentation for to point out our systemd file Dec 28, 2019
bindata.go Update bindata Oct 18, 2019
go.mod Merge branch 'master' into master Oct 19, 2019
go.sum Merge branch 'master' into master Oct 19, 2019
main.go Add logging path Nov 26, 2019



dms is a UPnP DLNA Digital Media Server. It runs from the terminal, and serves content directly from the filesystem from the working directory, or the path given. The SSDP component will broadcast and respond to requests on all available network interfaces.

dms advertises and serves the raw files, in addition to alternate transcoded streams when it's able, such as mpeg2 PAL-DVD and WebM for the Chromecast. It will also provide thumbnails where possible.

dms uses ffprobe/avprobe to get media data such as bitrate and duration, ffmpeg/avconv for video transoding, and ffmpegthumbnailer for generating thumbnails when browsing. These commands must be in the PATH given to dms or the features requiring them will be disabled.


Assuming $GOPATH and Go have been configured already:

$ go get

Ensure ffmpeg/avconv and/or ffmpegthumbnailer are in the PATH if the features depending on them are desired.

To run:

$ "$GOPATH"/bin/dms

Running DMS as a service

A sample systemd .service file has been [provided](systemd/dms.service) to assist in running DMS as a system service.

Known Compatible Players and Renderers

  • Probably all Panasonic Viera TVs.
  • Android's BubbleUPnP and AirWire
  • Chromecast
  • VLC
  • LG Smart TVs, with varying success.
You can’t perform that action at this time.