I've started to work a few days ago on a full DLNA/UPNP Implemention into Enigma2
As a core I am using parts of the
Coherence DLNA Framework.
Still very experimental, but made some progress and experimental python scripts (still outside enigma2) to get some stuff up and running, and also created a little dlna-client plugin for enigma2.
What I have so far working in a early experimental (but working!!) stage:
- UPNP/DLNA MediaServer
A little dlna server that can share filesystem content from your dreambox, like all files in /media/hdd/. It acts as a simple DLNA MediaServer and is visible for all UPNP Clients in the network that can then browse the shared folders and files of your dreambox. Transcoding via gstreamer is also supported, but I doubt it makes much sense to enable it because transcoding mediafiles on dreambox takes years!
- UPNP/DLNA Media Renderer
Plays back media content provided by a MediaServer, connected with a Controlpoint you can play media on your dreambox from your PC or MobilePhone, just select the Dreambox as Playbackdevice/MediaRender inside your DLNA Application on PC, Phone or whatever. So you can easily select mediafiles on your PC and stream them to the dreambox, playback will automaticly start there without further action. So the Dreambox can get completly remote controled by any mediaplayer in the network that supports playback on remote-devices, like Twonky, Windows MediaPlayer and many others ...
- UPNP/DLNA Media Controlpoint
Acts like a remote control and can share content between servers and clients, listen to events of other dlna devices and can detect if new DLNA Devices connect/disconnect so we can handle the devices inside enigma2. It also allows us to remote control and watch activity of other DLNA Devices on the Network, like subscribing to events of other DLNA Devices and do custom actions then on the dreambox.
- UPNP/DLNA MediaServer Client
A very simply plugin for Enigma2 to search for DLNA MediaServers inside the Network, browse their content and play audio, video and photo files from other DLNA Servers. Just written for testing purposes to browse DLNA Server Content on the Dreambox, but might get extended then in the future as a full DLNA Client/Server/Renderer/ControlPoint.
- UPNP/DLNA Server Plugins
We not can only share files, we also can create our own servers with plugins. The Coherence Framwork offers some Sample Plugins, like an AppleTrailer Plugin that you can enable and a new DLNA Server will show up in your network where you can browse the Movie Trailers from AppleTrailer Website. Or Flicker-Plugin, youTube and Facebook Photos and many other popular services, easily browsable as an UPNP Server. I already got some of those plugins working on my Dreambox. There is also a sample plugin to share DVB Streams on a UPNP Server, so even TV Streams of your Dreambox could get shared via UPNP then! Plugin not working yet tough. This also offers some nice ways to write some new python plugins for developers to create their own UPNP Servers and fill it with whatever content they would like to see there. Local or remote Files, internet/radio streams or whatever makes sense to browse and play on your Dreambox / TV.
Like said: It's still very experimental and there is still a lot of work to do, specially when integrating and porting all this stuff directly into enigma2 and offer a nice framwork for Plugin Developers but it's just a question of time until I have a full dlna/upnp framwork inside enigma2 that can handle all the stuff that needs to be implemented. Like MediaServers, Plugin Support, ControlPoint to control other devices and acting as MediaRenderer to get remote controled by another MediaServer to play mediafiles, change volume or whatever, all those hundreds of commands need to get handled by enigma2 then. A lot of work, but I think I will be able to get for you within a few weeks, maybe months.
The performance of streaming media was very good and fast, I already streamed a lot of 1080p Movies from the dreambox to PC and from PC to Dreambox without transcoding, everything worked well and smooth. Just some smaller problems here and there when trying to seek/jump with some formats and the playtime was sometimes not displayed correctly on the dreambox, depending on which file formats I was streaming, but that should be fixable I guess.
DLNA can do a lot of funny stuff, not just sharing files. Remote Control of MediaRenderer is also very funny, you just browse the mediafiles on your iphone or pc with Twonky, Windows MediaPlayer or whatever and select the Dreambox as a Playback Device so you can easily sit on your PC or iPhone, browse local files and control the stuff that is played on the dreambox. Or the other way, you sit on your dreambox and remote control what is played on your PC, iPhone, AVR, TV or any other DLNA Device that can act as a DLNA MediaRenderer Device