Wednesday, December 29, 2010

VLC streaming & transcoding to XBMC for Xbox

Some people have asked for a quick guide on how to stream / transcode from VLC (Windows) to XBMC for Xbox so here it is – this is not meant to be the guide, but more of a playground test from where anyone can take off.

This is what I’ve used:
  • XBMC4Xbox 3.0 beta2 r30758 running in 720p;
  • VLC Windows v1.1.5;
  • Home (2009) documentary – video H264 MPEG4-AVC, 1280x720, 24fps (avc1); audio MPEG AAC (mp4a), stereo, 44.1 KHz (as reported by VLC);
  • Dell Vostro 1520 running Windows 7 Professional x64.

VLC setup / configuration


VLC > Media > Streaming… > File (tab>)



I went for HTTP streaming cause it’s easier – select HTTP and click the Add button. That will allow you to configure the port and the URL – those will go into a .strm file that you will be playing in XBMC.


In my case the contents will be accessible from http://vostro:8080/stream (as you’ve guessed already Vostro is the name of my laptop); the port 8080 is offered by default and you can use it provided that you don’t have another application using it, in which case you will have to change it; the stream part is my choice.


In the lower section tick Activate Transcoding and you can choose one of the predefined profiles and customize it, or you can create a new one using the “Create new profile” button (3rd button). I chose to create my own profile and went to use WMV. Some profiles will require additional codecs that will be used for encoding the new stream, but I didn’t go into playing with those too much, I’ll leave that to you; I went for WMV cause it was the easy choice.


“Keep original video track” is unchecked cause otherwise it will stream the original contents. You can configure the bitrate and the frames per second – think of bitrate as the amount of data used to draw the picture, the more data the better the picture, but in the same time the more to transfer over the network (think of wireless here) and more data to decode on the client (more CPU required), so don’t go too high or too low, play with it to find a compromise between picture quality, network and CPU performance. It is in kb/sec which is common in communications but most people think in KB/sec so divide that by 8 to get some real sense of the amount of data.

The scale / sizing part controls the size of the output – in my case, the input is a 1280x720 video so scaling the output at 0.6 will result in a 768x432 video stream.


On the audio tab I went for WMA although you can probably also keep the original audio stream untouched (not transcoded), your choice.


I didn't play with subtitles, so go ahead and save the profile. Now back to streaming dialogs, tick the box to Activate Transcoding and select your new profile (or whatever profile you chose to go with) and click Next.


The final screen shows you the options you just configured earlier, where you can customize them or even paste them if you already have them prepared – it’s the same options you can find in the VLC wiki pages.


That’s it, press Stream to start streaming / transcoding. You will be controlling the stream from your PC, pausing, navigating, sound level etc.



XBMC side

You will now create a .strm file to point to the machine that we just configured and ran VLC – in my case this is http://vostro:8080/stream, where vostro is the name of the PC and the port and the stream part configured earlier. Transfer the .strm file to your Xbox and play it.


As mentioned earlier you won’t be able to navigate the stream from your XBMC because the video is one continuous stream that’s served from your PC; navigation is done on the VLC “server” side.

Here are some screenshots from the XBMC playing the stream, one with the settings above and one with a slightly larger size with the debug enabled to see how it handles it (notice the top side details).




6 comments :

  1. Dan thank you very much for your tutorial! I definately got my stream between XBMC and VLC working. Infact my capture source in VLC is a PVR-350 card, so I'm streaming Live TV to my XBMC thanks to your guide.

    ReplyDelete
  2. Hey Shawn,

    glad you found it useful cause it took me a while to get it working and write the post :-)

    ReplyDelete
  3. Hi, I'm trying to do the same. How do I create the .strm file and where/how do I place it in XBMC... Can't seem to get it working... any help will be greatly appreciated.
    Thanks,

    ReplyDelete
  4. @K Ray
    It's simpler then you think - create the whatever.strm file with a text editor on your PC (e.g. Notepad on Windows, put the file name between double quotes if you have configured to hide file extensions so you don't get the .txt at the end), the contents of the file is just the URL in the post, then upload the file through FTP on your Xbox in any location really, pick say a video folder or create one say F:\streams, then navigate with say File Manager and press play (A) and it will start the video player.

    ReplyDelete
  5. Hi, I've got an strm file, and am using a usb drive to get it to my Xbox, but I don't see "File Manager" anywhere on the Xbox, or any other way to see the strm file (if I browse to the usb drive, it does not show the strm file).

    ReplyDelete
  6. @fantacide
    Depending on the skin it's around Settings menu option (d-pad right, below or even inside Settings on the left).
    http://www.xbmc4xbox.org.uk/wiki/Filemanager

    .strm files might also be visible in video source locations, in file mode view, rather than library mode.

    ReplyDelete