Linux HOWTOs

About | Home | Search


HOWTO: transcode
Description: Video processing tool
Click here for ChangeLog
NOTE: I use GNU tar >= 1.13.25 so it's -j for .tar.bz2 files,
it's safe to assume that make, gcc, binutils, fileutils/coreutils, gawk, sed, and grep are prerequisites for almost everything


# transcode
# =========
# Below are instructions for installing transcode 1.0.2 and transcode from
# CVS.  Keep in mind that I last installed 1.0.2, so the CVS instructions
# may be out of date.

# If you ever want to uninstall transcode or clean up files from an old
# version before installing a new one, skip down to the bottom for
# instructions.


# transcode 1.0.2
# ================
# Prerequisites:
# pkg-config
# zlib (mandatory)
# libavcodec from ffmpeg >= 0.9.1pre1 (mandatory)
# libpostproc from ffmpeg (leave off --enable-libpostproc below to skip)
# libmpeg2 from mpeg2dec >= 0.4.0b (mandatory)
# A Linux kernel with v4l (Video for Linux) support (leave off --enable-v4l
#  below to skip)
# OSS or ALSA with OSS compatibility (leave off --with-oss below to skip)
# freetype (leave off --enable-freetype2 below to skip)
# liba52 (leave off --enable-a52 below to skip)
# mjpegtools (leave off --enable-mjpegtools below to skip)
# sdl (leave off --enable-sdl below to skip)
# libfame (leave off --enable-libfame below to skip)
# lame
# avifile (leave off --enable-avifile below to skip)
# Ogg/Vorbis/Theora (leave off --enable-ogg, --enable-vorbis, and/or
#  --enable-theora below to skip)
# libdvdread
# libmpeg3
# libdv (leave off --enable-libdv below to skip)
# libquicktime (leave off --enable-libquicktime below to skip)
# lzo (leave off --enable-lzo below to skip)
# libxml2 (leave off --enable-libxml2 below to skip)
# GTK+ (leave off --enable-gtk below to skip)
# ImageMagick (leave off --enable-imagemagick below to skip)
# libjpeg
# jpeg-mmx (leave off --enable-libjpegmmx to skip)
# XFree86 or X.org (leave off --with-x below to skip)
# iconv
# pvm3 (add --enable-pvm3,
#  --with-pvm3-prefix=/usr/local/pvm3 (wherever you put it), and
#  --with-pvm3-libs=/usr/local/pvm3/lib/LINUX below to include this)
# LoRS/IBP (add --enable-ibp below to include this)

cd
test -f installed/transcode-1.0.2.tar.gz &&
 mv installed/transcode-1.0.2.tar.gz .
test ! -f transcode-1.0.2.tar.gz &&
 wget http://transcode.forcenetworks.com/transcode-1.0.2.tar.gz

# Verify tarball w/ md5sum:
echo "e353c0ab7e927a8672528e05a9ae960b  transcode-1.0.2.tar.gz" | md5sum -c

# Verify tarball w/ sha1sum:
echo "831a55a0218913e43261eb614ccca34a0d1b3d0d  transcode-1.0.2.tar.gz" | \
 sha1sum -c

mkdir -p -m 0700 src
cd src
test -d ./transcode && rm -r ./transcode
find -maxdepth 1 -type d -name "transcode-*" -exec rm -r {} \;
tar xzvf ~/transcode-1.0.2.tar.gz
cd transcode-1.0.2
test $UID = 0 && chown -R root:root .
chmod -R u+w .

# If you use libiconv (vs. glibc's built-in iconv), you may need to pass
# this before configure or configure will fail to test for libraries that
# are linked with libiconv (avifile was one for me):
LIBS=-liconv \

# If you want to build it with optimizations, use something like this
# before configure (see 'man gcc' for other processor types):
CFLAGS="-O3 -march=pentium4" \

./configure \
 --enable-v4l \
 --enable-oss \
 --enable-libpostproc \
  --with-libpostproc-includes=/usr/local/include/postproc \
 --enable-freetype2 \
 --enable-a52 \
 --enable-mjpegtools \
 --enable-sdl \
 --enable-libfame \
 --enable-avifile \
 --enable-ogg --enable-vorbis --enable-theora \
 --enable-libmpeg3 \
 --enable-libdv \
 --enable-libquicktime \
 --enable-lzo \
 --enable-libxml2 \
 --enable-gtk \
 --enable-imagemagick \
 --enable-libjpegmmx \
 --with-x
make
su -c "make install"
cd
mkdir -p -m 0700 installed
rm -f installed/transcode-*.tar.*
mv transcode-1.0.2.tar.gz installed/


