# Comparison of UPnP AV media servers

The following table compares the operating system support and basic features of various UPnP AV media servers. @media screen{html.client-js .mw-parser-output .sort-under.sortable.wikitable th.headerSort,html.client-js .mw-parser-output .sort-under-right.sortable.wikitable th.headerSort,html.client-js .mw-parser-output .sort-under-center.sortable.wikitable th.headerSort{padding-right:0.4em}html.client-js .mw-parser-output .sort-under.sortable:not(.wikitable) th.headerSort,html.client-js .mw-parser-output .sort-under-right.sortable:not(.wikitable) th.headerSort,html.client-js .mw-parser-output .sort-under-center.sortable:not(.wikitable) th.headerSort{padding-right:1px}html.client-js body.skin-minerva .mw-parser-output .sort-under.sortable.wikitable th.headerSort,html.client-js body.skin-minerva .mw-parser-output .sort-under-right.sortable.wikitable th.headerSort,html.client-js body.skin-minerva .mw-parser-output .sort-under-center.sortable.wikitable th.headerSort{padding-right:0.2em}html.client-js body.skin-timeless .mw-parser-output .sort-under.sortable.wikitable th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under-right.sortable.wikitable th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under-center.sortable.wikitable th.headerSort{padding-right:0.5em}html.client-js .mw-parser-output .sort-under-center.sortable th.headerSort{background-position:center bottom 0.2em}html.client-js .mw-parser-output .sort-under.sortable th.headerSort,html.client-js .mw-parser-output .sort-under-right.sortable th.headerSort{background-position:right bottom 0.2em}html.client-js .mw-parser-output .sort-under.sortable th.headerSort,html.client-js .mw-parser-output .sort-under.sortable th.unsortable,html.client-js .mw-parser-output .sort-under-right.sortable th.headerSort,html.client-js .mw-parser-output .sort-under-right.sortable th.unsortable,html.client-js .mw-parser-output .sort-under-center.sortable th.headerSort,html.client-js .mw-parser-output .sort-under-center.sortable th.unsortable{padding-bottom:1em}html.client-js body.skin-timeless .mw-parser-output .sort-under.sortable.wikitable th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under.sortable.wikitable th.unsortable,html.client-js body.skin-timeless .mw-parser-output .sort-under-right.sortable.wikitable th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under-right.sortable.wikitable th.unsortable,html.client-js body.skin-timeless .mw-parser-output .sort-under-center.sortable.wikitable th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under-center.sortable.wikitable th.unsortable{padding-bottom:1.2em}html.client-js body.skin-timeless .mw-parser-output .sort-under.sortable:not(.wikitable) th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under.sortable:not(.wikitable) th.unsortable,html.client-js body.skin-timeless .mw-parser-output .sort-under-right.sortable:not(.wikitable) th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under-right.sortable:not(.wikitable) th.unsortable,html.client-js body.skin-timeless .mw-parser-output .sort-under-center.sortable:not(.wikitable) th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under-center.sortable:not(.wikitable) th.unsortable,html.client-js body.skin-minerva .mw-parser-output .sort-under.sortable:not(.wikitable) th.headerSort,html.client-js body.skin-minerva .mw-parser-output .sort-under.sortable:not(.wikitable) th.unsortable,html.client-js body.skin-minerva .mw-parser-output .sort-under-right.sortable:not(.wikitable) th.headerSort,html.client-js body.skin-minerva .mw-parser-output .sort-under-right.sortable:not(.wikitable) th.unsortable,html.client-js body.skin-minerva .mw-parser-output .sort-under-center.sortable:not(.wikitable) th.headerSort,html.client-js body.skin-minerva .mw-parser-output .sort-under-center.sortable:not(.wikitable) th.unsortable{padding-bottom:0.8em}html.client-js .mw-parser-output .static-row-numbers.sort-under.sortable thead tr:only-child::before,html.client-js .mw-parser-output .static-row-numbers.sort-under-right.sortable thead tr:only-child::before,html.client-js .mw-parser-output .static-row-numbers.sort-under-center.sortable thead tr:only-child::before{padding-bottom:0.9em}html.client-js body.skin-timeless .mw-parser-output .static-row-numbers.sort-under.sortable thead tr:only-child::before,html.client-js body.skin-timeless .mw-parser-output .static-row-numbers.sort-under-right.sortable thead tr:only-child::before,html.client-js body.skin-timeless .mw-parser-output .static-row-numbers.sort-under-center.sortable thead tr:only-child::before,html.client-js body.skin-minerva .mw-parser-output .static-row-numbers.sort-under.sortable thead tr:only-child::before,html.client-js body.skin-minerva .mw-parser-output .static-row-numbers.sort-under-right.sortable thead tr:only-child::before,html.client-js body.skin-minerva .mw-parser-output .static-row-numbers.sort-under-center.sortable thead tr:only-child::before{padding-bottom:0.8em}html.client-js .mw-parser-output .sort-under.sortable.wikitable th.ts-vertical-header.headerSort,html.client-js .mw-parser-output .sort-under.sortable.wikitable th.ts-vertical-header.unsortable,html.client-js .mw-parser-output .sort-under-right.sortable.wikitable th.ts-vertical-header.headerSort,html.client-js .mw-parser-output .sort-under-right.sortable.wikitable th.ts-vertical-header.unsortable,html.client-js .mw-parser-output .sort-under-center.sortable.wikitable th.ts-vertical-header.headerSort,html.client-js .mw-parser-output .sort-under-center.sortable.wikitable th.ts-vertical-header.unsortable{padding-top:0.4em}html.client-js .mw-parser-output .sort-under.sortable:not(.wikitable) th.ts-vertical-header.headerSort,html.client-js .mw-parser-output .sort-under.sortable:not(.wikitable) th.ts-vertical-header.unsortable,html.client-js .mw-parser-output .sort-under-right.sortable:not(.wikitable) th.ts-vertical-header.headerSort,html.client-js .mw-parser-output .sort-under-right.sortable:not(.wikitable) th.ts-vertical-header.unsortable,html.client-js .mw-parser-output .sort-under-center.sortable:not(.wikitable) th.ts-vertical-header.headerSort,html.client-js .mw-parser-output .sort-under-center.sortable:not(.wikitable) th.ts-vertical-header.unsortable{padding-top:1px}html.client-js .mw-parser-output .sort-under.sortable .ts-vertical-header>div,html.client-js .mw-parser-output .sort-under-right.sortable .ts-vertical-header>div,html.client-js .mw-parser-output .sort-under-center.sortable .ts-vertical-header>div{padding-top:4px}html.client-js .mw-parser-output .sort-under.sortable:not(.wikitable) .ts-vertical-header>div,html.client-js .mw-parser-output .sort-under-right.sortable:not(.wikitable) .ts-vertical-header>div,html.client-js .mw-parser-output .sort-under-center.sortable:not(.wikitable) .ts-vertical-header>div{padding-bottom:4px}html.client-js body.skin-minerva .mw-parser-output .sort-under.sortable.wikitable .ts-vertical-header>div,html.client-js body.skin-minerva .mw-parser-output .sort-under-right.sortable.wikitable .ts-vertical-header>div,html.client-js body.skin-minerva .mw-parser-output .sort-under-center.sortable.wikitable .ts-vertical-header>div{padding-top:2px}html.client-js body.skin-timeless .mw-parser-output .sort-under.sortable.wikitable .ts-vertical-header>div,html.client-js body.skin-timeless .mw-parser-output .sort-under-right.sortable.wikitable .ts-vertical-header>div,html.client-js body.skin-timeless .mw-parser-output .sort-under-center.sortable.wikitable .ts-vertical-header>div{padding-top:0}@media(pointer:coarse){html.client-js .mw-parser-output .sort-under-center.sortable.wikitable th.headerSort{background-position:center bottom 0.5em}html.client-js .mw-parser-output .sort-under.sortable.wikitable th.headerSort,html.client-js .mw-parser-output .sort-under-right.sortable.wikitable th.headerSort{background-position:right bottom 0.5em}html.client-js .mw-parser-output .sort-under.sortable.wikitable th.headerSort,html.client-js .mw-parser-output .sort-under.sortable.wikitable th.unsortable,html.client-js .mw-parser-output .sort-under-right.sortable.wikitable th.headerSort,html.client-js .mw-parser-output .sort-under-right.sortable.wikitable th.unsortable,html.client-js .mw-parser-output .sort-under-center.sortable.wikitable th.headerSort,html.client-js .mw-parser-output .sort-under-center.sortable.wikitable th.unsortable{padding-bottom:1.6em}html.client-js body.skin-timeless .mw-parser-output .sort-under.sortable.wikitable th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under.sortable.wikitable th.unsortable,html.client-js body.skin-timeless .mw-parser-output .sort-under-right.sortable.wikitable th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under-right.sortable.wikitable th.unsortable,html.client-js body.skin-timeless .mw-parser-output .sort-under-center.sortable.wikitable th.headerSort,html.client-js body.skin-timeless .mw-parser-output .sort-under-center.sortable.wikitable th.unsortable{padding-bottom:1.8em}html.client-js .mw-parser-output .static-row-numbers.sort-under.sortable.wikitable thead tr:only-child::before,html.client-js .mw-parser-output .static-row-numbers.sort-under-right.sortable.wikitable thead tr:only-child::before,html.client-js .mw-parser-output .static-row-numbers.sort-under-center.sortable.wikitable thead tr:only-child::before{padding-bottom:1.5em}html.client-js body.skin-timeless .mw-parser-output .static-row-numbers.sort-under.sortable.wikitable thead tr:only-child::before,html.client-js body.skin-timeless .mw-parser-output .static-row-numbers.sort-under-right.sortable.wikitable thead tr:only-child::before,html.client-js body.skin-timeless .mw-parser-output .static-row-numbers.sort-under-center.sortable.wikitable thead tr:only-child::before,html.client-js body.skin-minerva .mw-parser-output .static-row-numbers.sort-under.sortable.wikitable thead tr:only-child::before,html.client-js body.skin-minerva .mw-parser-output .static-row-numbers.sort-under-right.sortable.wikitable thead tr:only-child::before,html.client-js body.skin-minerva .mw-parser-output .static-row-numbers.sort-under-center.sortable.wikitable thead tr:only-child::before{padding-bottom:1.4em}}}
| Name | License | Cost | OS X | Unix-like | Windows | Audio | Images | Video | Transcoding | Web Interface | DLNA support | Multilingual | Implementation | Subtitles | Still Supported | Misc. |
| 360 Media Server | GPL | Free | No | Yes | Yes | Yes | No | No | Yes | Yes | Un­known | Un­known | Java | Un­known | No | |
| ALLMediaServer | GPL | Trialware | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Delphi/Python | Yes | Yes | |
| ArkMS | Prop. | Non-free | Yes | No | No | Yes | Yes | Yes | No | Yes | Yes | Un­known | C++ | Yes | Yes | |
| aVia Media Player | Prop. | Free | No | No | No | Yes | Yes | Yes | Yes | No | Yes | Un­known | Java | Un­known | Yes | |
| BRisa | MIT | Free | Partial | Partial | No | Yes | Yes | Yes | Yes | Yes | Un­known | Un­known | Python | Un­known | Un­known | |
| Coherence | MIT | Free | Partial | Partial | Partial | Yes | Yes | Yes | Yes | Yes | Yes | Un­known | Python | Un­known | No | |
| DivX | Prop. | Free | Yes | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | C++ | Un­known | Yes | |
| Elgato Eyeconnect | Prop. | Non-free | Yes | No | No | Yes | Yes | Yes | No | No | Un­known | Yes | Un­known | Un­known | No | |
| Foobar2000 | Prop. | Free | No | No | Yes | Yes | No | No | Yes | No | Un­known | Un­known | C++ | Un­known | Yes | |
| FUPPES | GPL | Free | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Un­known | C++ | Un­known | No | |
| GeeXboX uShare | GPL | Free | No | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Un­known | C | Un­known | No | |
| Gmediaserver | GPL | Free | No | Yes | No | Yes | No | Yes | No | No | Un­known | Un­known | C | Un­known | No | |
| Home Media Center | GPLv2 | Free | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | .NET 4 | Yes | Yes | |
| Home Media Server | Prop. | Free | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Delphi | Yes | Yes | |
| iSedora Media Server | Prop. | Non-free | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Un­known | Objective C / C++ / JavaScript | Un­known | Yes | |
| Jamcast | Prop. | Free | No | No | Yes | Yes | Yes | No | Yes | No | Yes | Un­known | C++ / C# / Java | Un­known | Yes | |
| JRiver Media Center | Prop. | Non-free | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | C++ | Yes | Yes | |
| Kodi (formerly XBMC) | GPL | Free | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | C++ | Yes | Yes | |
| KooRaRoo Media | Prop. | Non-free | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | C++ | Yes | Yes | |
| LimboMedia | Prop. | Free | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Java | Yes | Yes | |
| LXiMedia | GPL | Free | Yes | Yes | Yes | Yes | Yes | Yes | Yes, mandatory | Yes | Yes | Un­known | C++ | Yes | No | |
| Majestic Media Server | Prop. | Non-free | Yes | No | No | Yes | Yes | Yes | Yes | No | Un­known | Un­known | Un­known | Un­known | Un­known | |
| MediaMonkey | Prop. | Non-free | No | No | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Delphi | Yes | Yes | |
| MediaTomb | GPL | Free | Partial | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Un­known | C++ | Un­known | No | |
| Gerbera | GPL | Free | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Un­known | C++ | Un­known | Yes | Based on MediaTomb |
| ReadyMedia (formerly MiniDLNA) | GPL/BSD | Free | Partial | Yes | Yes | Yes | Yes | Yes | Partial | Partial | Yes | Un­known | C | Yes | Yes | |
| Mezzmo | Prop. | Free | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | C++ | Yes | Yes | |
| myiHome | Prop. | Free | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Un­known | Un­known | Java | Un­known | Un­known | |
| MythTV with uPnP | GPL | Free | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Un­known | Un­known | C++ | Un­known | Un­known | |
| Nullriver Medialink | Prop. | Non-free | Yes | No | No | Yes | Yes | Yes | Yes | No | Yes | Un­known | Un­known | Yes | Un­known | |
| PlayOn | Prop. | Non-free | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | C# | Partial | Un­known | |
| Plex | Prop. | Non-free | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | C++ / Python | Yes | Yes | |
| PS3 Media Server | GPL | Free | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Java | Yes | No | |
| PyMedS | MIT | Free | Partial | Partial | No | Un­known | Un­known | Un­known | Yes | No | Un­known | Un­known | Python | Un­known | No | |
| Rygel | LGPLv2 | Free | No | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | Vala | Un­known | Yes | |
| Rivet | Prop. | Free | Yes | No | No | Yes | Yes | Yes | No | No | Un­known | Un­known | Un­known | Un­known | No | |
| Serviio | Prop. | Non-free | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Java | Partial | Un­known | |
| SimpleCenter Premium | Prop. | Non-free | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Un­known | Un­known | Un­known | Un­known | Un­known | |
| Skifta | Prop. | Free | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Un­known | Java | Un­known | Un­known | |
| Songbird | GPLv2 | Free | Yes | No | Yes | Yes | Yes | Yes | No | No | Yes | Yes | C++ | No | No | |
| TVble | Prop. | Free | No | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | C#/C++ | Un­known | Yes | |
| TVersity | Prop. | Non-free | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Un­known | Un­known | Yes | Yes | |
| TVMOBiLi | Prop. | | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | C++ | Yes | No | |
| TVShare | Prop. | Non-free | No | No | Yes | Yes | Yes | Yes | Yes | No | Un­known | Un­known | Java | Un­known | Un­known | |
| TwonkyMedia server | Prop. | Non-free | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Un­known | Un­known | Yes | |
| Universal Media Server | GPL | Free | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Java | Yes | Yes | Based on PS3 Media Server |
| Windows Media Connect | Prop. | Free | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Un­known | Un­known | Yes | |
| Wild Media Server | Prop. | Trialware | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Delphi | Yes | Yes | |
| xupnpd | GPLv2 | Free | No | Yes | No | Yes | Un­known | Yes | No | Yes | Yes | Un­known | C++ | Un­known | Un­known | |
| Yazsoft Playback | Prop. | Non-free | Yes | No | No | Yes | Yes | Yes | No | No | Un­known | Un­known | Un­known | Un­known | No | |
| Name | License | Cost | OS X | Unix-like | Windows | Audio | Images | Video | Transcoding | Web Interface | DLNA support | Multilingual | Implementation | Subtitles | Still Supported | |