For Ubuntu Server: I assume you logged in as root/ sudo -s a)To make sure you have all dependencies (configuration files, startup scripts) installed it's best to first install Lighttpd via 'apt-get'. apt-get install lighttpd b)Download Lighttpd 1.4.18 as this is the only version having streaming module (Just download, don't install) cd ~ wget http://h264.code-shop.com/download/lighttpd-1.4.18_mod_h264_streaming-2.2.9.tar.gz tar -zxvf lighttpd-1.4.18_mod_h264_streaming-2.2.9.tar.gz c) make sure you have libtool, automake, bzip2 and autoconf installed or run apt-get install build-essential d) Download any version of lighttpd like .28 or .30 wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.30.tar.gz tar -zxvf lighttpd-1.4.18_mod_h264_streaming-2.2.9.tar.gz cd lighttpd-1.4.30 ./autogen.sh ./configure (if you still get bzip2 not install then use --without-bzip2) make make install e) Copy files from lighttpd-1.4.18/src to lighttpd-1.4.30/src cd ~ cp lighttpd-1.4.18/src/mod_h264_streaming.c lighttpd-1.4.30/src/ cp lighttpd-1.4.18/src/mod_streaming_export.h lighttpd-1.4.30/src/ cp lighttpd-1.4.18/src/moov.* lighttpd-1.4.30/src/ cp lighttpd-1.4.18/src/mp4_io.* lighttpd-1.4.30/src/ cp lighttpd-1.4.18/src/mp4_process.* lighttpd-1.4.30/src/ cp lighttpd-1.4.18/src/mp4_reader.* lighttpd-1.4.30/src/ cp lighttpd-1.4.18/src/mp4_writer.* lighttpd-1.4.30/src/ cp lighttpd-1.4.18/src/mp4_reader.* lighttpd-1.4.30/src/ cp lighttpd-1.4.18/src/output_bucket.* lighttpd-1.4.30/src/ cp lighttpd-1.4.18/src/output_mp4.* lighttpd-1.4.30/src/ f) First you add the following to the lighttpd-1.4.30/src/Makefile.am file cd lighttpd-1.4.30/src/ vi Makefile.am lib_LTLIBRARIES += mod_h264_streaming.la mod_h264_streaming_la_SOURCES = mod_h264_streaming.c \ mod_streaming_export.h \ moov.c moov.h \ mp4_io.c mp4_io.h \ mp4_reader.c mp4_reader.h \ mp4_writer.c mp4_writer.h \ mp4_process.c mp4_process.h \ output_bucket.c output_bucket.h \ output_mp4.c output_mp4.h mod_h264_streaming_la_CFLAGS = $(AM_CFLAGS) -DBUILDING_H264_STREAMING mod_h264_streaming_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined mod_h264_streaming_la_LIBADD = $(common_libadd) cd .. ./autogen.sh ./configure make make install g) Changes in conf file for mp4 and f4v files cd ~/lighttpd-1.4.30 vi lighttpd.conf server.modules = ( .... "mod_expire", "mod_secdownload", (Will be needed for security) "mod_h264_streaming", etc... } #h264 config h264-streaming.extensions = ( ".mp4", ".f4v" ) h264-streaming.buffer-seconds = 10 h)Change server document as per your requirement. You can mnt an external drive to NFS to serve video files, all url are accessible publicly. You are all set to to stream video from you own server !!!! If security is your concern than please continue reading. ============================================================================================================================================= Lighttpd have a module name mod_secdownload, which is helpful for security. It basically set expire time to url. Although it's not totally but 90% secure. I am still working to connect Lighttpd with Apache Tomcat porxy so that no URLs will be accessible direclty. Please refer http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModSecDownload I created a JAVA class LighttpdAuthUrl to generate hashed url with timestamp, which I posted in the above mentioned site as it had code for other language except for JAVA.