# transcode CVS
# =============
# Prerequisites:
# nasm
# pkg-config
# XFree86 or X.org
# zlib
# ffmpeg
# freetype
# avifile (leave off --enable-avifile and --with-avifile-includes/libs to skip)
# lame
# Ogg/Vorbis/Theora (leave off --enable-ogg, --enable-vorbis,
#  --enable-theora to skip)
# libdvdread
# xvid
# pvm3 >= 3.4 (leave off --enable-pvm3 and --with-pvm3-include/lib
#  below to skip)
# libdv (leave off --enable-libdv to skip)
# libquicktime (don't use CVS, use 0.9.3; leave off --enable-libquicktime to skip)
# liblzo (leave off --enable-lzo to skip)
# liba52 (leave off --enable-a52 to skip)
# liblve (leave off --enable-lve to skip)
# libmpeg3 (leave off --enable-libmpeg3 to skip)
# libxml2 (leave off --enable-libxml2 to skip)
# mjpegtools (leave off --enable-mjpegtools to skip)
# sdl > 1.1.6 (leave off --enable-sdl to skip)
# gtk+ (leave off --enable-gtk to skip)
# libfame >= 0.9.0 (leave off --enable-libfame to skip)
# ImageMagick (leave off --enable-imagemagick to skip)
# libjpeg or jpeg-mmx (leave off --enable-libjpegmmx to skip)
# libiconv (leave off --enable-libiconv to skip)

# I set this up to include support for everything I could get it to build
# in.  You may want to leave off some of these things that you won't need
# so your transcode isn't so big and complicated.

mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "transcode-*" -exec rm -r {} \;
test -d ./transcode && ( cd transcode && cvs -z3 update -dP )
test ! -d ./transcode &&
 ( cvs -z3 -d :pserver:cvs@cvs.exit1.org:/cvstc login
   # Hit enter if it asks for a password
   cvs -z3 -d :pserver:cvs@cvs.exit1.org:/cvstc co transcode )
cd transcode
test $UID = 0 && chown -R root:root .
test -f Makefile && make distclean

# This will create the autoconf stuff:
autoreconf -f -i

# If you have libiconv installed (--with-iconv below), as I do, it requires
# an extra LIBS=-liconv before configure so one of the configure tests
# (aviplay) can see it.  If you don't have it installed, you can leave off
# that part and --with-iconv as well.

LIBS=-liconv \
./configure \
 --enable-avifile \
  --with-avifile-includes=/usr/local/include/avifile-0.7 \
  --with-avifile-libs=/usr/local/lib/avifile-0.7 \
 --enable-libpostproc \
 --enable-freetype2 \
 --enable-xvid \
 --enable-x264 \
 --enable-ogg --enable-vorbis --enable-theora \
 --enable-pvm3 --with-pvm3-lib=/usr/local/pvm3/lib/LINUX \
  --with-pvm3-include=/usr/local/pvm3/include \
 --enable-libdv \
 --enable-libquicktime \
 --enable-lzo \
 --enable-a52 \
 --enable-faac \
 --enable-libmpeg3 \
 --enable-libxml2 \
 --enable-mjpegtools \
 --enable-libjpegmmx \
 --enable-sdl \
 --enable-gtk \
 --enable-libfame \
 --enable-imagemagick \
 --enable-libiconv \
 --enable-liblve --with-liblve-builddir=/usr/local/lve
make
su -c "make install"
cd
mkdir -p -m 0700 installed
rm -f installed/transcode-*.tar.*
echo "transcode was installed from CVS" > installed/transcode.README
echo "source is in ~/src/transcode" >> installed/transcode.README
chmod 700 installed/transcode.README


# If you ever want to uninstall transcode, this should do it:
cd
su
test -d src/transcode && ( cd src/transcode ; make uninstall )
test -d src/transcode-* && ( cd src/transcode-* ; make uninstall )
( cd /usr/local/bin ; rm -f avifix aviindex avimerge avisplit avisync \
 tccat tcdecode tcdemux tcextract tcmodinfo tcmp3cut tcprobe tcrequant \
 tcscan tcxmlcheck tcxpm2rgb transcode )
test -d /usr/local/lib/transcode &&
 rm -r /usr/local/lib/transcode
( cd /usr/local/man/man1 ; rm -f avifix.1 aviindex.1 avimerge.1 avisplit.1 \
 avisync.1 tccat.1 tcdecode.1 tcdemux.1 tcextract.1 tcmodinfo.1 tcprobe.1 \
 tcpvmexportd.1 tcscan.1 tcxmlcheck.1 transcode.1 )
test -d /usr/local/share/doc/transcode &&
 rm -r /usr/local/share/doc/transcode
ldconfig
exit
test -d src/transcode && rm -r src/transcode
find ~/src -maxdepth 1 -type d -name "transcode-*" -exec rm -r {} \;
rm -f ~/installed/transcode-*.tar.* ~/installed/transcode.README

Back to the list


Last updated: Tue, 07 Aug 2018 12:06:17 -0400
Jason Englander <jason at englanders dot us>