After a good bit of tinkering, I’ve come up with the following setup for generating a DLNA compatible stream of a Windows or Linux desktop using Video Lan Connection.
Note that there is no audio in this configuration, as it was not a requirement for my project. Also, the screen resolution of the source computer should probably match the one of the stream: 1920 x 1080.
These streams works quite well with our Samsung 5-series Smart-TVs, and should work for most other DLNA or UPNP AV devices capable of h.264 formatted video in 1080p aka Full HD.
For reasons I have yet to figure out, the streams are detected as 4:3 format. I was able to easily work around this by setting the TV to force 16:9.
Typically I experience 5-10 seconds delay between the source computer and the rendering device.
On Linux the built in Screen:// video source seems to work nicely, while on Windows I found an open source DirectShow filter by Roger Pack to work somewhat better: Screen Capture Recorder
Linux:
vlc screen:// –screen-fps=25 –sout ‘#transcode{venc=x264{profile=low,preset=ultrafast,tune=animation,keyint=25}, vcodec=h264,width=1920,height=1080,fps=25,acodec=none}:http{mux=ps,dst=:8080/}’ –sout-keep
Windows (using screen-capture-recorder):
“C:\Program Files (x86)\VideoLAN\VLC\vlc.exe” -vvv dshow:// –sout=#transcode{venc=x264{profile=low,preset=ultrafast,tune=animation, keyint=25},vcodec=h264,width=1920,height=1080,fps=25, acodec=none}:std{access=http,mux=ps,dst=0.0.0.0:8080} –no-sout-rtp-sap –no-sout-standard-sap –ttl=1 –sout-keep :dshow-vdev=screen-capture-recorder :dshow-adev=none :dshow-caching=1000
You should now be able to reach the stream by pointing another instance of VLC to port 8080 of the source machine. You could even test with a second instance of VLC on the same host by opening http://localhost:8080/
The streams should be added to a DLNA or UPNP AV media server capable of serving live streams, as such I have had some luck using Serviio. It’s not open source, but there is a free version available for all of Linux, Windows and OS X.