Shifted My Blog

Hi,I have shifted my blog to so please check out my latest posts at

Tuesday, May 01, 2007

Building a video sharing site.

Videos are the best way to express. With the popularity of sites like Youtube, Google Video, Jumpcut and lot other we see a beginning of online video sharing/editing Era.

Eg: YouTube,Google Video ,Jumpcut ,Grouper ,Revver ,vsocial,vimeo , Videoegg

With all these big players around it is difficult for any other site to come and compete. Innovation is the key to success. If you can put something extra that is really different and innovative - who knows, your site can leave YouTube and other big sites behind. So here I am explaining you how to build a basic video sharing site.

How does a video share site work?

A video sharing site perform three basic tasks

  1. Allows a user to upload video files.
  2. Convert the uploaded files to a common format that can be played on a browser (generally the format is flash video FLV)
  3. Embed a player in your site to view the video.

I . Uploading Video files.

You will find lots of open source application for file uploading available on web. You can use any of them .I have used “Uber Uploader” and it is really good .It has got AJAX Progress Bar which show you how much file is uploaded.

You can down load the file from

Note : To use this script you should have CGI-BIN Access enabled.

II .Converting the Uploaded video to Flv format.

The uploaded file needs to be converted to FLV format. To convert video file to FLV format you need additional packages installed to your linux server.

You need to install:-

GD Library 2 or higher,
FFmpeg, Mplayer + Mencoder ,
Flv2tool, Libogg + Libvorbis,
LAME MP3 Encoder

PHP Configuration:
safe_mode = off
register_globals = on (recommended)
open_basedir = (no value)
output_buffering = on
upload_max_filesize = 100M )
post_max_size = 100M

You can install the above package using YUM (recommended). The packages are available in DAG repository, so you need to add DAG repository to yum.

After you have installed the packages you just need to run few commands through php using exec command.

Following is the command to convert video file to FLV.

Note : check the path of mencoder using whereis command( whereis mencoder ) and if it is not '/usr/bin/mencoder ' then change it with the correct path in the command below.

exec("/usr/bin/mencoder testvideo.mpeg -o testvideo.flv -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=800:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -srate 22050");

You need to file Meta data using this command

Note : check the path of flvtool2

exec("/usr/bin/flvtool2 -Uv testvideo.flv newvideo.flv");

You can even create thumbnails by the following command

Note : check the path of mplayer

exec("/usr/bin/mplayer testvideo.mpeg -ss 1 -nosound -vo jpeg:outdir=./thumb -frames 2");

III .Embed a player in you site to view the video:-

Once you have created the FLV file the only task that is left is to display the video, for that you need an FLV player. So we need to find and download a FLV player.

Here is a link to a free FLV player Download.(

Note: But read the license before you use.

Now embed the player and specify the FLV file path.

Thursday, April 19, 2007

Installing and updating packages in linux.

I have always had difficulty in installing packages in Linux/ UNIX system. But after doing lots of googling and studying about it I found out that it is not so difficult indeed .I would like to share the knowledge.

There are three ways by which you can install a package.

1. Through a package manager like YUM/APT.

2. Using an RPM package.

3. Installing from source.

I will take up each method one by one.

I. Installing using package management utility-

Note: You should have you computer connected to net.

Installing packages using package management utility is the easiest of all the method.

YUM /APT fetches the files related to the package from a repository and installs it to your computer.


1. Easy option to install, uninstalls, update and maintain packages.

2. You get the latest package.

3. All the dependent modules/packages can also be installed

Commands for installation using YUM.

Lets try to install mplayer

1. we will check if the package is available .

# yum list mplayer

This will list information about the packsge iff available.

2. Install Packages

# yum install mplayer

You can also use wildcard to install all mplayer packages.

# yum install mplayer*

Will install all the dependent packages also.

3. Uninstall Packages

# yum remove mplayer

It completely removes the package.

Commands for installation using APT.

1. We will check if the package is available.

# apt-cache search mplayer

This will list information about the package if available.

2. Install Packages

# apt-get install mplayer

You can also use wildcard to install all mplayer packages.

3. Uninstall Packages

# apt-get remove mplayer

It completely removes the package.

II. Installing from RPM file-

1. Download the RPM file of the package.

For ex-

# wget

2. Install package.

# rpm -ivh mplayer-1.0-0.20.pre7.0.rh9.rf.i386.rpm


# dpkg -i [Package] (for debian linux)

3. Upgrade package.

# rpm -Uvh [Package]

Command will upgrade the package if it is already installed or install it if it is not

To perfrom only upgrade if the package is curently installed, use,

# rpm -Fvh [Package]

4. Remove package.

# rpm -e [Package]

Will remove the package completely

III. Installing from Source-

Installing packages from source file in the most difficult of all instalation process and should avoid it.

1. Move to src directory.

# cd /usr/src

2. Get the source code.

# svn checkout svn:// mplayer


download and unzip

3. Move to the source directory.

4. Check configuration options

# ./configure -help

5. Configure with appropriate options

# ./configure --enable-jpeg

6. Compile

# make

7. Install

# make install

8. Uninstall

# make uninstall

Saturday, March 31, 2007

First post

Hi all ,
I am Prabhanjan Panigrahi, a new member of the ever growing blogging community . This is my first but have nothing to write . I will share all my experiences good and bad through this blog.
Bye for now .