Watch movies with subtitles on Xbox 360

xbox 360 movies

Xbox 360 multimedia capabilities are very good, with streaming functions available not only for Windows systems (see here for streaming movies using Ubuntu).

There is a caveat though, the lack of subtitles functionality for movies, and the only way to use them is to hard-sub (encoding the movie again applying subtitles on it).

Several tools are available for every operating system, but the easiest one I use is mencoder (part of the MPlayer project), a command line tool for encoding audio and video files.

Mencoder is available in almost every Linux distribution, for install on Ubuntu just type:

sudo apt-get install mencoder

I encode each movie in Xvid format (which Xbox is capable of play), with this command:

mencoder mymovie.avi -ovc xvid -oac mp3lame -xvidencopts fixed_quant=1 -sub mymovie.srt -o mymovie-encoded.avi

where obviously mymovie.avi is the original movie without subtitles, mymovie.srt is the subtitles file and mymovie-encoded.avi is the resultant output file.

terminal mencoder

The output file will be larger than the original one because I used the fixed_quant=1 option, that outputs larger files but with best quality (you can use 2 or 3 but the quality downgrades).

Encoding may be very slow on older systems, but once finished it can played as any other media…enjoy!

Streaming movies and music from Ubuntu to Xbox 360

Since Ushare seems to not work with Ubuntu 9.10, I decided to change application, and what I found is MiniDLNA.

The installation process is not automatic, but it is very easy:

Download the package from here, or grab the latest one from the site (current one is 1.0.16-pre7 1.0.16.3).

Unpack it:

tar -zxvf minidlna_1.0.16.3_static.tar.gz

Copy the only 2 files in your system:

sudo cp etc/minidlna.conf /etc/

sudo cp usr/sbin/minidlna /usr/sbin/

Now we need to edit the config file, adding the paths we want to share.

I noticed that parsing a large number of files takes a lot of time, so I decided to share only the directories where I have movies (and not my Music library).

sudo gedit /etc/minidlna.conf

This is my minidlna.conf:

port=8200
media_dir=V,/home/scognito/Video
media_dir=V,/home/scognito/Scrivania
friendly_name=Headache
db_dir=/var/cache/minidlna
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
inotify=yes
enable_tivo=no
strict_dlna=no
presentation_url=http://192.168.0.2:8200
notify_interval=900
serial=111222333
model_number=1

It’s almost the same as the default one, don’t forget to add as many media_dir as you need, set your friendly_name (the name your Xbox will see your pc), and most important, the presentation_url, otherwise pc will not be visibile from the Xbox (set it as your pc ip:port)

Start it and enjoy, your shares will be visible to your Xbox 360!

sudo /usr/sbin/minidlna

It will start in daemon mode (you can use the -d flag to debug if you have issues).

If you need to start MiniDLNA automatically at each boot, do the following:

Go to System -> Preferences -> Startup Applications, click Add, and use these settings:

Name: minidlna
Command: /usr/sbin/minidlna


Confirm, and MiniDLNA will start at each boot 🙂

Update: Version 1.0.16.3 added support for storing the db in a directory different than the default /tmp, so that informations will not be removed after each reboot (variable db_dir in the minidlna.conf)!