How to stream your desktop to Roku
So to be completely up front, the headline is misleading. I’m writing this in hopes of saving some poor soul a few hours. To make a long story short, just get an HDMI cable and call it a day.
Desktop streaming is a nightmare on Roku. Out of the box, Roku offers a feature called Screen Mirroring, which relies on MiraCast, which is a steaming pile of shit. Unless you have the right graphics card and wireless adapter, it’s not going to work. Don’t even try.
You can check if your Windows computer supports MiraCast by running dxdiag, clicking the “Save All Information…” button, and searching the text file that’s generated. MiraCast availability will be in the “System Information” section.
The only other option is creating an HLS stream of your desktop using ffmpeg. Why HLS? Because Roku doesn’t support RTMP. Here’s a list of supported video formats for Roku. Currently, desktop streaming crashes the current stable version of VLC so don’t even bother.
WARNING: THIS IS COMPLICATED AND DOESN’T WORK VERY WELL. DO NOT ATTEMPT IF YOU VALUE YOUR TIME.
If you’re on Windows, you need to install:
Then, run this command:
ffmpeg -f dshow -i audio=”virtual-audio-capturer”:video=”screen-capture-recorder” -pix_fmt yuv420p -hls_time 10 -hls_list_size 8 C:\xampp\htdocs\stream.m3u8
Alternatively, you can use gdigrab using this tutorial.
There are options for framerate and quality but I won’t get into those here. Consult the docs.
Next, you have to enable dev mode on your Roku by entering: “Home 3x, Up 2x, Right, Left, Right, Left, Right”. Yes, I’m serious. Follow the instructions and open up the Roku dashboard in your browser.
Then download the sample simple-video-player channel. Edit “components/SimpleVideoScene.brs”, go to line 46 and change “streamFormat” to “hls” and change “url” on the next line to “http://your_ip_here/stream.m3u8”.
Zip everything up, upload and install, and voila, you have a complete mess that’s always buffering and never seems to work right. You’re welcome.