I run a very simple (tomcat hosted) jsp based web page which reads my disk structure and renders a hideous html page which allows you to: 1) Play the movie in the browser (for the kids' iPads mostly, or 2) send a REST call to the Roku to play it on the roku (using a custom "channel" I wrote, which consists of about 5 lines of Roku's proprietary Brightscript.
The Roku channel I wrote can also parse an xml file that my hideous jsp can generate, which will build picture based menus on-screen on the roku. This was so my 4 year-old could find and play whatever the hell they wanted to play. My one design requirement "4 year old can use it"
For the grown-ups, we just have an amazon fire stick (17 dollars on sale) plugged in to the TV. Side-loaded XBMC
(now Kodi or something) and pointed it to the same network fileshare that the tomcat server serves up.
My setup is a patchwork, but it works on Android, FireTV, Roku, iPad, and desktop, and it was free, and I have made barely any changes to it beyond adding content for the past 2 years. The biggest downside to all of it is when less techie people come over they always ask "can you set this up at my house?" and my answer is "um, uh, not really." If it were more portable and "standard" it would be better... but it works for me and my family.