[GUIDE] Live streaming to your Wii U (or: more video formats the browser supports)

Discussion in 'Wii U - Hacking & Backup Loaders' started by FierceDeity_, Dec 2, 2012.

  1. FierceDeity_

    FierceDeity_ Newbie

    Nov 21, 2012
    Gambia, The

    I played around for a while, and I figured out something about the Wii U browser:

    It does not only support MP4 / h.264+MP3, but also MPEG2 TS with h.264 and AAC (or MP3).

    What does that mean?

    The HTML5 Live Streaming that Apple so much proclaims ( https://developer.apple.com/resources/http-streaming/ ) basically works.

    I only did this on Windows, but Linux users should be able to change the input variables. I also expect intermediate experience with "computer stuff".

    And what does it do?

    It allows you to stream LIVE video sources (DirectShow sources) such as your Webcam (ha!) your computer screen, whatever you have to your Wii U. The technique has a inherent delay of about 9 seconds (cant be lowered much further).

    What do I need?

    • VLC Media Player
    • A web server (or just install IIS on Windows)
    • A Wii U... probably... You can test it with a iDevice (iPod/iPhone/iPad) though, they support the same method!
    • A video input device (virtual or not) that exposes itself as a DirectShow device. Example: XSplit Broadcaster has a video source, ffsplit creates a video source (www.ffsplit.com), Webcam, your camcorder might support this...
    The steps:
    1. Install your web server of choice. IIS is only there on the Professional versions of Windows and above.
      Recommendation? Just get nginx or lighty! http://nginx.org/download/nginx-1.3.9.zip
    2. Now you need to configure your web server. I'll explain how to do that with nginx.
      1) Download it (obviously) and extract it somewhere
      2) Go into the "conf" subfolder of this folder and open nginx.confg with an editor (standard Notepad might just throw all lines into disarray and show them all clunked together... Try WordPad, it works. Or better, just use notepad++ or notepad2)
      3) If you use Skype, nginx might not work out of the box (technical reason: Skype grabs port 80, which is for web servers).
      Two solutions: Kill Skype, then open nginx, then open Skype, OR: In the config file you are in now, look for the line "listen 80"; change the 80 whatever you want, but avoid anything below 200.
      4) If you want to set your own folder to contain the (temporary) videos for live streaming, do this:
      In the config file look for the section beginning with "
      location / {
      " . One line below, there's "root html;". Here you can change the webroot. You can change it, for example, to "C:\\users\\yourusername\\wwwroot\\", without the quotes. Note the double backslashes: You need those :). Important: Keep the semicolon (;) in the end! Also: It keeps trouble away when you choose a folder that does not need Administrator permissions to be written to. If you disabled UAC, go ahead and choose anything.
      5) Save and close!
    3. Now comes the funstuff. In your webroot (whatever you set above) or in the html subfolder of nginx (if you didn't set anything), create a new file called index.html (keep in mind that Windows, by default, omits file extensions! You should know that as an intermediate, do you?)... You can also just right click the existing index.html and hit "Edit". If MSWord pops up... Well dang, open with notepad.

      Okay. In this index.html, paste this:

      <!doctype html>
      <video width="320" height="240" controls="controls">
          <source src="/stream/stream.m3u8" type="application/x-mpegURL" />
      Save and exit the editor.

      Also, make a new folder inside your webroot: "stream".
    4. Now, gleam your eyes across this beauty:

      "c:\program files (x86)\videolan\vlc\vlc" -I rc dshow:// :dshow-vdev="XSplitBroadcaster" :dshow-adev="XSplitBroadcaster" vdev="XSplitBroadcaster" adev="XSplitBroadcaster" size="1280x720" --sout=#transcode{width=1280,height=720,fps=25,vcodec=h264,vb=256,venc=x264{aud,profile=baseline,level=30,keyint=30,ref=1},acodec=aac,ab=96,channels=2}:std{access=livehttp{seglen=3,delsegs=true,numsegs=1,index=C:\inetpub\wwwroot\stream\stream.m3u8,index-url=/stream/stream-########.ts},mux=ts{use-key-frames},dst=C:\inetpub\wwwroot\stream\stream-########.ts}
      This is the command you will have to execute to make VLC do your bidding.
      Edit it to your specifications, look for all paths in there and change them accordingly (examples: index=, dst=, path to your vlc ("program files" on 32 bit Windows, "program files (x86)" on 64 bit windows...)
      :dshow-vdev and vdev are the name of your DirectShow Device to stream from. You could try the name of your webcam, for example. You can see the name with amcap.exe for example, or this: http://metalgearsonic.de/Software/WebcamSilverlight/Run.html It runs on Silverlight, so you have to have that installed. You can see the names of your input devices in that dropdown box.

      :dshow-adev and -adev ... Is just that, the same thing for audio.

      size="1280x720" and width:1280,height:720 sets the resolution for your stream.
    5. Create a new .BAT file anywhere you want and put the command you just made in there.
    6. Now for the grand finale: Open nginx.exe, look into task manager if nginx.exe is present, allow firewall if it pops up
      Open the new bat file with the VLC command... It should open VLC and start cracking (and not crash).
    7. Now get the IP of your PC (if you don't know how: http://www.wikihow.com/Find-out-Your-IP-Address ), for you guys who think: The hostname does NOT work on the Wii U. I tried and wondered why I couldn't access my PC. You HAVE to type the IP. I don't know why they did this.
    8. If you set a port before (the listen 80 setting before), on your Wii U, access this: http://your-ip:portnumber/. If not, access this URL: http://your-ip/
    9. There should be a small player popping up on the page.. Hit it... and hope it plays your stream! :)
    I hope it works for you guys!

    EDIT: Actually, as per WiiUBrew, it was already known 5 days ago that it supports the MPEG2 TS container. Dang :)
    Dekirai and PrimeX like this.
  2. paulee123

    paulee123 GBAtemp Regular

    Dec 14, 2008
    United States
    :yaywii: cheers
  3. crono141

    crono141 GBAtemp Regular

    Jan 7, 2012
    United States
    OK, I'm kinda confused. Is this only good for one file, or will you be browsing a list of files in the webroot, and when you activate it the vlc portion does its magic? This isn't on the fly transcoding is it?
  4. SifJar

    SifJar Not a pirate

    Apr 4, 2009
    I think you basically need to set it up with a particular video on your computer, then it'll stream that one video to your WiiU. To watch another video, you'd then have to change stuff on your computer again. Although I don't think this guide actually covers streaming a video file, it seems to be streaming from a video input device (e.g. a webcam). I dunno if there is some software or something that can play a video which will appears as a video input device, if there is that should work I guess.

    EDIT: The OP appears to be using this: http://www.xsplit.com/, which looks like it should work. But it's not free, and I don't really think it's worth it for the end result (I think it's rather inconvenient to have to choose videos on PC to watch on something else). You may feel it is.
  5. FierceDeity_

    FierceDeity_ Newbie

    Nov 21, 2012
    Gambia, The
    Yeah, it's not very convenient if you only want to watch videos. It's for when you (for SOME reason) want to stream any video input device (Webcam, XSplit has a virtual one) directly to the Wii U LIVE.

    If you just want to watch videos use the other method and put MP4 files into the webroot for the Wii U to directly access.

    It's on the fly transcoding for LIVE content. There will be a delay of about 9 seconds though, keep that in mind (cant be lowered with this method much further).

    I edited my post to have this information.

    Also XSplit is free to use, some sources (and settings) are not available in free mode though, like the DirectX game source.
  6. PrimeX

    PrimeX GBAtemp Regular

    Dec 27, 2012
    I think this one is really interesting. Like a remote desktop connection. FierceDeity did you try it? You can combine this with an android Gmote server for example and controll your pc/laptop from the livingroom only by accessing a webpage.
  7. GregoryRasputin

    GregoryRasputin The PS3 Scenes Most Hated Person

    Dec 12, 2012
    I posted something similar, though not as detailed on my own website on the same day, ill post it here, hoping that it is somewhat helpful of useful :)

    KiiWii likes this.
  8. DoctorSmash

    DoctorSmash GBAtemp Regular

    Feb 15, 2013
    United States
    Why not just use playon.
  9. GregoryRasputin

    GregoryRasputin The PS3 Scenes Most Hated Person

    Dec 12, 2012

    It seems heavy on System resources.
    The cool thing about Playon is that you can get it for for a full year if you have a Wii U :)
  10. vashgs

    vashgs GBAtemp Regular

    Feb 1, 2008
    United States
    There's a built-in lag with Apple's livehttp (which is the only supported streaming protocol on the Wii U) that would ultimately ruin any attempt at a remote desktop client via streaming.
  11. pwsincd

    pwsincd Garage Flower

    GBAtemp Patron
    pwsincd is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    Dec 4, 2011
    Manchester UK
    I use playon and have just tried plex .. both work well , plex has a nicer interface imo... neither can do live streamin i dont think.