Build video enc env

From M1Research

(Difference between revisions)
Jump to: navigation, search
(faad2)
(MPEG4IP)
 
(47 intermediate revisions not shown)
Line 1: Line 1:
-
<b>!!!! WARNING !!!!</b> Article migrated to [http://streaming411.com/wiki/index.php?title=Building_encoding_tools_from_scratch Building encoding tools from scratch] at [http://streaming411.com/wiki/ streaming411.com]
+
Article mirrored  at [http://streaming411.com/wiki/index.php?title=Building_encoding_tools_from_scratch Building encoding tools from scratch] at [http://streaming411.com/wiki/ streaming411.com]
== System prerequisites ==
== System prerequisites ==
Line 26: Line 26:
== Software building ==
== Software building ==
-
=== lame ===
+
=== a52dec ===
-
An MP3 encoder and graphical frame analyzer. [http://lame.sourceforge.net/ http://lame.sourceforge.net/]
+
liba52 - a free ATSC A/52 stream decoder [http://liba52.sourceforge.net/ http://liba52.sourceforge.net/]
<pre>
<pre>
-
gzip -cd lame-3.97.tar.gz | tar xvf -
+
gzip -cd a52dec-0.7.4.tar.gz | tar xvf -
-
cd lame-3.97
+
cd a52dec-0.7.4
-
./configure --prefix=/usr/local/enctools
+
./configure --prefix=/usr/local/enctools --enable-shared=yes
-
make; make install
+
make ; make install
-
cd ..
+
</pre>
</pre>
-
=== ogg ===
+
=== amr ===
-
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/]
+
Download amrwb and amrnb source from [http://www.penguin.cz/~utx/amr http://www.penguin.cz/~utx/amr]
 +
 
 +
Compile and install:
<pre>
<pre>
-
gzip -cd libogg-1.1.3.tar.gz | tar xvf -
+
bzip2 -cd amrnb-7.0.0.0.tar.bz2 | tar xf -
-
cd libogg-1.1.3
+
cd amrnb-7.0.0.0
./configure --prefix=/usr/local/enctools
./configure --prefix=/usr/local/enctools
make ; make install
make ; make install
cd ..
cd ..
-
</pre>
 
-
=== vorbis ===
+
 
-
Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format [http://www.xiph.org/vorbis/ http://www.xiph.org/vorbis/]
+
bzip2 -cd amrwb-7.0.0.2.tar.bz2 | tar xf -
-
<pre>
+
cd amrwb-7.0.0.2
-
gzip -cd libvorbis-1.1.2.tar.gz | tar xvf -
+
./configure --prefix=/usr/local/enctools
-
cd libvorbis-1.1.2
+
-
./configure --with-ogg=/usr/local/enctools --prefix=/usr/local/enctools
+
make ; make install
make ; make install
cd ..
cd ..
</pre>
</pre>
-
=== theora ===
+
=== faac ===
-
Video codec [http://theora.org/ http://theora.org/]
+
AAC endecoder library [http://www.audiocoding.com/modules/mydownloads/ http://www.audiocoding.com/modules/mydownloads/]
<pre>
<pre>
-
gzip -cd libtheora-1.0alpha7.tar.gz | tar xvf -
+
gzip -cd faac-1.25.tar.gz | tar xf -
-
cd libtheora-1.0alpha7
+
cd faac
-
./configure --prefix=/usr/local/enctools --with-ogg=/usr/local/enctools --with-vorbis=/usr/local/enctools
+
-
make ; make install
+
-
cd ..
+
</pre>
</pre>
 +
To avoid warning during bootstrap:
 +
<pre>
 +
utoreconf: running: aclocal --force
 +
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</pre>
 +
and error during configuring:
 +
<pre>
 +
config.status: creating \
 +
.infig.status: error: cannot find input file: \</pre>
 +
Apply patches discussed in [http://www.audiocoding.com/modules/newbb/viewtopic.php?topic_id=537&forum=3 audiocoding forum]:
 +
*[[media:faac.bootstrap.patch]]
 +
<pre>
 +
diff -uNr faac.origin/configure.in faac/configure.in
 +
--- faac.origin/configure.in    2006-08-13 17:17:26.000000000 +0300
 +
+++ faac/configure.in  2007-04-17 14:14:38.000000000 +0300
 +
@@ -7,7 +7,7 @@
 +
 +
AC_ARG_WITH( mp4v2,  [  --with-mp4v2            compile libmp4v2],WITHMP4V2=$withval, WITHMP4V2=yes)
-
=== flac ===
+
-AC_DEFUN(MY_DEFINE, [ AC_DEFINE($1, 1, [define if needed]) ])
-
Free Lossless Audio Codec [http://flac.sourceforge.net/ http://flac.sourceforge.net/]
+
+AC_DEFUN([MY_DEFINE], [ AC_DEFINE($1, 1, [define if needed]) ])
 +
 
 +
CFLAGS=${CFLAGS:-"-O2 -Wall"}
 +
 
 +
@@ -66,6 +66,11 @@
 +
        #include <netinet/in.h>])
 +
AC_CHECK_MEMBERS(fpos_t.__pos,,, [#include <stdio.h>])
 +
 
 +
-AC_OUTPUT(common/Makefile common/mp4v2/Makefile \
 +
-          libfaac/Makefile frontend/Makefile \
 +
-          include/Makefile Makefile)
 +
+AC_CONFIG_FILES(common/Makefile)
 +
+AC_CONFIG_FILES(common/mp4v2/Makefile)
 +
+AC_CONFIG_FILES(libfaac/Makefile)
 +
+AC_CONFIG_FILES(frontend/Makefile)
 +
+AC_CONFIG_FILES(include/Makefile)
 +
+AC_CONFIG_FILES(Makefile)
 +
+
 +
+AC_OUTPUT</pre>
 +
*[[media:faac.pipe.patch]]
<pre>
<pre>
-
gzip -cd flac-1.1.4.tar.gz | tar xvf -
+
diff -uNr faac.origin/frontend/main.c faac/frontend/main.c
-
cd flac-1.1.4
+
--- faac.origin/frontend/main.c 2004-12-08 13:07:17.000000000 +0200
-
./configure --prefix=/usr/local/enctools --with-ogg=/usr/local/enctools
+
+++ faac/frontend/main.c        2007-04-17 14:45:01.000000000 +0300
-
make ; make install
+
@@ -918,7 +918,15 @@
-
cd ..
+
    {
-
</pre>
+
#endif
-
 
+
        /* open the aac output file */
-
=== speex ===
+
-        outfile = fopen(aacFileName, "wb");
-
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/ http://speex.org/]
+
+        if(('-' == aacFileName[0])&&(0 == aacFileName[1]))
 +
+        {
 +
+            outfile = stdout;
 +
+        }
 +
+        else
 +
+        {
 +
+            outfile = fopen(aacFileName, "wb");
 +
+        };
 +
+
 +
        if (!outfile)
 +
        {
 +
            fprintf(stderr, "Couldn't create output file %s\n", aacFileName);</pre>
 +
Bootstrap, configure and compile:
<pre>
<pre>
-
gzip -cd speex-1.0.5.tar.gz | tar xvf -
+
patch -p1 < faac.bootstrap.patch
-
cd speex-1.0.5
+
patch -p1 < faac.pipe.patch
-
./configure --prefix=/usr/local/enctools --with-ogg-dir=/usr/local/enctools
+
autoreconf -vif
 +
./configure --prefix=/usr/local/enctools --with-mp4v2
make ; make install
make ; make install
cd ..
cd ..
Line 91: Line 137:
gzip -cd faad2-2.5.tar.gz | tar xf -
gzip -cd faad2-2.5.tar.gz | tar xf -
cd faad2
cd faad2
 +
mkdir -p plugins/bmp
</pre>
</pre>
For successfull compile (avoid <b>conditional "HAVE_BMP" was never defined</b>) apply [[Media:faad2.no_beep_media_player.patch]] patch discussed in [http://www.audiocoding.com/modules/newbb/viewtopic.php?topic_id=487&forum=2 audiocoding forum]:
For successfull compile (avoid <b>conditional "HAVE_BMP" was never defined</b>) apply [[Media:faad2.no_beep_media_player.patch]] patch discussed in [http://www.audiocoding.com/modules/newbb/viewtopic.php?topic_id=487&forum=2 audiocoding forum]:
Line 108: Line 155:
  if test x$WITHDRM = xyes; then
  if test x$WITHDRM = xyes; then
</pre>
</pre>
-
And now you can compile
+
And now you can bootstrap (ignore warnings) and compile:
<pre>
<pre>
 +
patch -p1 < faad2.no_beep_media_player.patch
autoreconf -vif
autoreconf -vif
./configure --prefix=/usr/local/enctools
./configure --prefix=/usr/local/enctools
Line 116: Line 164:
</pre>
</pre>
-
=== faac ===
+
=== lame ===
-
AAC endecoder library [http://www.audiocoding.com/modules/mydownloads/ http://www.audiocoding.com/modules/mydownloads/]
+
An MP3 encoder and graphical frame analyzer. [http://lame.sourceforge.net/ http://lame.sourceforge.net/]
<pre>
<pre>
-
gzip -cd faac-18102004.tar.gz | tar xvf -
+
gzip -cd lame-3.97.tar.gz | tar xvf -
-
cd faac
+
cd lame-3.97
-
autoreconf -vif
+
./configure --prefix=/usr/local/enctools
-
./configure --prefix=/usr/local/enctools --with-mp4v2
+
make; make install
-
make ; make install
+
cd ..
cd ..
</pre>
</pre>
-
=== xvidcore ===
+
=== ogg ===
-
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/ http://www.xvid.org/]
+
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/]
<pre>
<pre>
-
gzip -cd xvidcore-1.1.0.tar.gz | tar xvf -
+
gzip -cd libogg-1.1.3.tar.gz | tar xvf -
-
cd xvidcore-1.1.0
+
cd libogg-1.1.3
-
cd build/generic
+
./configure --prefix=/usr/local/enctools
./configure --prefix=/usr/local/enctools
make ; make install
make ; make install
Line 138: Line 184:
</pre>
</pre>
-
=== x264 ===
+
=== vorbis ===
-
x264 - a free h264/avc encoder [http://developers.videolan.org/x264.html http://developers.videolan.org/x264.html]
+
Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format [http://www.xiph.org/vorbis/ http://www.xiph.org/vorbis/]
<pre>
<pre>
-
bzip2 -cd x264-snapshot-20060619-2245.tar.bz2 | tar xvf -
+
gzip -cd libvorbis-1.2.0.tar.gz | tar xvf -
-
cd x264-snapshot-20060619-2245
+
cd libvorbis-1.2.0
-
./configure --prefix=/usr/local/enctools --enable-shared
+
./configure --with-ogg=/usr/local/enctools --prefix=/usr/local/enctools
make ; make install
make ; make install
cd ..
cd ..
</pre>
</pre>
-
=== a52dec ===
+
=== theora ===
-
liba52 - a free ATSC A/52 stream decoder [http://liba52.sourceforge.net/ http://liba52.sourceforge.net/]
+
Video codec [http://theora.org/ http://theora.org/]
<pre>
<pre>
-
gzip -cd a52dec-0.7.4.tar.gz | tar xvf -
+
gzip -cd libtheora-1.0beta1.tar.gz | tar xvf -
-
cd a52dec-0.7.4
+
cd libtheora-1.0beta1
-
./configure --prefix=/usr/local/enctools
+
./configure --prefix=/usr/local/enctools --with-ogg=/usr/local/enctools --with-vorbis=/usr/local/enctools
make ; make install
make ; make install
 +
cd ..
</pre>
</pre>
-
=== libdv ===
+
=== x264 ===
-
Quasar DV Codec: libdv [http://libdv.sourceforge.net/ http://libdv.sourceforge.net/]
+
x264 - a free h264/avc encoder [http://developers.videolan.org/x264.html http://developers.videolan.org/x264.html]
-
 
+
Download SVN snapshot:
-
NB: FC5 require CVS version. See [http://sourceforge.net/cvs/?group_id=4393 http://sourceforge.net/cvs/?group_id=4393]
+
-
 
+
<pre>
<pre>
-
gzip -cd libdv-0.104.tar.gz | tar xvf -
+
svn co svn://svn.videolan.org/x264/trunk x264
-
cd libdv-0.104
+
</pre>
-
./configure --disable-gtk --disable-xv --prefix=/usr/local/enctools
+
Configure and compile (do not forget about <code>--enable-pthread</code>)
 +
<pre>
 +
cd x264
 +
./configure --prefix=/usr/local/enctools --enable-shared --enable-pthread
make ; make install
make ; make install
cd ..
cd ..
</pre>
</pre>
-
=== libraw1394 ===
+
=== xvidcore ===
-
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/]
+
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/ http://www.xvid.org/]
<pre>
<pre>
-
gzip -cd libraw1394-1.2.1.tar.gz | tar xvf -
+
gzip -cd xvidcore-1.1.3.tar.gz | tar xvf -
-
cd libraw1394-1.2.1
+
cd xvidcore-1.1.3
 +
cd build/generic
./configure --prefix=/usr/local/enctools
./configure --prefix=/usr/local/enctools
make ; make install
make ; make install
Line 180: Line 229:
</pre>
</pre>
-
=== libdc1394 ===
+
=== ffmpeg ===
-
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 http://sourceforge.net/projects/libdc1394]
+
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/ http://ffmpeg.mplayerhq.hu/]
-
On FC5 to avoid <code>'CLK_TCK' undeclared</code> error message during compiling we should apply patch <code>libdc1394-1.2.1.CLOCKS_PER_SEC.patch</code>: (FC4 do not require patch)<pre>
+
Request a ffmpeg svn snapshot (this moment i have r10593):
-
diff -uNr libdc1394-1.2.1.origin/examples/grab_partial_image.c libdc1394-1.2.1/examples/grab_partial_image.c
+
<pre>
-
--- libdc1394-1.2.1.origin/examples/grab_partial_image.c        2005-08-18 03:03:06.000000000 -0400
+
svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg</pre>
-
+++ libdc1394-1.2.1/examples/grab_partial_image.c      2006-06-29 12:09:12.000000000 -0400
+
-
@@ -218,7 +218,7 @@
+
-
    /*---------------------------------------------------------------------
+
-
      *  output elapsed time
+
-
      *---------------------------------------------------------------------*/
+
-
-    elapsed_time = (float)(times(&tms_buf) - start_time) / CLK_TCK;
+
-
+    elapsed_time = (float)(times(&tms_buf) - start_time) / CLOCKS_PER_SEC;
+
-
    printf( "got frame %d. elapsed time: %g sec ==> %g frames/second\n",
+
-
            i, elapsed_time, (float)i / elapsed_time);
+
-
  }
+
-
</pre>
+
-
Building process:
+
Configuring procedure:
<pre>
<pre>
-
gzip -cd libdc1394-1.2.1.tar.gz | tar xvf -
+
cd ffmpeg
-
cd libdc1394-1.2.1
+
-
patch -p1 < ../libdc1394-1.2.1.CLOCKS_PER_SEC.patch
+
PATH=$PATH:/usr/local/enctools/bin \
-
 
+
./configure          \
-
CPPFLAGS="-I/usr/local/enctools/include/"; export CPPFLAGS
+
--prefix=/usr/local/enctools \
-
CFLAGS="-I/usr/local/enctools/include/"; export CFLAGS
+
--enable-liba52      \
-
LDFLAGS="-L/usr/local/enctools/lib/"; export LDFLAGS
+
--enable-libamr_nb  \
-
./configure --prefix=/usr/local/enctools
+
--enable-libamr_wb  \
 +
--enable-libfaac    \
 +
--enable-libfaad    \
 +
--enable-libmp3lame  \
 +
--enable-libogg      \
 +
--enable-libvorbis  \
 +
--enable-libtheora  \
 +
--enable-libxvid    \
 +
--enable-libx264    \
 +
--enable-gpl        \
 +
--enable-pp          \
 +
--enable-shared      \
 +
--enable-pthreads    \
 +
--extra-cflags="-I/usr/local/enctools/include" \
 +
--extra-ldflags="-L/usr/local/enctools/lib"
make ; make install
make ; make install
Line 215: Line 266:
</pre>
</pre>
-
=== libavc1394 ===
+
=== libmad ===
-
libavc1394 is a programming interface for the 1394 Trade Association AV/C (Audio/Video Control) Digital Interface Command Set. [http://sourceforge.net/projects/libavc1394/ http://sourceforge.net/projects/libavc1394/]
+
A high-quality MPEG audio decoder. [http://freshmeat.net/projects/libmad/ http://freshmeat.net/projects/libmad/]
<pre>
<pre>
-
gzip -cd libavc1394-0.5.3.tar.gz | tar xvf -
+
gzip -cd libmad-0.15.1b.tar.gz | tar xvf -
-
cd libavc1394-0.5.3
+
cd libmad-0.15.1b
-
LIBRAW1394_CFLAGS="-I/usr/local/enctools/include/" \
+
-
LIBRAW1394_LIBS="-L/usr/local/enctools/lib/ -lraw1394" \
+
./configure --prefix=/usr/local/enctools
./configure --prefix=/usr/local/enctools
make ; make install
make ; make install
Line 227: Line 276:
</pre>
</pre>
-
=== ffmpeg ===
+
=== libmpeg2 ===
-
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/ http://ffmpeg.mplayerhq.hu/]
+
libmpeg2 - a free MPEG-2 video stream decoder. [http://libmpeg2.sourceforge.net/ http://libmpeg2.sourceforge.net/]
-
 
+
-
Compiling required patch <code>ffmpeg.faad2.faacDecOpen-NeAACDecOpen.patch</code> due to faac namespace change (faacDecOpen -> NeAACDecOpen):
+
<pre>
<pre>
-
diff -uNr ffmpeg.origin/configure ffmpeg/configure
+
gzip -cd mpeg2dec-0.4.1.tar.gz | tar xvf -
-
--- ffmpeg.origin/configure    2006-06-20 15:51:34.000000000 +0300
+
cd mpeg2dec-0.4.1
-
+++ ffmpeg/configure   2006-06-23 00:40:54.000000000 +0300
+
./configure --prefix=/usr/local/enctools
-
@@ -1178,7 +1178,7 @@
+
make
-
enabled libogg  && require libogg ogg/ogg.h ogg_sync_init -logg
+
make install
-
enabled vorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc
+
cd ..
-
enabled theora  && require libtheora theora/theora.h theora_info_init -ltheora
+
-
-enabled faad    && require libfaad faad.h faacDecOpen -lfaad
+
-
+enabled faad    && require libfaad faad.h NeAACDecOpen -lfaad
+
-
enabled xvid    && require XviD xvid.h xvid_global -lxvidcore
+
-
enabled x264    && require x264 x264.h x264_encoder_open -lx264
+
-
enabled dc1394  && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
+
</pre>
</pre>
-
Configuring procedure:
+
=== flac ===
 +
Free Lossless Audio Codec [http://flac.sourceforge.net/ http://flac.sourceforge.net/]
<pre>
<pre>
-
bzip2 -cd ffmpeg-r5504.tar.bz2 | tar xvf -
+
gzip -cd flac-1.2.1.tar.gz | tar xvf -
-
cd ffmpeg
+
cd flac-1.2.1
-
 
+
./configure --prefix=/usr/local/enctools --with-ogg=/usr/local/enctools
-
patch -p1 < ../ffmpeg.faad2.faacDecOpen-NeAACDecOpen.patch
+
make ; make install
-
 
+
cd ..
-
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"
+
</pre>
</pre>
-
AMR support required additional sources - ffmpeg writes some notes about this:
 
-
<pre>
 
-
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
+
=== speex ===
-
REL-5 V5.1.0 from
+
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/ http://speex.org/]
-
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
+
-
</pre>
+
-
 
+
-
Download theese files and put into source contribution directory, put the source into mentioned place:
+
-
<pre>
+
-
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
+
-
</pre>
+
-
 
+
-
After you put amr sources start ffmpeg building:
+
<pre>
<pre>
 +
gzip -cd speex-1.2beta2.tar.gz | tar xvf -
 +
cd speex-1.2beta2
 +
./configure --prefix=/usr/local/enctools --with-ogg-dir=/usr/local/enctools
make ; make install
make ; make install
cd ..
cd ..
</pre>
</pre>
-
=== live555 ===
+
=== libdv ===
-
LIVE555 Streaming Media (rtsp, rtp support) [http://live555.com/liveMedia/ http://live555.com/liveMedia/]
+
Quasar DV Codec: libdv [http://libdv.sourceforge.net/ http://libdv.sourceforge.net/]
<pre>
<pre>
-
gzip -cd live.2006.05.17.tar.gz | tar xvf -
+
gzip -cd libdv-1.0.0.tar.gz | tar xvf -
-
cd live
+
cd libdv-1.0.0
-
./genMakefiles linux
+
./configure --disable-gtk --disable-xv --prefix=/usr/local/enctools
-
make  
+
make ; make install
cd ..
cd ..
</pre>
</pre>
-
=== libmad ===
+
=== libraw1394 ===
-
A high-quality MPEG audio decoder. [http://freshmeat.net/projects/libmad/ http://freshmeat.net/projects/libmad/]
+
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/]
<pre>
<pre>
-
gzip -cd libmad-0.15.1b.tar.gz | tar xvf -
+
gzip -cd libraw1394-1.2.1.tar.gz | tar xvf -
-
cd libmad-0.15.1b
+
cd libraw1394-1.2.1
./configure --prefix=/usr/local/enctools
./configure --prefix=/usr/local/enctools
make ; make install
make ; make install
Line 311: Line 327:
</pre>
</pre>
-
=== libmpeg2 ===
+
=== libavc1394 ===
-
libmpeg2 - a free MPEG-2 video stream decoder. [http://libmpeg2.sourceforge.net/ http://libmpeg2.sourceforge.net/]
+
libavc1394 is a programming interface for the 1394 Trade Association AV/C (Audio/Video Control) Digital Interface Command Set. [http://sourceforge.net/projects/libavc1394/ http://sourceforge.net/projects/libavc1394/]
<pre>
<pre>
-
gzip -cd mpeg2dec-0.4.0b.tar.gz | tar xvf -
+
gzip -cd libavc1394-0.5.3.tar.gz | tar xvf -
-
cd mpeg2dec-0.4.0
+
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
./configure --prefix=/usr/local/enctools
-
make
+
make ; make install
-
make install
+
cd ..
cd ..
</pre>
</pre>
-
=== fribidi ===
+
 
-
GNU FriBidi is an implementation of the [WWW]Unicode Bidirectional Algorithm (bidi). [http://fribidi.org/wiki/ http://fribidi.org/wiki/]
+
=== live555 ===
 +
LIVE555 Streaming Media (rtsp, rtp support) [http://live555.com/liveMedia/ http://live555.com/liveMedia/]
<pre>
<pre>
-
gzip -cd fribidi-0.10.7.tar.gz | tar xvf -
+
gzip -cd live.2007.08.03a.tar.gz | tar xf -
-
cd fribidi-0.10.7
+
cd live
-
./configure --prefix=/usr/local/enctools
+
./genMakefiles linux
-
make ; make install
+
make  
cd ..
cd ..
</pre>
</pre>
 +
folder <code>live</code> - it will be used by VLC in next step
=== VLC ===
=== VLC ===
Line 340: Line 359:
--skipped--</pre>  
--skipped--</pre>  
-
Building procedure:
 
<pre>
<pre>
-
bzip2 -cd vlc-0.8.5.tar.bz2 | tar xvf -
+
bzip2 -cd vlc-0.8.6c.tar.bz2 | tar xvf -
-
cd vlc-0.8.5
+
cd vlc-0.8.6c
 +
</pre>
 +
Building procedure:
 +
<pre>
CPPFLAGS="-I/usr/local/enctools/include/"; export CPPFLAGS
CPPFLAGS="-I/usr/local/enctools/include/"; export CPPFLAGS
CFLAGS="-I/usr/local/enctools/include/"; export CFLAGS
CFLAGS="-I/usr/local/enctools/include/"; export CFLAGS
LDFLAGS="-L/usr/local/enctools/lib/"; export LDFLAGS
LDFLAGS="-L/usr/local/enctools/lib/"; export LDFLAGS
 +
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/enctools/lib/pkgconfig ; export PKG_CONFIG_PATH
 +
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/enctools/lib ; export LD_LIBRARY_PATH
-
ldconfig
+
./configure  \
-
 
+
--prefix=/usr/local/enctools \
-
./configure  --prefix=/usr/local/enctools \
+
--enable-dv \
--enable-dv \
-
--enable-livedotcom --with-livedotcom-tree=../live \
+
--enable-live555 --with-live555-tree=../live \
--enable-v4l \
--enable-v4l \
--enable-ogg --enable-mad --enable-faad --enable-a52 --enable-flac \
--enable-ogg --enable-mad --enable-faad --enable-a52 --enable-flac \
--enable-libmpeg2 --enable-vorbis --enable-speex --enable-theora \
--enable-libmpeg2 --enable-vorbis --enable-speex --enable-theora \
--enable-png --enable-x264 \
--enable-png --enable-x264 \
-
--enable-freetype --enable-fribidi --enable-libxml2 \
 
--enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
--enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
--with-ffmpeg-vorbis --with-ffmpeg-theora --with-ffmpeg-ogg \
--with-ffmpeg-vorbis --with-ffmpeg-theora --with-ffmpeg-ogg \
Line 368: Line 389:
</pre>
</pre>
-
=== MPEG4IP ===
 
-
MPEG4IP: Open Source, Open Standards, Open Streaming. [http://www.mpeg4ip.net/ http://www.mpeg4ip.net/]
 
-
Alsa support propre linking require patch mpeg4ip.alsa_linking_fix.patch:
+
 
 +
=== twolame ===
 +
 
 +
TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and portions of LAME. [http://www.twolame.org/ http://www.twolame.org/]
<pre>
<pre>
-
diff -uNr mpeg4ip-1.5.0.1.origin/server/mp4live/Makefile.am mpeg4ip-1.5.0.1/server/mp4live/Makefile.am
+
gzip -cd twolame-0.3.10.tar.gz | tar xf -
-
--- mpeg4ip-1.5.0.1.origin/server/mp4live/Makefile.am  2006-03-10 20:49:44.000000000 +0200
+
cd twolame-0.3.10
-
+++ mpeg4ip-1.5.0.1/server/mp4live/Makefile.am  2006-06-24 17:10:22.000000000 +0300
+
./configure --prefix=/usr/local/enctools
-
@@ -169,6 +169,7 @@
+
make ; make install
-
        @SRTPLIB@ \
+
cd ..
-
        -lpthread \
+
</pre>
-
        @SDL_LIBS@ $(GUILIBS) @FFMPEG_LIB@ @LIBVORBIS_LIB@ $(XVID_LIB) \
+
-
+      @ALSA_LIBS@ \
+
-
        @X264_LIB@
+
-
EXTRA_DIST = $(ed2) video_v4l_source.cpp
+
=== MPEG4IP ===
-
diff -uNr mpeg4ip-1.5.0.1.origin/server/mp4live/Makefile.in mpeg4ip-1.5.0.1/server/mp4live/Makefile.in
+
MPEG4IP: Open Source, Open Standards, Open Streaming. [http://www.mpeg4ip.net/ http://www.mpeg4ip.net/]
-
--- mpeg4ip-1.5.0.1.origin/server/mp4live/Makefile.in  2006-06-08 22:17:46.000000000 +0300
+
-
+++ mpeg4ip-1.5.0.1/server/mp4live/Makefile.in  2006-06-24 17:10:12.000000000 +0300
+
-
@@ -482,6 +482,7 @@
+
-
        @SRTPLIB@ \
+
-
        -lpthread \
+
-
        @SDL_LIBS@ $(GUILIBS) @FFMPEG_LIB@ @LIBVORBIS_LIB@ $(XVID_LIB) \
+
-
+      @ALSA_LIBS@ \
+
-
        @X264_LIB@
+
-
EXTRA_DIST = $(ed2) video_v4l_source.cpp
+
Request sources from CVS
 +
<pre>
 +
cvs -d:pserver:anonymous@mpeg4ip.cvs.sourceforge.net:/cvsroot/mpeg4ip login
 +
cvs -z3 -d:pserver:anonymous@mpeg4ip.cvs.sourceforge.net:/cvsroot/mpeg4ip co -P mpeg4ip
</pre>
</pre>
Configuring procedure:
Configuring procedure:
Line 402: Line 416:
LDFLAGS="-L/usr/local/enctools/lib/"; export LDFLAGS
LDFLAGS="-L/usr/local/enctools/lib/"; export LDFLAGS
-
gzip -cd mpeg4ip-1.5.0.1.tar.gz | tar xvf -
+
cd mpeg4ip
-
cd mpeg4ip-1.5.0.1
+
-
patch -p1 < ../mpeg4ip.alsa_linking_fix.patch
+
./bootstrap                  \
 +
--prefix=/usr/local/enctools  \
 +
--enable-ffmpeg              \
 +
--enable-mp4live              \
 +
--enable-player              \
 +
--enable-server              \
 +
--enable-igmpv3              \
 +
--disable-id3tags
-
./bootstrap  --prefix=/usr/local/enctools \
 
-
--enable-server \
 
-
--enable-player \
 
-
--enable-mp4live \
 
-
--enable-mp4live-alsa \
 
-
--enable-ffmpeg
 
</pre>
</pre>
After configuring mpeg4ip reports:<pre>
After configuring mpeg4ip reports:<pre>
Line 420: Line 434:
     x264 encoder is installed
     x264 encoder is installed
     lame encoder is installed
     lame encoder is installed
-
     faac encoder is installed </pre>
+
     faac encoder is installed
 +
    twolame encoder is installed</pre>
Build mpeg4ip:
Build mpeg4ip:
<pre>make ; make install; cd .. </pre>
<pre>make ; make install; cd .. </pre>
 +
 +
== Built binaries ==
 +
* [http://research.m1stereo.tv/downloads/enctools-20070419.bin.tar.bz2 bzip-ed binaries] build from 20070419 (33.6Mb)
 +
* [http://research.m1stereo.tv/downloads/enctools-20070404.bin.tar.bz2 bzip-ed binaries] build from 20070404 (27.7Mb)

Latest revision as of 13:35, 27 September 2007

Article mirrored at Building encoding tools from scratch at streaming411.com

Contents

System prerequisites

Building packages required preinstalled system packages:

  • base development packages: nasm, gcc, gcc-c++, libtool, automake*, autoconf*, make, libstdc++-devel, glibc-devel, subversion
  • development packages: alsa-lib-devel, SDL-devel, gtk+-devel, gtk2-devel, ncurses-devel
  • wxWidgets support required additional packages: wxGTK-2.6.x, wxGTK-devel-2.6.x, wxGTK-gl-2.6.x ( you can find sources at http://www.wxwidgets.org/, rpm could be found at http://fedoraproject.org/wiki/Extras or http://freshrpms.net/)

I choose path /usr/local/enctools for storing all builded files to avoid confilcts with other libs.

Make sure your PATH contains /usr/local/enctools/bin, to update path :

PATH=$PATH:/usr/local/enctools/bin; export PATH
Include libraries path to /etc/ld.so.conf:
--skipped--
/usr/local/enctools/lib
--skipped--

After adding path rebuild ld.so.cache:

ldconfig

Software building

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 --enable-shared=yes
make ; make install

amr

Download amrwb and amrnb source from http://www.penguin.cz/~utx/amr

Compile and install:

bzip2 -cd amrnb-7.0.0.0.tar.bz2 | tar xf -
cd amrnb-7.0.0.0
./configure --prefix=/usr/local/enctools
make ; make install
cd ..


bzip2 -cd amrwb-7.0.0.2.tar.bz2 | tar xf -
cd amrwb-7.0.0.2
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

faac

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

gzip -cd faac-1.25.tar.gz | tar xf -
cd faac

To avoid warning during bootstrap:

utoreconf: running: aclocal --force
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

and error during configuring:

config.status: creating \
.infig.status: error: cannot find input file: \

Apply patches discussed in audiocoding forum:

diff -uNr faac.origin/configure.in faac/configure.in
--- faac.origin/configure.in    2006-08-13 17:17:26.000000000 +0300
+++ faac/configure.in   2007-04-17 14:14:38.000000000 +0300
@@ -7,7 +7,7 @@

 AC_ARG_WITH( mp4v2,  [  --with-mp4v2            compile libmp4v2],WITHMP4V2=$withval, WITHMP4V2=yes)

-AC_DEFUN(MY_DEFINE, [ AC_DEFINE($1, 1, [define if needed]) ])
+AC_DEFUN([MY_DEFINE], [ AC_DEFINE($1, 1, [define if needed]) ])

 CFLAGS=${CFLAGS:-"-O2 -Wall"}

@@ -66,6 +66,11 @@
         #include <netinet/in.h>])
 AC_CHECK_MEMBERS(fpos_t.__pos,,, [#include <stdio.h>])

-AC_OUTPUT(common/Makefile common/mp4v2/Makefile \
-          libfaac/Makefile frontend/Makefile \
-          include/Makefile Makefile)
+AC_CONFIG_FILES(common/Makefile)
+AC_CONFIG_FILES(common/mp4v2/Makefile)
+AC_CONFIG_FILES(libfaac/Makefile)
+AC_CONFIG_FILES(frontend/Makefile)
+AC_CONFIG_FILES(include/Makefile)
+AC_CONFIG_FILES(Makefile)
+
+AC_OUTPUT
diff -uNr faac.origin/frontend/main.c faac/frontend/main.c
--- faac.origin/frontend/main.c 2004-12-08 13:07:17.000000000 +0200
+++ faac/frontend/main.c        2007-04-17 14:45:01.000000000 +0300
@@ -918,7 +918,15 @@
     {
 #endif
         /* open the aac output file */
-        outfile = fopen(aacFileName, "wb");
+        if(('-' == aacFileName[0])&&(0 == aacFileName[1]))
+        {
+            outfile = stdout;
+        }
+        else
+        {
+            outfile = fopen(aacFileName, "wb");
+        };
+
         if (!outfile)
         {
             fprintf(stderr, "Couldn't create output file %s\n", aacFileName);

Bootstrap, configure and compile:

patch -p1 < faac.bootstrap.patch
patch -p1 < faac.pipe.patch
autoreconf -vif
./configure --prefix=/usr/local/enctools --with-mp4v2
make ; make install
cd ..

faad2

AAC decoder library http://www.audiocoding.com/modules/mydownloads/

gzip -cd faad2-2.5.tar.gz | tar xf -
cd faad2
mkdir -p plugins/bmp

For successfull compile (avoid conditional "HAVE_BMP" was never defined) apply Media:faad2.no_beep_media_player.patch patch discussed in audiocoding forum:

diff -uNr faad2.origin/configure.in faad2/configure.in
--- faad2.origin/configure.in   2006-08-13 17:13:31.000000000 +0300
+++ faad2/configure.in  2007-04-16 19:31:20.000000000 +0300
@@ -118,6 +118,9 @@
   AC_DEFINE([HAVE_BMP], 1, [User wants beep media player plugin built])
   AM_CONDITIONAL([HAVE_XMMS], true)
   AM_CONDITIONAL([HAVE_BMP], true)
+else
+ AC_MSG_NOTICE(no bmp build configured)
+ AM_CONDITIONAL([HAVE_BMP], false)
 fi

 if test x$WITHDRM = xyes; then

And now you can bootstrap (ignore warnings) and compile:

patch -p1 < faad2.no_beep_media_player.patch
autoreconf -vif
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

lame

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

gzip -cd lame-3.97.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/

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.2.0.tar.gz | tar xvf -
cd libvorbis-1.2.0
./configure --with-ogg=/usr/local/enctools --prefix=/usr/local/enctools
make ; make install
cd ..

theora

Video codec http://theora.org/

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

x264

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

svn co svn://svn.videolan.org/x264/trunk x264

Configure and compile (do not forget about --enable-pthread)

cd x264
./configure --prefix=/usr/local/enctools --enable-shared --enable-pthread
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.3.tar.gz | tar xvf -
cd xvidcore-1.1.3
cd build/generic
./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/

Request a ffmpeg svn snapshot (this moment i have r10593):

svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

Configuring procedure:

cd ffmpeg

PATH=$PATH:/usr/local/enctools/bin \
./configure          \
--prefix=/usr/local/enctools \
--enable-liba52      \
--enable-libamr_nb   \
--enable-libamr_wb   \
--enable-libfaac     \
--enable-libfaad     \
--enable-libmp3lame  \
--enable-libogg      \
--enable-libvorbis   \
--enable-libtheora   \
--enable-libxvid     \
--enable-libx264     \
--enable-gpl         \
--enable-pp          \
--enable-shared      \
--enable-pthreads    \
--extra-cflags="-I/usr/local/enctools/include" \
--extra-ldflags="-L/usr/local/enctools/lib" 

make ; make install
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.1.tar.gz | tar xvf -
cd mpeg2dec-0.4.1
./configure --prefix=/usr/local/enctools
make
make install
cd ..

flac

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

gzip -cd flac-1.2.1.tar.gz | tar xvf -
cd flac-1.2.1
./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.2beta2.tar.gz | tar xvf -
cd speex-1.2beta2
./configure --prefix=/usr/local/enctools --with-ogg-dir=/usr/local/enctools
make ; make install
cd ..

libdv

Quasar DV Codec: libdv http://libdv.sourceforge.net/

gzip -cd libdv-1.0.0.tar.gz | tar xvf -
cd libdv-1.0.0
./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/

gzip -cd libraw1394-1.2.1.tar.gz | tar xvf -
cd libraw1394-1.2.1
./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 ..


live555

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

gzip -cd live.2007.08.03a.tar.gz | tar xf -
cd live
./genMakefiles linux
make 
cd ..

folder live - it will be used by VLC in next step

VLC

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

to avoid "error: redefinition of typedef ‘byte_t’", fix file /usr/local/enctools/include/libraw1394/raw1394.h, comment out line 43:

--skipped--
/* typedef u_int8_t  byte_t; */
--skipped--
bzip2 -cd vlc-0.8.6c.tar.bz2 | tar xvf -
cd vlc-0.8.6c

Building procedure:

CPPFLAGS="-I/usr/local/enctools/include/"; export CPPFLAGS
CFLAGS="-I/usr/local/enctools/include/"; export CFLAGS
LDFLAGS="-L/usr/local/enctools/lib/"; export LDFLAGS
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/enctools/lib/pkgconfig ; export PKG_CONFIG_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/enctools/lib ; export LD_LIBRARY_PATH

./configure  \
--prefix=/usr/local/enctools \
--enable-dv \
--enable-live555 --with-live555-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-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
--with-ffmpeg-vorbis --with-ffmpeg-theora --with-ffmpeg-ogg \
--disable-wxwidgets --disable-skins2

make ; make install

cd ..


twolame

TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and portions of LAME. http://www.twolame.org/

gzip -cd twolame-0.3.10.tar.gz | tar xf -
cd twolame-0.3.10
./configure --prefix=/usr/local/enctools
make ; make install
cd ..

MPEG4IP

MPEG4IP: Open Source, Open Standards, Open Streaming. http://www.mpeg4ip.net/

Request sources from CVS

cvs -d:pserver:anonymous@mpeg4ip.cvs.sourceforge.net:/cvsroot/mpeg4ip login
cvs -z3 -d:pserver:anonymous@mpeg4ip.cvs.sourceforge.net:/cvsroot/mpeg4ip co -P mpeg4ip

Configuring procedure:

CPPFLAGS="-I/usr/local/enctools/include/"; export CPPFLAGS
CFLAGS="-I/usr/local/enctools/include/"; export CFLAGS
LDFLAGS="-L/usr/local/enctools/lib/"; export LDFLAGS

cd mpeg4ip

./bootstrap                   \
--prefix=/usr/local/enctools  \
--enable-ffmpeg               \
--enable-mp4live              \
--enable-player               \
--enable-server               \
--enable-igmpv3               \
--disable-id3tags

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
    twolame encoder is installed

Build mpeg4ip:

make ; make install; cd .. 

Built binaries

Personal tools