Build video enc env

From M1Research

Revision as of 14:20, 25 June 2006 by Verem (Talk | contribs)
Jump to: navigation, search

Contents

System prerequisites

Software building

lame

An MP3 encoder and graphical frame analyzer. http://freshmeat.net/projects/lame/

gzip -cd lame-3.97b2.tar.gz | tar xvf -
cd lame-3.97
./configure --prefix=/usr/local/enctools
make; make install
cd ..

ogg

Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs. As with all Xiph.org technology is it an open format free for anyone to use. [ http://www.xiph.org/ogg/ http://www.xiph.org/ogg/]

gzip -cd libogg-1.1.3.tar.gz | tar xvf -
cd libogg-1.1.3
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

vorbis

Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format http://www.xiph.org/vorbis/

gzip -cd libvorbis-1.1.2.tar.gz | tar xvf -
cd libvorbis-1.1.2
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/enctools/lib ./configure --prefix=/usr/local/enctools
make ; make install
cd ..

theora

Video codec http://theora.org/

gzip -cd libtheora-1.0alpha6.tar.gz | tar xvf - cd libtheora-1.0alpha6 ./configure --prefix=/usr/local/enctools --with-ogg=/usr/local/enctools --with-vorbis=/usr/local/enctools make ; make install cd ..

flac

Free Lossless Audio Codec http://flac.sourceforge.net/

gzip -cd flac-1.1.2.tar.gz | tar xvf -
cd flac-1.1.2
./configure --prefix=/usr/local/enctools --with-ogg=/usr/local/enctools
make ; make install
cd ..

speex

Speex is an Open Source/Free Software patent-free audio compression format designed for speech. The Speex Project aims to lower the barrier of entry for voice applications by providing a free alternative to expensive proprietary speech codecs. Moreover, Speex is well-adapted to Internet applications and provides useful features that are not present in most other codecs. Finally, Speex is part of the GNU Project and is available under the Xiph.org variant of the BSD license. http://speex.org/

gzip -cd speex-1.0.5.tar.gz | tar xvf -
cd speex-1.0.5
./configure --prefix=/usr/local/enctools --with-ogg-dir=/usr/local/enctools
make ; make install
cd ..

faad2

AAC decoder library | http://www.audiocoding.com/modules/mydownloads/ FC4,FC5 required patch for compiling package faad2.mp4ff_track_add.patch


Compilation process:

mkdir faad2
cd faad2
gzip -cd ../faad2-15092004.tar.gz | tar xvf -
patch -p1 < ../faad2.mp4ff_track_add.patch
autoreconf -vif
./configure --prefix=/usr/local/enctools --with-mp4v2
make ; make install
cd ..

faac

AAC endecoder library | http://www.audiocoding.com/modules/mydownloads/

gzip -cd faac-18102004.tar.gz | tar xvf -
cd faac
autoreconf -vif
./configure --prefix=/usr/local/enctools --with-mp4v2
make ; make install
cd ..

xvidcore

XviD is an ISO MPEG-4 compliant video codec, so designed to compress/decompress digital video. It's a open source project, which is developed and maintained by a handful of skilled and interested engineers from all over the world. http://www.xvid.org/

gzip -cd xvidcore-1.1.0.tar.gz | tar xvf -
cd xvidcore-1.1.0
cd build/generic
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

x264

x264 - a free h264/avc encoder http://developers.videolan.org/x264.html

bzip2 -cd x264-snapshot-20060619-2245.tar.bz2 | tar xvf -
cd x264-snapshot-20060619-2245
./configure --prefix=/usr/local/enctools --enable-shared
make ; make install
cd ..

a52dec

liba52 - a free ATSC A/52 stream decoder http://liba52.sourceforge.net/

gzip -cd a52dec-0.7.4.tar.gz | tar xvf -
cd a52dec-0.7.4
./configure --prefix=/usr/local/enctools
make ; make install

libdv

Quasar DV Codec: libdv [1]

gzip -cd libdv-0.104.tar.gz | tar xvf -
cd libdv-0.104
./configure --disable-gtk --disable-xv --prefix=/usr/local/enctools
make ; make install
cd ..

libraw1394

The Linux kernel's IEEE 1394 subsystem provides access to the raw 1394 bus through the raw1394 module. [ http://www.linux1394.org/ http://www.linux1394.org/]

gzip -cd libraw1394-1.2.1.tar.gz | tar xvf -
cd libraw1394-1.2.1
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

libdc1394

libdc1394 is a library that is intended to provide a high level programming interface for application developers who wish to control IEEE 1394 based cameras that conform to the 1394-based Digital Camera Specification http://sourceforge.net/projects/libdc1394

gzip -cd libdc1394-1.2.1.tar.gz | tar xvf -
cd libdc1394-1.2.1
CPPFLAGS="-I/usr/local/enctools/include/"; export CPPFLAGS
CFLAGS="-I/usr/local/enctools/include/"; export CFLAGS
LDFLAGS="-L/usr/local/enctools/lib/"; export LDFLAGS
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

libavc1394

libavc1394 is a programming interface for the 1394 Trade Association AV/C (Audio/Video Control) Digital Interface Command Set. | http://sourceforge.net/projects/libavc1394/

gzip -cd libavc1394-0.5.3.tar.gz | tar xvf -
cd libavc1394-0.5.3
LIBRAW1394_CFLAGS="-I/usr/local/enctools/include/" \
LIBRAW1394_LIBS="-L/usr/local/enctools/lib/ -lraw1394" \
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

ffmpeg

FFmpeg is a complete solution to record, convert and stream audio and video. It includes libavcodec, the leading audio/video codec library. http://ffmpeg.mplayerhq.hu/

Compiling required patch ffmpeg.faad2.faacDecOpen-NeAACDecOpen.patch due to faac namespace change (faacDecOpen -> NeAACDecOpen):


Building procedure:

bzip2 -cd ffmpeg-r5504.tar.bz2 | tar xvf -
cd ffmpeg

patch -p1 < ../ffmpeg.faad2.faacDecOpen-NeAACDecOpen.patch

PATH=$PATH:/usr/local/enctools/bin ./configure --prefix=/usr/local/enctools \
--enable-mp3lame --enable-libogg --enable-vorbis --enable-theora \
--enable-faad --enable-faadbin --enable-faac --enable-xvid --enable-x264 \
--enable-a52 --enable-a52bin --enable-amr_nb --enable-amr_wb --enable-dc1394 \
--enable-gpl --enable-pp --enable-shared \
--extra-cflags="-I/usr/local/enctools/include" --extra-ldflags="-L/usr/local/enctools/lib"

AMR support required additional sources - ffmpeg writes some notes about this:

AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204
V5.1.0 from
http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
and extracted the source to libavcodec/amrwb_float

AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104
REL-5 V5.1.0 from
http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip
and extracted the source to libavcodec/amr_float
If you try this on alpha, you may need to change Word32 to int in amr/typedef.h

Download theese files and put into source contribution directory, put the source into mentioned place:

mkdir -p libavcodec/amrwb_float
unzip ../26204-510.zip -d libavcodec/amrwb_float
unzip libavcodec/amrwb_float/26204-510_ANSI-C_source_code.zip -d libavcodec/amrwb_float

mkdir -p libavcodec/amr_float
unzip ../26104-510.zip -d libavcodec/amr_float
unzip libavcodec/amr_float/26104-510_ANSI_C_source_code.zip -d libavcodec/amr_float

After you put amr sources start ffmpeg building:

make ; make install
cd ...

live555

LIVE555 Streaming Media (rtsp, rtp support) [ http://live555.com/liveMedia/ http://live555.com/liveMedia/]

gzip -cd live.2006.05.17.tar.gz | tar xvf -
cd live
./genMakefiles linux
make 
cd ..

libmad

A high-quality MPEG audio decoder. http://freshmeat.net/projects/libmad/

gzip -cd libmad-0.15.1b.tar.gz | tar xvf -
cd libmad-0.15.1b
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

libmpeg2

libmpeg2 - a free MPEG-2 video stream decoder. http://libmpeg2.sourceforge.net/

gzip -cd mpeg2dec-0.4.0b.tar.gz | tar xvf -
cd mpeg2dec-0.4.0
./configure --prefix=/usr/local/enctools
make
make install
cd ..

fribidi

GNU FriBidi is an implementation of the [WWW]Unicode Bidirectional Algorithm (bidi). | http://fribidi.org/wiki/

gzip -cd fribidi-0.10.7.tar.gz | tar xvf -
cd fribidi-0.10.7
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

VLC

VLC - the cross-platform media player and streaming server. http://www.videolan.org/vlc/

fix file /usr/local/mp4/include/libraw1394/raw1394.h, comment out line 43:

--skipped--
/* typedef u_int8_t  byte_t; */
--skipped--
this avoid "error: redefinition of typedef ‘byte_t’"

Building procedure:

CPPFLAGS="-I/usr/local/mp4/include/"; export CPPFLAGS
CFLAGS="-I/usr/local/mp4/include/"; export CFLAGS
LDFLAGS="-L/usr/local/mp4/lib/"; export LDFLAGS
./configure  --prefix=/usr/local/mp4 \
--enable-dv \
--enable-livedotcom --with-livedotcom-tree=../live \
--enable-v4l \
--enable-ogg --enable-mad --enable-faad --enable-a52 --enable-flac \
--enable-libmpeg2 --enable-vorbis --enable-speex --enable-theora \
--enable-png --enable-x264 \
--enable-freetype --enable-fribidi --enable-libxml2 \
--enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
--with-ffmpeg-vorbis --with-ffmpeg-theora --with-ffmpeg-ogg \
--disable-wxwidgets --disable-skins2

make ; make install

MPEG4IP

MPEG4IP: Open Source, Open Standards, Open Streaming. http://www.mpeg4ip.net/ Alsa support propre linking require patch mpeg4ip.alsa_linking_fix.patch:


Configuring procedure:

CPPFLAGS="-I/usr/local/mp4/include/"; export CPPFLAGS
CFLAGS="-I/usr/local/mp4/include/"; export CFLAGS
LDFLAGS="-L/usr/local/mp4/lib/"; export LDFLAGS
gzip -cd mpeg4ip-1.5.0.1.tar.gz | tar xvf -
patch -p1 < ../mpeg4ip.alsa_linking_fix.patch
./bootstrap  --prefix=/usr/local/mp4 \
--enable-server \
--enable-player \
--enable-mp4live \
--enable-mp4live-alsa \
--enable-ffmpeg
After configuring mpeg4ip reports:
Mp4live encoder report:
    ffmpeg encoder is installed
    xvid encoder is installed
    x264 encoder is installed
    lame encoder is installed
    faac encoder is installed 

Build mpeg4ip:

make ; make install; cd .. 
Personal tools