VLC - the cross-platform media player and streaming server
VLC media player is a highly portable multimedia player for various audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, mp3, ogg, ...) as well as DVDs, VCDs, and various streaming protocols. It can also be used as a server to stream in unicast or multicast in IPv4 or IPv6 on a high-bandwidth network. I tried to compile VLC with all main options.
Source web site: http://www.videolan.org/
-------------------------------------------
My system : RHEL 4 ES (kernel-2.6.9-5)
-------------------------------------------
Check following packages, if not installed, install from Internet and RHEL source CD:
# tar xvjf gettext-0.16.1-1-bin.tar.bz2
# cd usr/local
# cp -rp * /usr/local/
Note: Copy source files after tar to related folder (it is for bootstrap from SVN source).
libgpg-error-devel-1.0-1.i386.rpm
libgcrypt-1.2.0-3.i386.rpm
libgcrypt-devel-1.2.0-3.i386.rpm
Checkout VLC from SVN server:
# cd vlc-trunk;
# ./bootstrap
.....
.....
Successfully bootstrapped
******************
Before compile VLC , we have to compile the following packages and libraries :
- x264
The x264 is a library to encode movies in H.264.
Source web site: http://www.videolan.org/developers/x264.html
# svn co svn://svn.videolan.org/x264/trunk x264
# cd x264/
# ./configure (may be not need)
# make
# cd ..
Also, we installed a x264 from RPM package.
Because, we had error message "x264 librar not exist" during the configure VLC.
# rpm -ivh x264-devel-0.0.0-0.4.20070529.el4.rf.i386.rpm
- faac
The faac is a library to encode audio in AAC/MP4A
Source web site: http://www.audiocoding.com/
# cd faac/
# dos2unix *
# patch -p1
Purpose of the patch:
- To avoid warning during bootstrap:
configure.in:10: warning: underquoted definition of MY_DEFINE
run info '(automake)Extending aclocal'
or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
- Error during configuring:
.infig.status: error: cannot find input file: \
Note: Source web site of patch: http://research.m1stereo.tv/wiki/index.php/Build_video_enc_env
- faad
The faad is a decoder, AAC (mpeg-4,mpeg-2)
Source web site: http://www.audiocoding.com/
# cd faad2/
# autoreconf -vif
# ./configure --with-mpeg4ip
# make; make install
# cd ..
- Lame
The lame is a encoder library MPEG Audio Layer III (MP3).
Source web site: http://lame.sourceforge.net/index.php
# cd lame-3.97/
# ./configure;
# make; make install
# cd ..
- liba52 (a52dec)
The liba52 is a free ATSC A/52 stream decoder.
Source web site: http://liba52.sourceforge.net/
# mv a52dec-0.7.5-cvs liba52
# cd liba52
# ./configure
# make
# make install
Also, we installed a liba52 from RPM package.
Because, we had error message that the source tree not exist during the configure VLC.
# rpm -ivh a52dec-devel-0.7.4-8.el4.rf.i386.rpm
- ffmpeg
The ffmpeg is a multi-codec library
Source web site: http://ffmpeg.mplayerhq.hu/
# cd ffmpeg
# ./configure --enable-gpl --enable-pp --enable-pthreads --enable-libmp3lame --enable-libfaac --enable-libfaad --enable-libx264 --enable-liba52
# make
# ldconfig
# ffmpeg -v
libavutil version: 49.5.0
libavcodec version: 51.46.0
libavformat version: 51.15.0
# cd ..
- live
The live is a streaming library.
Source web site: http://live555.com/
# tar xvf live555-latest.tar.gz
# cd live/
# ./genMakefiles linux
# make
# cd ..
- libmpeg2
The libmpeg2 is a MPEG2 video stream decoder.
Source web site: http://libmpeg2.sourceforge.net/
# cd mpeg2dec-0.4.1
# ./configure
# make
# cd ..
Note: During the make, we hade path problem of the source tree.
# cp libmpeg2/.libs/libmpeg* libmpeg2/.libs/.libs/
- PortAudio
The portaudio is cross platform audio I/O library and it provide very simple API for recording and/or playing sound a simple callback function.
Source web site: http://www.portaudio.com/
# cd portaudio
# ./configure
# make; make install
- Libgii
The LibGII is intended to be to input what our LibGGI library is to graphics.
Source web site: http://www.ggi-project.org/packages/libgii.html
# cd libgii-1.0.2/
# ./configure
# make; make install
# cd ..
- Libggi
The GGI stands for General Graphics Interface, and it is a project that aims to develop a reliable, stable and fast graphics system that works everywhere.
Source web site: http://www.ggi-project.org/
# cd libggi-2.2.2/
# ./configure
# make; make install
# cd ..
- wxWidgets
The wxWidgets gives that easy-to-use API for writing GUI applications on multiple platforms that still utilize the native platform's controls and utilities. Default skin of the VLC is developed by wxWidgets and library of GGI and GII.
Source web site: http://www.wxwidgets.org/
# cd wxWidgets-2.8.6/
# ./configure --enable-unicode
# make; make install
# ldconfig
- Installing required RPM packages:
During the compile (./configure, make, make install), we have to install following packages which are enabled in configure.
Search and download RPM packages: http://rpm.pbone.net/
libshout-devel-2.2-1.2.el4.rf.i386.rpm
libdvdcss-1.2.9-3.el4.at.i386.rpm
libdvdread-0.9.7-4.el4.at.i386.rpm
libdvdread-devel-0.9.7-4.el4.at.i386.rpm
libmad-0.15.1b-4.el4.rf.i386.rpm
libmad-devel-0.15.1b-4.el4.rf.i386.rpm
libcdio-0.77-1.el4.rf.i386.rpm
libcdio-devel-0.77-1.el4.rf.i386.rpm
libcddb-1.3.0-1.el4.rf.i386.rpm
libcddb-devel-1.3.0-1.el4.rf.i386.rpm
vcdimager-0.7.23-5.el4.rf.i386.rpm
vcdimager-devel-0.7.23-5.el4.rf.i386.rpm
libsndfile-1.0.17-1.el4.rf.i386.rpm
libsndfile-devel-1.0.17-1.el4.rf.i386.rpm
twolame-0.3.9-1.el4.rf.i386.rpm
twolame-devel-0.3.9-1.el4.rf.i386.rpm
SDL_image-1.2.4-2.el4.i386.rpm
SDL_image-devel-1.2.4-2.el4.i386.rpm
libopendaap-0.4.0-2.el4.rf.i386.rpm
libopendaap-devel-0.4.0-2.el4.rf.i386.rpm
libdca-0.0.5-1.el4.rf.i386.rpm
libdca-devel-0.0.5-1.el4.rf.i386.rpm
libraw1394-0.10.1-3.el4.i386.rpm
libraw1394-devel-0.10.1-3.el4.i386.rpm
libraw1394_8-1.2.1-9_10.el4.i386.rpm
libavc1394-0.4.1-4.el4.i386.rpm
libavc1394-devel-0.4.1-4.el4.i386.rpm
libiec61883_0-1.1.0-0_9.el4.at.i386.rpm
libiec61883-devel-1.1.0-0_9.el4.at.i386.rpm
libfreebob-1.0.0-3.el4.at.i386.rpm
libfreebob-devel-1.0.0-3.el4.at.i386.rpm
jack-audio-connection-kit-0.102.20-3.el4.at.i386.rpm
jack-audio-connection-kit-devel-0.102.20-3.el4.at.i386.rpm
zvbi-0.2.25-1.el4.rf.i386.rpm
zvbi-devel-0.2.25-1.el4.rf.i386.rpm
taglib-1.4-5.1.el4.at.i386.rpm
taglib-devel-1.4-5.1.el4.at.i386.rpm
libmusicbrainz-2.0.2-11.el4.test.i386.rpm
libmusicbrainz-devel-2.0.2-11.el4.test.i386.rpm
libdvbpsi-0.1.5-2.el4.rf.i386.rpm
libdvbpsi-devel-0.1.5-2.el4.rf.i386.rpm
fribidi-0.10.4-6.i386.rpm
fribidi-devel-0.10.4-6.i386.rpm
gnutls-1.0.20-3.i386.rpm
gnutls-devel-1.0.20-3.i386.rpm
hal-0.4.2-1.EL4.i386.rpm
hal-devel-0.4.2-1.EL4.i386.rpm
hal-gnome-0.4.2-1.EL4.i386.rpm
speex-1.0.4.4.i386.rpm
speex-devel-1.0.4.4.i386.rpm
speex-debuginfo-1.0.4-4.i386.rpm
mozilla-***-devel (Success version which I did: 1.7.12-1.4.2)
firefox-XXXXX
Note: Some time we had warning message if we not install following packages.
faad2-2.5-2.el4.rf.i386.rpm
faad2-devel-2.5-2.el4.rf.i386.rpm
portaudio-18_1-3.el4.at.i386.rpm
portaudio-debuginfo-18_1-3.el4.91.at.i386.rpm
lua-5.0.2-1.el4.rf.i386.rpm
lua-devel-5.0.2-1.el4.rf.i386.rpm
********************
- VLC compile
# mkdir linux
# cd linux
#
# ../configure --enable-snapshot --enable-debug --enable-dbus-control --enable-shared --enable-lirc --with-x509-ca-bundle=/etc/ssl/certs/ca-certificates.crt --with-live555-tree=../extras/live --with-ffmpeg-tree=../extras/ffmpeg --enable-taglib --enable-v4l --enable-cddax --enable-dvb --enable-vcdx --enable-realrtsp --enable-svg --enable-dvdread --enable-dv --enable-theora --enable-faad --enable-twolame --enable-real --enable-flac --enable-tremor --with-ffmpeg-mp3lame --with-faac --enable-ncurses --enable-aa --enable-caca --enable-esd --enable-portaudio --enable-jack --enable-xosd --enable-galaktos --enable-goom --enable-ggi --disable-cddax --disable-vcdx --disable-dirac --enable-x264 --disable-xvmc --enable-pvr --enable-loader --enable-audioscrobbler --enable-libcddb --enable-libcdio --enable-opencv --enable-nls --disable-notify --with-libmpeg2-tree=../extras/mpeg2dec-0.4.1 --disable-speex --disable-lua --disable-fluidsynth --disable-gnutls --disable-bonjour --enable-old-dbus --with-included-gettext --enable-skins2 --enable-wxwidgets --enable-mozilla
#
# make
# make install
# ldconfig
Note: For Mozilla and Firefox plugin manage:
# cp -rp mozilla/.libs*.soT /root/.mozilla/plugin/
- Execute VLC
# vlc
# vlc test-movie.file
URL syntax:
[file://]filename Plain media file
http://ip:port/file HTTP URL
ftp://ip:port/file FTP URL
mms://ip:port/file MMS URL
screen:// Screen capture
[dvd://][device][@raw_device] DVD device
[vcd://][device] VCD device
[cdda://][device] Audio CD device
udp:[[
Stream in HTTP:
* On the server, run:
* On the client(s), run:
Using the HTTP, downloading video stream:
* On the server, start HTTP apache server:
* On the client(s), run VLC with video file:
No comments:
Post a Comment