diff options
Diffstat (limited to 'debian/transcode/transcode-1.1.7/docs')
137 files changed, 28956 insertions, 0 deletions
diff --git a/debian/transcode/transcode-1.1.7/docs/CHANGES-1.0-1.1 b/debian/transcode/transcode-1.1.7/docs/CHANGES-1.0-1.1 new file mode 100644 index 00000000..09a0971b --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/CHANGES-1.0-1.1 @@ -0,0 +1,68 @@ +User-visible changes betwwen transcode 1.0.0 and transcode 1.1.0 +================================================================ +(Revision 1) + +Introduction +------------ + +This document outlines the user-visible changes between transcode +1.0.x and transcode 1.1.0. If you find a difference that isn't +documented here, please file a bug on tcforge.berlios.de and/or +write us on [email protected]. + + +Command line options: +--------------------- + +* -i [changed] + is now mandatory. You have to specifiy the input file explicitely. + +* --ext [removed] + is gone (deprecated). Just fully qualify the extension (if needed) using -o. + +* --use_rgb [removed] + is gone. Use `-V rgb24' instead. + +* --uyvy [removed] + is gone. UYVY colorspace is no longer supported for internal processing. + I/O modules (e.g. import_raw, export_raw et. al.) now handles UYVY colorspace + internally; refer to the documentation of specific modules. + +* -V [changed] + now requires an argument (colorspace): + yuv420p (default) + yuv422p (YUV 4:2:2 PLANAR) + rgb24 + +* -N [changed] + now accepts also string(s) as argument(s). + That's only useful if you use the new experimental export module set. + +* -y [changed] + now accepts an additional comma-separated argument for + new-style multiplexor module to use. + That's only useful if you use the new experimental export module set. + +* --dir_mode [removed] + is gone, replaced by --multi_input. Using --multi_input, you can use a standard + POSIX globbing pattern as input file. Transcode will automatically expand the + expression, join the sequence and read the whole stream seamlessly (except for bugs). + See manpage for details. + +* --import_v4l [removed] + is gone (obsolete, deprecated). + +* --print_status --progress_off [removed] + are gone, replaced by --progress_meter and --progress_rate + (see manpage for details). + +* --color [removed] + is gone, replaced by --log_no_color. + + +Program Output: +--------------- + +Transcode now uses ANSI color sequences much more than 1.0.x. + + diff --git a/debian/transcode/transcode-1.1.7/docs/ChangeLog.historic.gz b/debian/transcode/transcode-1.1.7/docs/ChangeLog.historic.gz Binary files differnew file mode 100644 index 00000000..bf5f569a --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/ChangeLog.historic.gz diff --git a/debian/transcode/transcode-1.1.7/docs/DV-to-DVD-HOWTO.txt b/debian/transcode/transcode-1.1.7/docs/DV-to-DVD-HOWTO.txt new file mode 100644 index 00000000..a7265745 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/DV-to-DVD-HOWTO.txt @@ -0,0 +1,318 @@ + + +-----------------+ + | DV-to-DVD-HOWTO | + +-----------------+ + + v1.0, 2004/01/05, Florin Andrei <[email protected]> + + +Here are some suggestions on how to convert Digital Video material (DV) to +DVD. This document is focused on material that's shot with DV camcorders. See +the end of the document for helper scripts. + +1. About DV +Digital Video is a format used by most of the modern digital camcorders, both +in the proffesional arena and in the amateur range. The compression used is +kinda similar to MJPEG; each image is compressed independently of the others +(unlike MPEG1/2/4) so DV is "editing-friendly". +Usually, NTSC DV has a resolution of 720x480 and the pixels are non-square; +the aspect ratio is usually either 4:3 or 16:9; the framerate is 29.97 fps +and the image is interlaced, with the bottom field first. PAL is similar, but +the resolution is 720x576 and the framerate is 25 fps. Variations are +possible on non-standard and/or expensive equipment (24 fps, progressive, +etc.) but are rare. +At the normal parameters above, 60 minutes of movie get compressed by normal +DV gear at approx. 10...15 GB of video files. + +2. About DVD +Very popular digital media, it's using MPEG2 encoding for video and a variety +of encodings for sound (MP2, AC3, DTS, PCM). There are several resolutions +permitted by the standard, 720x480 (NTSC) and 720x576 (PAL) being the most +popular. +The sum of the bitrates of the video track and of the current audio track +must not be higher than 10.08 Mbit/s, not even for a fraction of a second; +failure to comply generates DVDs that are unplayable on most standalone DVD +players. Usually, proffesional DVDs have their video tracks encoded at a peak +bitrate of 9800 kbps, hence leaving some room for an audio track. The average +video bitrate varies greatly, but it's usually between 2000...7000 kbps. + +3. Capturing DV +You need a FireWire card and dvgrab version 1.4 or newer. +Run the "grab" script, then start the camcorder. "grab" is designed so that +it will create a new file for each new scene on the tape (a new scene begins +whenever you paused or stopped the camcorder when shooting). If the entire +tape was shot in one big scene, only one file will be created. +dvgrab can create OpenDML AVI files, so don't worry about file size, OpenDML +stuff can be as big as necessary. +At the end, stop the camcorder if it doesn't stop by itself, then CTRL-C the +script. +The order of the operations is important. Follow this document carefully. + +4. Optional processing +You can preview the captured DV/AVI files with a media player. Currently, +Xine seems to be the only one supporting OpenDML. +If you don't want a scene, you can simply delete the corresponding file. +If you wanna make changes inside a scene, you must use a video editor that +understands DV and OpenDML; Kino seems to be working fine. + +5. Transcoding to DVD +You need a recent transcode version, such as 0.6.11. You need a new +mjpegtools version as well, at least 1.6.1.92 (plain 1.6.1 won't work), or +1.6.2 when it will get released. You also need a fairly recent dvdauthor +version, such as 0.6.8. +The script that does the job is "conv-dvd". It is designed to work with a +capture project directory created by the "grab" script. +Let's discuss the script: + +The $flags variable contains the parameters passed to mpeg2enc. You have to +choose one version and uncomment it; the first two are for high-quality +encoding, the last two are for efficient file size. Explanation of the +parameters: + +-c means "all GOPs are closed"; this generates an MPEG2 stream that's more +compatible with various apps and players + +-q sets the quantization factor; 6 is a reasonable value for DV material +converted to DVD; decrease it for higher quality, but be aware that you might +create video tracks that are not accepted by the multiplexer; increase it for +smaller file sizes at the expense of image quality + +-4 2 -2 1 controls the motion estimation; an even better (quality-wise) value +would be "-4 1" but the quality increase is almost imperceptible while the +encoding speed decreases a lot; just leave it like it is + +-K defines the encoder matrix; this script uses a matrix devised by Steven +Schultz to maximize the image quality, or the tmpgenc matrix for a more +efficient compression (at the expense of image quality) + +-N is a very gentle low-pass filter that reduces the bitrate usage +tremenduosly while not affecting the image too much + +-E tells the encoder to simply discard bits that are hard to encode yet do +not contribute to the image too much + +-R controls the B frames; encoding with 0 B frames is unusual and some truly +broken players may get upset, although it is perfectly legal from the DVD +standard p.o.v.; encoding with 2 B frames is normal for proffesional DVDs but +it slows down encoding a lot (by 60%) and it makes the compression slightly +less efficient for amateur DV stuff (material that's less than _perfect_). +If you're like me and don't care about encoding speed (i let the script run +overnight), then encode with 2 B-frames; if you're in a rush or want to +obtain better compression (your space on the DVD is limited) then encode with +0 B-frames, but be aware of the broken players. + +The $asr variable controls the aspect ratio. Uncomment the appropriate value, +depending on how your camcorder was configured. 4:3 is normal TV screen, 16:9 +is HDTV. You cannot use one of them if your camcorder was configured with the +other. + +The $bitr variable controls the MPEG2 bitrate used for the DVD. +WARNING: Do not increase it above 8500 regardless of what you've been told. I +know that proffesional DVDs are encoded at a peak value of 9800 kbps, i know +that various pieces of documentation recommend 9800 as One Value To Rule Them +All. Just ignore them. Trust me. If you do otherwise, sooner or later you'll +create a DVD that will not be playable on some standalone players. I learned +that the hard way. You have been warned. +Moreover, you don't truly need very high values. I did many evaluations, and +the results are pretty surprising: many scenes that i shot do not take the +peak bitrate above 7000 kbps, and the average is at 2000 or something! Only +very rarely you'll need such high bitrates. + +Down below in the script you'll find the transcode command. Let's discuss +some command-line parameters: + +-x ffmpeg tells transcode to use ffmpeg as the DV decoder instead of the +default Quasar codec. This way you'll obtain a compression better by 10% or +so. + +--encode_fields b tells transcode that the DV material is "bottom field +first". For some reason, that's true for any DV camcorder in the world. + +Commented out in the script you'll find some parameters for generating AC3 +sound for your DVD instead of MP2. While AC3 is more popular, for some reason +there are audio/video sync issues if you use it. I'm still investigating the +bug, meanwhile MP2 should be perfectly fine, you can use it with no problems. + +After transcoding, the script will multiplex the audio and video files using +mplex. The results are a bunch of VOB files. You can test each one of them +individually with a media player, since they're essentially MPEG2 files on +steroids. + +After multiplexing everything, the VOBs are transformed in a DVD image on the +hard-drive with the help of dvdauthor. +The DVD is created so that each scene on the DV tape is translated into a +chapter on the DVD. I believe this makes a lot of sense and allows for a +simple way to jump to various scenes while playing the DVD. +This whole chapter affair is accomplished through the XML file that's built +while transcoding, which instructs dvdauthor to set chapter marks at the +beginning of each scene. +Of course, you can change all that, see dvdauthor documentation. + +At the end, there are a few chown/chmod commands, to normalize file ownership +and permissions. I am not sure if this is really required, i just put them +there just in case. Remove them if they annoy you. + +6. Test the DVD image +You can test the newly created DVD image with xine like this: + +xine dvd:///full/path/to/the/dvd/image/ + +The trailing slash is important. xine will play the image just like it were a +true DVD, with chapters and all. + +7. Burn the DVD +You need a fairly new version of dvd+rw-tools. + +growisofs -speed=4 -Z /dev/scd0 -V "$label" -dvd-video $dvd-image + +$label is the ISO label you desire. Usually, labels are all caps and do not +contain spaces. Example: MY_COOL_MOVIE + +$dvd-image is the directory containing the DVD image. + +Of course, you can change the speed and the DVD-Writer device to suit your +existing hardware. + + +--------------------------+ + | Appendix A - conf-dvd.sh | + +--------------------------+ + +----------------snip---------------- +#!/bin/sh + +if [ $# -ne "1" ]; then + echo "Usage: $0 dirname" + exit +fi + +name=$1 +pushd $name + +# high quality, 80 min / DVD +# fast encoding, slightly unusual MPEG2 (no B frames) +flags="-c -q 6 -4 2 -2 1 -K file=matrix.txt -R 0" +# slower encoding, classic MPEG2 +#flags="-c -q 6 -4 2 -2 1 -K file=matrix.txt -R 2" +# +# ok quality, 120 min / DVD +# fast encoding, slightly unusual MPEG2 (no B frames) +#flags="-c -q 6 -4 2 -2 1 -N 0.5 -E -10 -K tmpgenc -R 0" +# slower encoding, classic MPEG2 +#flags="-c -q 6 -4 2 -2 1 -N 0.5 -E -10 -K tmpgenc -R 2" + +# Aspect ratio of the original DV tape +# 4:3 +asr="--export_asr 2" +# 16:9 +#asr="--export_asr 3" + +bitr="8500" +xmlf="dvdauthor.xml" + +# Steven Schultz's combined HQ matrix +cat - > matrix.txt << MATRIX +# High resolution INTRA table +8,16,18,20,24,25,26,30 +16,16,20,23,25,26,30,30 +18,20,22,24,26,28,29,31 +20,21,23,24,26,28,31,31 +21,23,24,25,28,30,30,33 +23,24,25,28,30,30,33,36 +24,25,26,29,29,31,34,38 +25,26,28,29,31,34,38,42 +# TMPEGEnc NON-INTRA table +16,17,18,19,20,21,22,23 +17,18,19,20,21,22,23,24 +18,19,20,21,22,23,24,25 +19,20,21,22,23,24,26,27 +20,21,22,23,25,26,27,28 +21,22,23,24,26,27,28,30 +22,23,24,26,27,28,30,31 +23,24,25,27,28,30,31,33 +MATRIX + +rm -f $xmlf +# dvdauthor XML config head +cat - >> $xmlf << XMLHEAD +<dvdauthor> +<vmgm /> +<titleset> +<titles> +<pgc> +XMLHEAD + +for inp in `ls dv`; do +out=`basename $inp .avi` +transcode -i dv/$inp -x ffmpeg \ + -V -w $bitr \ + --encode_fields b \ + ${asr} \ + -F 8,"${flags}" \ + -y mpeg2enc,mp2enc -b 224 -m $out \ + -o $out \ + --print_status 10 +################################################## +# stuff to copy/paste in the transcode parameters +################################################## +# use this if DV sound is not sampled at 48kHz +# (it almost ALWAYS is 48kHz!) +# -E 48000,16,2 -J resample \ +# +# AC3 sound +# (has A/V sync bugs, don't use it yet, still investigating...) +# -y mpeg2enc,raw -N 0x2000 -b 192 -m $out.ac3 \ +# +# MP2 sound +# -y mpeg2enc,mp2enc -b 224 -m $out \ +################################################## + +# use this with MP2 +mplex -r 10000 -f 8 -S 4400 $out.m2v $out.mpa -o $out.vob +# use this with AC3 +#mplex -r 10000 -f 8 -S 4400 $out.m2v $out.ac3 -o $out.vob +echo "<vob file=\"$out.vob\" />" >> $xmlf +done + +# dvdauthor XML config tail +cat - >> $xmlf << XMLTAIL +</pgc> +</titles> +</titleset> +</dvdauthor> +XMLTAIL + +dvdauthor -o $name -x $xmlf + +# the next commands require the following line in visudo: +# yourusername ALL = NOPASSWD: ALL +sudo chown -R root:root $name +sudo chmod -R 0755 $name +sudo chmod 0644 $name/*_TS/* +sync +popd +----------------snip---------------- + + + +----------------------+ + | Appendix B - grab.sh | + +----------------------+ + +----------------snip---------------- +#!/bin/sh + +if [ ! $1 ]; then + echo "Usage: $0 dirname" + exit +fi +name=$1 + +mkdir -v ${name} || exit +pushd ${name} +mkdir -v dv || exit +pushd dv + +dvgrab --autosplit --size 0 --format dv2 --opendml \ + --noavc --buffers 200 ${name}- +popd +popd +----------------snip---------------- diff --git a/debian/transcode/transcode-1.1.7/docs/Makefile.am b/debian/transcode/transcode-1.1.7/docs/Makefile.am new file mode 100644 index 00000000..e86368c8 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/Makefile.am @@ -0,0 +1,47 @@ +# # Process this file with automake to produce Makefile.in. + +EXTRA_DIST = \ + $(docs_DATA) \ + filter-help.txt \ + make-filter-man.sh \ + make-import-man.sh \ + make-module-man.sed \ + export-mods.txt \ + import-mods.txt + +SUBDIRS = \ + man \ + html \ + pvm3 \ + tech + +docsdir = $(datadir)/doc/transcode + +docs_DATA = \ + DV-to-DVD-HOWTO.txt \ + README.Inverse.Telecine.txt \ + README.dv \ + README.cluster \ + README.filter.modfps \ + README.rip \ + README.sync \ + README.vcd \ + README.xvid-credits \ + RELNOTES-0.6.13 \ + RELNOTES-1.1.0 \ + export_ffmpeg.txt \ + export_mp2.txt \ + filter-socket.txt \ + filter_dnr.txt \ + filter_logo.txt \ + filter_logoaway.txt \ + filter_text.txt \ + filter_yuvdenoise.txt \ + framerate.txt \ + import-xml.txt \ + import_nvrec.txt \ + import_v4l2.txt \ + import_yuv.txt \ + import_x11.txt \ + faq \ + template.cfg.txt diff --git a/debian/transcode/transcode-1.1.7/docs/Makefile.in b/debian/transcode/transcode-1.1.7/docs/Makefile.in new file mode 100644 index 00000000..ad85eda6 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/Makefile.in @@ -0,0 +1,754 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# # Process this file with automake to produce Makefile.in. + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(docsdir)" +DATA = $(docs_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +A52_CFLAGS = @A52_CFLAGS@ +A52_LIBS = @A52_LIBS@ +ACLIB_LIBS = @ACLIB_LIBS@ +ACLOCAL = @ACLOCAL@ +ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVILIB_LIBS = @AVILIB_LIBS@ +AWK = @AWK@ +BSDAV_CFLAGS = @BSDAV_CFLAGS@ +BSDAV_LIBS = @BSDAV_LIBS@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXXCPP = @CXXCPP@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLDARWIN_CFLAGS = @DLDARWIN_CFLAGS@ +DLDARWIN_LIBS = @DLDARWIN_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FAAC_CFLAGS = @FAAC_CFLAGS@ +FAAC_LIBS = @FAAC_LIBS@ +FGREP = @FGREP@ +FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ +FREETYPE2_LIBS = @FREETYPE2_LIBS@ +GREP = @GREP@ +IBP_LIBS = @IBP_LIBS@ +ICONV_CFLAGS = @ICONV_CFLAGS@ +ICONV_LIBS = @ICONV_LIBS@ +IMAGEMAGICK_CFLAGS = @IMAGEMAGICK_CFLAGS@ +IMAGEMAGICK_LIBS = @IMAGEMAGICK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAME_CFLAGS = @LAME_CFLAGS@ +LAME_LIBS = @LAME_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBAVCODEC_CFLAGS = @LIBAVCODEC_CFLAGS@ +LIBAVCODEC_LIBS = @LIBAVCODEC_LIBS@ +LIBAVFORMAT_CFLAGS = @LIBAVFORMAT_CFLAGS@ +LIBAVFORMAT_LIBS = @LIBAVFORMAT_LIBS@ +LIBDVDREAD_CFLAGS = @LIBDVDREAD_CFLAGS@ +LIBDVDREAD_LIBS = @LIBDVDREAD_LIBS@ +LIBDV_CFLAGS = @LIBDV_CFLAGS@ +LIBDV_LIBS = @LIBDV_LIBS@ +LIBJPEG_CFLAGS = @LIBJPEG_CFLAGS@ +LIBJPEG_LIBS = @LIBJPEG_LIBS@ +LIBMPEG2CONVERT_CFLAGS = @LIBMPEG2CONVERT_CFLAGS@ +LIBMPEG2CONVERT_LIBS = @LIBMPEG2CONVERT_LIBS@ +LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@ +LIBMPEG2_LIBS = @LIBMPEG2_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBPOSTPROC_CFLAGS = @LIBPOSTPROC_CFLAGS@ +LIBPOSTPROC_LIBS = @LIBPOSTPROC_LIBS@ +LIBQUICKTIME_CFLAGS = @LIBQUICKTIME_CFLAGS@ +LIBQUICKTIME_LIBS = @LIBQUICKTIME_LIBS@ +LIBS = @LIBS@ +LIBTCAUDIO_LIBS = @LIBTCAUDIO_LIBS@ +LIBTCVIDEO_LIBS = @LIBTCVIDEO_LIBS@ +LIBTC_LIBS = @LIBTC_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ +LIBV4L2_LIBS = @LIBV4L2_LIBS@ +LIBV4LCONVERT_CFLAGS = @LIBV4LCONVERT_CFLAGS@ +LIBV4LCONVERT_LIBS = @LIBV4LCONVERT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LZO_CFLAGS = @LZO_CFLAGS@ +LZO_LIBS = @LZO_LIBS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MJPEGTOOLS_CFLAGS = @MJPEGTOOLS_CFLAGS@ +MJPEGTOOLS_LIBS = @MJPEGTOOLS_LIBS@ +MKDIR_P = @MKDIR_P@ +MOD_PATH = @MOD_PATH@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_AWK = @PATH_TO_AWK@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PROF_PATH = @PROF_PATH@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PVM3_CFLAGS = @PVM3_CFLAGS@ +PVM3_LIBS = @PVM3_LIBS@ +PVM3_PVMGS = @PVM3_PVMGS@ +RANLIB = @RANLIB@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIMD_FLAGS = @SIMD_FLAGS@ +STRIP = @STRIP@ +THEORA_CFLAGS = @THEORA_CFLAGS@ +THEORA_LIBS = @THEORA_LIBS@ +USE_DLDARWIN = @USE_DLDARWIN@ +VERSION = @VERSION@ +VORBIS_CFLAGS = @VORBIS_CFLAGS@ +VORBIS_LIBS = @VORBIS_LIBS@ +WAVLIB_LIBS = @WAVLIB_LIBS@ +X264_CFLAGS = @X264_CFLAGS@ +X264_LIBS = @X264_LIBS@ +XIO_CFLAGS = @XIO_CFLAGS@ +XIO_LIBS = @XIO_LIBS@ +XMKMF = @XMKMF@ +XVID_CFLAGS = @XVID_CFLAGS@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +a52_config = @a52_config@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +bsdav_config = @bsdav_config@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +faac_config = @faac_config@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +iconv_config = @iconv_config@ +imagemagick_config = @imagemagick_config@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +lame_config = @lame_config@ +libdir = @libdir@ +libdvdread_config = @libdvdread_config@ +libexecdir = @libexecdir@ +libjpeg_config = @libjpeg_config@ +libjpegmmx_config = @libjpegmmx_config@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lzo_config = @lzo_config@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pvm3_config = @pvm3_config@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xvid_config = @xvid_config@ +EXTRA_DIST = \ + $(docs_DATA) \ + filter-help.txt \ + make-filter-man.sh \ + make-import-man.sh \ + make-module-man.sed \ + export-mods.txt \ + import-mods.txt + +SUBDIRS = \ + man \ + html \ + pvm3 \ + tech + +docsdir = $(datadir)/doc/transcode +docs_DATA = \ + DV-to-DVD-HOWTO.txt \ + README.Inverse.Telecine.txt \ + README.dv \ + README.cluster \ + README.filter.modfps \ + README.rip \ + README.sync \ + README.vcd \ + README.xvid-credits \ + RELNOTES-0.6.13 \ + RELNOTES-1.1.0 \ + export_ffmpeg.txt \ + export_mp2.txt \ + filter-socket.txt \ + filter_dnr.txt \ + filter_logo.txt \ + filter_logoaway.txt \ + filter_text.txt \ + filter_yuvdenoise.txt \ + framerate.txt \ + import-xml.txt \ + import_nvrec.txt \ + import_v4l2.txt \ + import_yuv.txt \ + import_x11.txt \ + faq \ + template.cfg.txt + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-docsDATA: $(docs_DATA) + @$(NORMAL_INSTALL) + test -z "$(docsdir)" || $(MKDIR_P) "$(DESTDIR)$(docsdir)" + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docsdir)" || exit $$?; \ + done + +uninstall-docsDATA: + @$(NORMAL_UNINSTALL) + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(docsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(docsdir)" && rm -f $$files + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(docsdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-docsDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-docsDATA + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-docsDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am uninstall-docsDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/debian/transcode/transcode-1.1.7/docs/README.Inverse.Telecine.txt b/debian/transcode/transcode-1.1.7/docs/README.Inverse.Telecine.txt new file mode 100644 index 00000000..fb7d71dc --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/README.Inverse.Telecine.txt @@ -0,0 +1,240 @@ +NTSC, telecine, and how to cope (using telecide and decimate) +============================================================= +Based on the excellent work of Donald Graft (author of Decomb) + +Filters Version: 0.2 + +Before we start, lets clear up the field a bit. + +You DO NOT need any of the two filters (telecide and decimate) +if you are working with "pure interlaced data" as opposed to +"artificially interlaced data". In plain terms: You don't need +these two filters AND YOU SHOULD NOT USE THEM if your source +data are coming from: + +- a decrypted PAL DVD (all European DVDs, for example) +- a captured .avi from a camera (be it PAL or NTSC) + +For the above, you can use one of the other filters, like +"-J dilyuvmmx", "-I 1" or "-I 3" (or even smartdeinter). +Just remember to read the instructions. + +Now that we've thrown away 90% of the readers, its time to +describe what is this artificial interlacing we (might) +meet in an NTSC DVD and why it requires special care. + +23.976 -> 29.97 +=============== + +NTSC television is broadcast at 29.97 frames per second. +Films however, (movies) are shot at 24 frames per second. +How are Americans watching movies on their TVs then? +Where do the extra 5.97 frames come from? :) + As one might guess, American engineers had to interpolate. +They also had to cope with the fact that TV isn't actually +showing 29.97 frames per sec, but 2 x 29.97 fields per second. +What are fields, you ask? Well, check this ASCII art: + +scanline 0 --------------------------------- Field 0, 1st line +scanline 1 +++++++++++++++++++++++++++++++++ Field 1, 1st line +scanline 2 --------------------------------- Field 0, 2nd line +scanline 3 +++++++++++++++++++++++++++++++++ Field 1, 2nd line +scanline 4 --------------------------------- Field 0, 3rd line +etc... + +As you can see, each frame is composed from two fields. Each of +the fields has 240 lines, thus we finally get 480 scanlines. +So, to display film content, which is 24 frames per second, +this is what American engineers came up with: + +- First, each film frame is split into two fields. We thus get + 48 fields per second (2 x 24) + +- Then, a process called 3:2 pulldown (telecine) is performed. + It's better to see it with an example: + Assume we have 5 film frames, now split into 10 fields. + The even scanlines are forming the 'top' fields, + while the odd ones the 'bottom'. + + For example, the two first frames are split as follows: + + Frame 1 Frame 2 + ======= ======= + Top Field of Frame 1 (T1) Top Field of Frame 2 (T2) + Bottom Field of Frame 1 (B1) Bottom Field of Frame 2 (B2) + +Now, if we had a 24fps Television set, we could see any film easily, +if we sent it the following sequence: + + T1 B1 T2 B2 T3 B3 T4 B4 T5 B5 T6 B6 ... + ====== ====== ====== ====== ====== ====== + Frame1 Frame2 Frame3 Frame4 Frame5 Frame6 + +Unfortunately, we have a stupid 29.97 standard, so this is what we send: + + T1 B1 T2 B2 T2 B3 T3 B4 T4 B4 ... + ===== ===== ===== ===== ===== + N N A A N + +As you can see, we have used fields from 4 film frames, but we have +sent them in a way that produces 5 NTSC 'frames': 3 Normal (N) ones, +and two Artificial (A) ones. The displaying is also slowed down, +from 30 'frames' per sec to 29.97 fps. + +You see it? +These Artificial frames are horribly interlaced! +And this interlacing has nothing to do with the normal interlacing +found in PAL and NTSC cameras... This is a different monster. + +Note that if you use one of transcode's deinterlacing filters with +such a sequence, you'll probably get something like this: + + + T1 B1 T2 B2 T3 B3 T4 B4 T4 B4 ... + ===== ===== ===== ===== ===== + +... that is, two completely identical frames (IF the deinterlacing +algorithm is good enough). And yes, when you encode your sequence +to MPEG4 or whatever, you waste bandwidth for these extra frames. +Not to mention, that a skilled eye will notice that the film is not +natural - any motion will appear jerky, because of the duplicate +frames. + Did I mention that this pattern shifts and jumps throughout the +video? In other words, this scheme is not constant; Video editing +is performed on fields, and if the DVD authoring studio deletes +a series of fields in the middle of the film, the eventual field +order is impossible to predict... + +What can we do? +=============== + +Well, first of all, as good as transcode deinterlacing filters are, +they were not designed for this atrocity. Even "-I 3" falls back to +keeping odd (or even) scanlines and interpolates them to get the +ones missing. This is unacceptable. +The recovery process (called IVTC - inverse telecine) is done +in two steps, from two filters. +The first one, called 'ivtc', tries to recreate the original +film frames from the available fields. It doesn't remove the +duplicate frames; this is done from the next filter, the 'decimate' +one. + +The algorithms used in these filters are the basic ones used in +the 'Decomb' package (made by Donald A. Graft and available - +unfortunately - only under Windows). Thanks for opening up the +source, Donald! + +Example +======= + +To summarize, let's see an example. The Dolby trailers are freely +available on the Web, and yes, they are purely telecined. +Let's transcode 'City' in a two pass perfect IVTC with Ogg sound: + +First pass: +transcode -M 0 -f 23.976 -i dolby-city.vob -x vob -y xvid,null -w 740 -J ivtc,decimate -V -o /dev/null -R 1 -B 6,13,16 + +Second pass: +transcode -M 0 -f 23.976 -b 64 -i dolby-city.vob -x vob -y xvid,ogg -w 740 -J ivtc,decimate -V -o test.avi -R 2 -m test.ogg -B 6,13,16 + +Adding video and audio together in an Ogg stream (you'll need ogmtools): +ogmmerge -o dolby-city.ogm test.avi test.ogg + +Some explaining: + + -w 740 Target video bitrate is 740000 bits per second + + -B 6,13,16 Resize from NTSC 720x480 to 512x384 (4:3 aspect) + + -M 0 -f 23.976 it means that the demux must not drop frames on + its own; the filters will do that, producing a + 23.976 frames per sec result. + + -J ivtc,decimate Always use them in this order, and with no other + filter before them - especially no deinterlacing + and no resizing one! + +Problems +======== + +As good as these filters are, there are streams out there that are +simply impossible to IVTC. For example, amazing as it may sound, +some NTSC DVDs are switching from 29.97 to 23.976 IN THE MIDDLE +of playback! When there is no constant frame rate, the filters +will fail. + Additionally, when the telecine pattern shifts (as a result +of, maybe, field editing by the DVD authors) a couple of +interlaced frames will pass through. These should be deinterlaced +on their own. You shouldn't use global deinterlacing after ivtc +- it would blur out the otherwise perfect progressive frames +that get reconstructed from 'ivtc'. However, transcode's '32detect' +filter comes to the rescue: It first checks whether the frame +is interlaced, and only then it forces a frame deinterlacing. +So, this is what I recommend for your sessions: + +transcode -M 0 -f 23.976 -J ivtc,32detect=force_mode=3,decimate ... + +To put it simply, 'ivtc' will try to fix the paranoia of telecine. +When the pattern shifts (or the algorithm fails) a couple of +interlaced frames will slip-by, which are detected and +deinterlaced by '32detect'. Finally, the 29.97 frames produced +for every second of input are fed into 'decimate', which removes +the extra frame. + +Hope all this hasn't caused you a headache. +If your NTSC DVD contains a film, chances are these filters will +help (actually, they are the only 'correct' solution available +under Linux). + +Since they work perfectly for my NTSC DVDs, I probably won't +mess them up anymore. Feel free to change them as you will, +as they are available under the GPL. + +Thanassis Tsiodras + +To e-mail, remove the well known publishing house from my address. +The joy of spam, you see... + + +Modification for Version 0.4.1 by Frederic Briere <fbriere at fbriere.net> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Date: Tue, 6 Jan 2004 11:35:37 -0500 +Subject: Tentative patch for ivtc + +Hiya! Here's something I whipped out in trying to improve ivtc a bit. +My motivation was that de-interlaced frames never look as good as "real" +ones, and if you're working with material that was telecined the "other" +way (repeating the top frame instead of the bottom frame, or vice versa, +I forget), then you end up with only two good frames out of four, +instead of three. + +The easiest solution is to patch filter_decimate.c to reject the second +frame instead of the first, and that's what I've been doing for a few +months. However, it seemed that the smartest way would be to adjust +filter_ivtc.c itself, which I finally got around to doing. + + +The field parameter specifies whether you want to work on the top field +(by default) or the bottom field. Basically, when you enable +verboseness, if you see lots of "using 0" and "using 1", then you stand +to benefit from working on the opposite field instead. (If ivtc is +using 1s and 2s, you've got it right.) + +I also added a bit of "magic", to give ivtc a little nudge towards the +current field instead of the previous/next one. When looking at the +verbose output, you'll see that ivtc often favors the "wrong" field, ie. +if you work on the top field, and have the following frames: + + Frame: A B C D E + Top field: 1 2 3 3 4 + Bottom field: 1 1 2 3 4 + +Then there is a good chance that frame D will end up with C's top field, +for reasons that are beyond me. + +The values I chose are completely arbitrary, but they seemed to yield +good results for me. Maybe they should be configurable, or maybe +there's a much better way to do this. In any case, I made it an option, +so it's not in the way if you'd rather not use it. diff --git a/debian/transcode/transcode-1.1.7/docs/README.cluster b/debian/transcode/transcode-1.1.7/docs/README.cluster new file mode 100644 index 00000000..c322b601 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/README.cluster @@ -0,0 +1,88 @@ +------------------------------------------------------------- +5 step guide for cluster batch encoding with transcode 0.6.x: +------------------------------------------------------------- + +Note: this feature is only available for transcode-0.6.0pre2 and higher! + +pre-processing: +=============== + +(1) we first rip the desired DVD title into a work directory, containing + only the VOB chunks for transcode's directory mode. This + directory should be accessable for all nodes via NFS. + + example: + ======== + + tccat -i /dev/dvd -T 1,-1 | split -b 1024m - dvd_title/part- + +(2) next we need to create a navigation file to access all the + VOB chunks with frame accurate navigation. + + example: + ======== + + tccat -i dvd_title/ | tcdemux -W >nav_file + +distributed encoding: +===================== + +(3) we need to decide, how many chunks we want to create for + distributed encoding. This number should not be too high, in case + you prefer 2-pass encoding. Otherwise, it may depend on the nodes + in our cluster. Assume we want 8 chunks with approx. + 25k frames. + + For each chunk, switch to a node and invoke transcode with your + favorite options. In addition, use the new -W option: + + example: + ======== + + transcode -i dvd_title/ -W X,8,nav_file -o part-X.avi (.....) + + and repeat this for X=0,1,2,...,7. + Note, this will transcode the video only. Audio is done for the + entire stream in the last step with X=8. Repeat this step in case of + 2-pass encoding. However, in this case we need to specify different + filenames for multi-pass encoding logfile with option -R. + +post-processing: +================ + +(4) merge the resulting files + + example: + ======== + + avimerge -o tmp_movie.avi -i dvd_title/part-* + +(5) finally, the audio has to be encoded separately and multiplexed in one + step + + example: + ======== + + transcode -p dvd_title/ -W 8,8,nav_file -i tmp_movie.avi -P 1 + -x avi,vob -y raw -o movie.avi -u 50 + + This command will pass-through the video, extract the audio track + and multiplex both into movie.avi. Increasing the number of buffer + for audio processing only will boost the performance. + To tell transcode to process all chunks, the first parameter to -W is + identical to the number of chunks. + +---------------------------------------------------------------------------- +Q: Why not use -c 0-25000, ... with 0.5.x? +A: Well, the problem is seeking to large frame numbers requires decoding + all previous frames, which takes way too long. + +Q: Why not transcoding the audio with step (3)? +A: This may lead to AV out of sync on chunk boundaries, since a + MP3 frame requires a certain amount of PCM data and the encoder runs + on different nodes. If you need it, use PCM, this will work fine. + +Q: Will it work for NTSC? +A: Not tested very well. It may or may not work. +---------------------------------------------------------------------------- + diff --git a/debian/transcode/transcode-1.1.7/docs/README.dv b/debian/transcode/transcode-1.1.7/docs/README.dv new file mode 100644 index 00000000..e9ce1e31 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/README.dv @@ -0,0 +1,39 @@ +By Peter Chiocchetti <pch14 at myzel dot net> + +DV only supports two resolutions: 720x576 for PAL, and 720x480 +for NTSC. Possibly, there is also 1920x1080. + +transcode allows other frame sizes too; playing these back in +other applications will show as split images, or rolling +seemingly random colours. + +libdv can be compiled to use either YUY2 or YV12 modes for PAL +video, but there is no function for libdv to tell you which +one it's using... so transcode runs a test frame through the +decoder and tries to guess based on the result. If it gets it +wrong, you can use either --dv_yuy2_mode or --dv_yv12_mode to +force one or the other. The libdv default is YUY2. + +If the bar is only some pixels wide, you should be able to +crop the image, and uncrop it again, adding black borders, +instead of green ones - be sure the frame stays at the above +sizes. Such a bar may be the result of a sampling error in the +capture card or even in signal transmission. + +If you want to display on TV, you need not care of few green +pixels at the bottom at all, as about 0 - 10% of the image +will be offscreen anyways - the region TV sets and beamers +display is closer to 640x480 than to 720x576 for PAL systems +- see eg. the title-safe region in editing software. + +Example: + +This line captures from a pal source to pal dv and crops 64 +pixels from the bottom and adds it again as solid black - +obviously the clipping params are non-intuitively, shouldnt +the sequence be t,l,b,r? + + transcode -q 2 -x v4l2 -i /dev/video0 \ + -p /dev/dsp -g 720x576 -j 64,0,0,0 \ + -Y -64,0,0,0 -y dvraw="qno=2" -o rec.dv \ + -H 0 -n 0x1 -N 0x1 --uyvy --print_status 25 diff --git a/debian/transcode/transcode-1.1.7/docs/README.filter.modfps b/debian/transcode/transcode-1.1.7/docs/README.filter.modfps new file mode 100644 index 00000000..40a6c75e --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/README.filter.modfps @@ -0,0 +1,324 @@ + +I. Introduction + +This file contains some example commands, and scripts which I've +found useful when working with modfps. Additionally there's some +general documentation on how to use it. + +modfps is a filter written for transcode which allows one to alter +the frame rate by either dropping or cloning frames. While one might +initially think that there's a better more intelligent way to alter +the frame rate, most things I've toyed with which seriously compromise +the original frames look poor. + +2. Options + +first of all, I expect that you've run "tcmodinfo -i modfps" ... that's +a good way to at least find out about the options. I'll try giving +some more explanation for each option. + +infps, infrc are depreciated, and I can't immediately think why they +might be used. + +verbose: for each frame, some information about the time the frames + sit in the stream, and whether a frame is skipped/cloned will + be printed. This is info is probably not useful except for + debugging. + +mode : There are two modes of operation, buffered (1) and fast (0). + Buffered mode is the default and recommended mode of operation. + While fast mode will get you the correct frame rate, depending + on the video stream you're working with it may look very poor + + For example, if you have a 29.97fps stream recorded from your + tv card, I've frequently found that it's really 23.976fps or + 25.0fps, and there are just duplicate frames. If you use fast + mode to convert the steam, your odds are one in 5 if you're + going from 29.97 to 23.976 of randomly hitting the pattern + such that the skipped frames are the duplicate frames. If you + miss, you'll skip a frame with action, which gives you a big + jump, and soon after that they'll be the duplicate frame. This + gives one a bad headache if you try to watch to much of it on + a monitor (I'm not sure if it might be acceptable output to + a tv. + + Unless you really need the speed, I'd suggest sticking with + mode 1. + +buffer: The number of frames to buffer. The default is 5, which is + perfect when going from 29.97fps to 23.976. As a note, while + it might initially seem like a good idea to run with 100 buffers + if you've got the RAM, note that modfps does not consider local + effects when deciding which frame to skip/clone. Thus, if one + were going from 29.97fps to 15fps and there were 60 frames + buffered, it could decide that all of the frames that it wants to + skip are the last ones, which would mean that AV could be off + by 1.5 seconds. + + A good formulae to decide on the number of buffers to use is: + buffers = absolute value of ( input_fps/(input_fps-output_fps) ) + +subsample: When calculating the difference of frames, how many pixels do + we look at? If we looked at all of them, buffered mode would + run slower, while not behaving too differently. The current + default is to run with subsample=32 , or to say in English, to + compare every 32nd pixel. on a 640x480 frame this gives 9600 + points of comparison. ... on the 640x240 frames I record from + tv, it's 4800 points of comparison, and I've yet to see modfps + choose a bad frame to skip, but perhaps your source is different + enough to warrant setting this lower. + +clonetype: Ah, the fun stuff. When cloning a frame, modfps will let + one do more than a simple copy of the data. Suppose that the + first cloned frame is frame 5. Frame 5 and 6 of the import + steam will correspond to frame 5 and 7 of the export steam. + Frame 6 of the export steam will varry based on clonetype. + + 0: no special behavior, export frame 6 will be the same as + export frame 5. + + 1: export frame 6 will be composed by alternating the rows + from export frame 5 and 7, with the top row being from frame + 5 . If the display device is interlaced, like a TV, this + might look best (it's similar to how a 23.976 fps dvd is + displayed at 29.97 fps; some of the frames have alternating + rows from the frame previous and after). + + 2: export frame 6 will be composed by alternating the rows + from export frame 5 and 7, with the top row being from frame + 7 . This is similar to value 1, except the order of the + frames is switched. I'm not sure if this would be useful, but + it was trivial to add. + + 3: every pixel of frame 6 will be an arithmetic average of + the corresponding pixel from frame 5 and 7. + + 4: First we examine where the cloned frame sits in the export + stream, and compare it to where it came from in the import + steam. some of the time, the following frame is closer to + "correct" based on timestamps. If so, frame 6 is a copy of + frame 7. + + in other cases, the frame might be temporally weighted closer + to frame 5, or between 7. In such cases, we assign a weight + to frame 5 and 7 such that the sum of the weights are 1. + Then each pixel of frame 6 will be the sum of the weight of + the frame times the pixel of the frame. I.E. if the temporal + weight is closest to frame 5, frame 6 will look mostly like + frame 5, but will have some info from frame 7 in it. + + I think for non-interlaced displays this or value 5 will give + the best results. + + 5: for this, I considered how a TV looks, with the bright + pixels "sticking around" better than the less bright areas. + This is currently only implemented for YUV (and it will + probably stay that way). + + An approximate ordering of the speed of the different clone + types is: 0, 1, 2, 3, 4, 5 from fastest to slowest. In my + opinion, modes 0-4 are fast enough to not worry about speed, + while mode 5 is slow enough that you should test and make + sure you like the results before doing a lot with it. + + +3. Misc. + +Because transcode by default will buffer some (5) frames, whenever +one isn't encoding an entire file (I.E. using "-c" "-J cut" or +"-J skip"). + +As of transcode 0.6.9 filters do not see frames which are not in +the range of "-c" ... thus if one is cutting frames 1000-1500 the +first frame modfps sees is 1000 . As modfps buffers the frame it +sets the TC_FRAME_IS_SKIPPED flag, so it won't be encoded. After +it's read in the buffers it wants, it will start outputting the +frames it's buffered. I.E. the first frame modfps doesn't set as +skipped will be 1005 from the encoder's point of view while +corresponding to frame 1000 from the import stream. + +When using -c , one should add the number of buffers to the last +segment, because all of the frames are offset by a bit. + +I.E. if: "-c 3916-13090,17493-24185,28304-42212,46777-54710" gives +you the segments you want without modifying the frame rates, when +you use modfps=buffers=5 (the default) you should modify the option +to "-c 3916-13090,17493-24185,28304-42212,46777-54715" + +Also of interest is that ivtc works as well with modfps as it +does with decimate. While there's no real benefit to use it when +transcoding from 29.97 to 23.976 fps I've seen 29.97 video which has +telecine effects, except it's at 25.0 fps ... "-J ivtc,modfps=buffers=7" +works well in this case. + +When using -J cut, cut will alter the number of audio frames skipped +so that "-J cut=1000-1500,modfps -f 29.97 --export_fps 23,1" will keep +the AV in sync while -c wouldn't. However, again all the frames in +the export are off by the number of buffers. But the effects are +different from -c , so if you wanted to use +"-J cut="3916-13090,17493-24185,28304-42212" you would then use +"-J cut="3921-13095,17498-24190,28309-42217" + +4. Example commands + +the source video of the example was recorded from my tv card, with +half the height of the source (to avoid interlacing effects, and +because I can't encode 640x480 realtime) . Because of this, the +video I get is usually either 29.97fps (10%) 23.976 (65%) 25.0 (25%). +The percentages correspond to roughly how often I come upon this +source. As you can see, I rarely have something that will look +good without modification, and even then, decimate wouldn't always +save me. + +First, I do a first pass of xvid, video only. + +/usr/bin/nice -n +19 /usr/local/test/bin/transcode --print_status \ +5 --export_fps 25.0,3 -x mplayer -J modfps=buffer=7,hqdn3d -V -i tv.avi \ +-b 64 -c 3916-13090,17493-24185,28304-42212,46777-54715 -y xvid,null \ +-j 0,8 -Y 0,-4 -B 0,39,08 -w 600 -R 1 + +Next, I do the 2nd pass, again, video only. + +/usr/bin/nice -n +19 /usr/local/test/bin/transcode --print_status 5 \ +--export_fps 25.0,3 -x mplayer -J modfps=buffer=7,hqdn3d -V -i tv.avi \ +-b 64 -c 3916-13090,17493-24185,28304-42212,46777-54715 -y xvid,null \ +-j 0,8 -Y 0,-4 -B 0,39,08 -w 600 -R 2 -o tmp.tv.avi + +Now that I have the video, I examine audio. I've found that since +commercials are much louder than TV, before I give anything to filter +astat, I'll rip the raw audio. Note, that the values of -c are +different for audio than they were for video. + +I wish to stress: Currently, one cannot use "-c" with transcode and +process audio and video at the same time while changing the frame +rate without losing AV sync. + +/usr/bin/nice -n +19 /usr/local/test/bin/transcode --print_status \ +500 -f 29.970 --export_fps 25.000 -u 35 -x null,auto -y null,wav -m \ +sound.tv.avi -c 3267-10919,14593-20175,23611-35212,39020-45637 -i tv.avi + +Then we do a quick pass thru with filter astat. + +/usr/bin/nice -n +19 /usr/local/test/bin/transcode --print_status 500 \ +-f 23.976,1 -p sound.tv.avi -J astat=alog -u 50 + +Finally, I encode the audio while using passthru mode to merge it with +video. + +/usr/bin/nice -n +19 /usr/local/test/bin/transcode --print_status 50 \ +-i tmp.tv.avi -o out.tv.avi -p sound.tv.avi -s `cat alog` -P1 -b 64 \ +-y raw + +Please note in the above example that modfps was only used to handle +changing the rate of the video, and that one must give different +values to -c (as of transcode 0.6.9) + +5. Possibly useful scripts + +The following scripts are what I use to calculate my cut sections +which are given to transcode. I use avidemux v2 on input avi's +to cut out commercials from a video stream I had recorded on tv. +I could use avidemux to save the avi, however some of the sections +well be reencodded, and it's a semi-slow process (taking a few +minutes, meaning that it's highly interruptive) so I prefer to just +have transcode take a bit longer to skip over the commercials. +instead I save the edit list, and have my encoding scripts cat +the edit list thru two commands. The first gives the "-c" values +for video, and the 2nd handles it for audio. + +----- BEGIN PERL SCRIPT ----- +#!/usr/bin/perl + +$numbuffers = 5; +$i = 0; +$argc = @ARGV; + +# we take one argument: the number of buffers +if ($argv > 0){ + $numbuffers = $ARGV[0]; +} + +while(<STDIN>){ + if(/^Start : (\d+)/){ + # even tho initially some frames will be skipped, with newest + # transcode, we keep the beginning where it should be, but we must + # add 5 frames to the very last segment. + $c[$i]{start} = 1 + $1; + $_ = <STDIN>; + if(/^Size : (\d+)/){ + $c[$i]{end} = $c[$i]{start}+$1; + $i++; + } else { + print; + die "ergh, we were supposed to find the end\n"; + } + } +} + +if($i > 0){ + $c[$i-1]{end} += $numbuffers ; +} else { + print "-c 0"; + exit -1; +} + +print "-c "; +for($j=0;$j<$i;$j++){ + print "$c[$j]{start}-$c[$j]{end}"; + if($i-1 != $j){ + print ","; + } +} +print "\n"; +----- END PERL SCRIPT ----- + +----- BEGIN PERL SCRIPT ----- +#!/usr/bin/perl + +# read from stdin the workbench + +$infps = 5; +$outfps = 4; +$argc=@ARGV; +if ($argc>0){ + $infps=$ARGV[0]; +} +if ($argc>1){ + $outfps = $ARGV[1]; +} + +use POSIX; +$i = 0; +while(<STDIN>){ + if(/^Start : (\d+)/){ + $c[$i]{start} = ceil((1+$1)*($outfps/$infps)); + $_ = <STDIN>; + if(/^Size : (\d+)/){ + $c[$i]{end} = floor($c[$i]{start}+($1*$outfps/$infps)); + $i++; + } else { + print; + die "ergh, we were supposed to find the end\n"; + } + } +} +print "-c "; +for($j=0;$j<$i;$j++){ + print "$c[$j]{start}-$c[$j]{end}"; + if($i-1 != $j){ + print ","; + } +} +print "\n"; +----- END PERL SCRIPT ----- + +The first script takes one argument, the number of buffers +passed to modfps, and will default to 5, like modfps. The 2nd +script takes two arguments, the import_fps and the export_fps. +Note that the intent of my choice of audio sections was not to +get audio outside of the cutzone (possibly large noise from the +very last bit of a commercial), and thus the video and audio +might end up encoding a different number of frames, and thus +with many cut sections, AV sync might be lost. However, these +work for me ;) + diff --git a/debian/transcode/transcode-1.1.7/docs/README.rip b/debian/transcode/transcode-1.1.7/docs/README.rip new file mode 100644 index 00000000..894e5da2 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/README.rip @@ -0,0 +1,67 @@ +Here is a short guide for making a quick "backup" of +your shiny new multi-angle DVD. +NOTE: Please make sure, the DVD explicitly allows you to make a backup copy. + +(0) insert your DVD;-) +(1) switch to a new empty directory $MY_PATH/DVD/ on your hard drive. +(2) if /dev/dvd is a link to your block device, use tccat's new -P option + + tccat -i /dev/dvd -P 1 | split -b 1024m - VTS_01_ + + This will result in a couple of files named + + VTS_01_aa, VTS_01_ab, ... + + (once LFS is fully working, a single file should be sufficient (???), + i.e., "tccat -i /dev/dvd -P 1 > VTS_01_1.VOB"). + +(3) copy the IFO files by hand. For this, you will need to mount the DVD: + + mount /dev/dvd /mnt/dvd + cp /mnt/dvd/VIDEO_TS/VIDEO_TS.IFO . + + You also need the title IFO file. In this case + cp /mnt/dvd/VIDEO_TS/VTS_01_0.IFO . + + umount /mnt/dvd + +(4) rename the chunks, first file is VTS_01_1.VOB, not VTS_01_0.VOB. The + latter contains still pictures and the like (?). + + mv VTS_01_aa VTS_01_1.VOB + mv VTS_01_ab VTS_01_2.VOB + ... + +(5) repeat step (2-4) for other titles, you wish to keep. In most cases, + the main title will do. Note that the Example after you're done: + + $>ls -l . + total 5529180 + -r--r--r-- 1 bgates users 26624 Jan 13 10:29 VIDEO_TS.IFO + -r--r--r-- 1 bgates users 124928 Jan 13 10:29 VTS_01_0.IFO + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:05 VTS_01_1.VOB + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:06 VTS_01_2.VOB + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:08 VTS_01_3.VOB + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:10 VTS_01_4.VOB + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:12 VTS_01_5.VOB + -rw-r--r-- 1 bgates users 287461376 Jan 13 18:12 VTS_01_6.VOB + +(6) test your copy, you need to provide an absolute path to + the backup directory: + + tcprobe -i $MY_PATH/DVD -T 1 + tccat -i $MY_PATH/DVD -T 1,C,A | [mplayer|xine|...] - + + and optionally check other titles, chapters (C) or even viewing angles (A). + +(7) Please note this backup copy is suitable for navigation with import + module "-x dvd". If you prefer the cluster mode, you need to + apply my cluster mini guide to this copy of your DVD or the DVD in your + drive. The program stream contains full navigation and angle information. + These information are not preserved using the -T option with tccat. + + ----- + + Hint: It does not make sense to apply the procedure to all titles + found with tcprobe, since a lot of titles share VTS* files and IFO files. + diff --git a/debian/transcode/transcode-1.1.7/docs/README.sync b/debian/transcode/transcode-1.1.7/docs/README.sync new file mode 100644 index 00000000..916e7262 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/README.sync @@ -0,0 +1,27 @@ +Audio-Video out of sync after merging encoded DV or VOB clips? + +There is a fundamental problem when merging AVI-files with MP3 sound, that +have been transcoded individually. As far as I know, it needs a certain +amount of raw PCM data to make a single MP3 encoded frame. At the end of the +encoding process, this condition is almost never fulfilled. Therefore, +some audio data are simply not encoded, or, using option -O, +PCM data (silence) are padded to make a final MP3 frame. In the former case, +sound is too short in time, whereas in the latter, the audio played +by a player exceeds the video playtime. This may be only a couple +milliseconds but adds up when merging the clips. + +Why does it work for transcode using option "-t" or DVD chapter mode "-U" ? + +In this case, the MP3 encoder is never switched off. Buffered audio data +never get lost. After merging, audio and video are OK (in theory). +This is also the reason, why the cluster mode must use this approach encoding +the audio in a separate step, unless you want to use raw PCM audio data. + +Now what to do with tons of DV AVI-file clips, you want to merge, but +only after encoding? + +The "directory mode" with option "-i" also works for DV AVI-files (hopefully). +Try to put all clips into a directory and use the directory name +to let transcode extract and merge the raw DV stream for further processing. + + diff --git a/debian/transcode/transcode-1.1.7/docs/README.vcd b/debian/transcode/transcode-1.1.7/docs/README.vcd new file mode 100644 index 00000000..98f868aa --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/README.vcd @@ -0,0 +1,104 @@ +From Gerhard Monzel AT sap.com +Date: Mon, 21 Jan 2002 09:36:34 +0100 + +While producing mpeg videos, you have to give special attention to the +desired image size of your output video (this is a big difference to +avi-encoding). Because mpegs, especially VCD and SVCD can be played in +consumer players, there are some restrictions in "resizing" ! +Usually image sizes for VCDs are 352x240 (NTSC) or 352x288 (PAL), for +SVCD 480x40 (NTSC) or 480x576 (PAL) -> some consumer players can play VCD +sized videos as SVCDs too and vice versa. + +As a further difference to AVIs, the aspect ratio of the video is stored +in header of the mpeg-videos. Therefore most players (pc and consumer +players) will display the right image proportions no matter what X/Y dimensions +your video is encoded. + +In your case of a 720x576 vob in 16:9 aspect ratio, you should use +480x576 as destination image format (PAL) and (force) apsect ratio to 16:9. + +The resulting video will look like expected on PCs with e.g. mplayer, +which will honore the aspect ratio, but many consumer players have problems +switching to 16:9 format in VCD/SVCD mode -> in this case you need a resizer +capable of generating black bars on top/bottom of your video. + +This can't be done with the trancode resizer, but with the internal mpeg- +module resizer (I mean -y mpeg not -y mpeg2enc). You can also mix the resizer +of transcode with the resizer of the mpeg-module too. + +On base of this knoweledge you will concluse, that following options +should produce a "original" looking picture on a 4:3 aspect ratio: + +"-B 5 -y mpeg -F s,3 ..." + +"-B 5" => 720x416 (formats image near to 16:9), + +"-F s,3" => 480x576 (formats image to SVCD size with black bars on top +(80 pixels) and botton (80 pixels), so it will look well on 4:3 display. + +Because of using only high speed resizing options, the transcoding +process will run in better speed than using zoom or other slow rescaling +options. Unfortunately transcode itself can't handle black bars for output +video (in AVI world there is no need of this feature and transcode begans as +AVI transcoding tool). Of cause this described solution won't work +with other export modules e.g. "mpeg2enc" (it lacks of internal black bar +resizer). + +There is no suggestion to calculate filesize for mpegs with variable bitrate +(usually used in SVCD mode), because filesize depends on kind of your +source video (luminances, motion etc.) and the quality value (quant_value) +you are using while encoding. Only the max. possible size is known by the +max. bitrate restriction for SVCD and the count of frames. +to avoid problems with oversized mpeg-files (won't fit on CD), the mpeg- +encoder module can forced to split the encoded file in several parts. +The size per part in MB is given by the "max_file_size"-Parameter used in +conjunction with a user-profile +(-> remember option -F s,3,<name of user-profile>, where this profile may +look like: +max_file_size = 700 +... + +The encoding speed in SVCD-mode varies in a wide range, because of the +big influence of bitrate control method: the encoder calculates the actual +bitrate for all frames of one GOP (group of pictures) and if the max. +bitrate limit is exceeded, the whole GOP will be encoded again with a higher +quantizer value until bitrate fit into limit. Bitrate (for SVCDS) depends +mainly from "quant_value" (lower value / better quality -> higher +bitrate). In conclusion higher quality leads often to lower speed, so it's +your decision what is more worth for you :-) +But there there are some tricks to reduce bitrate for mpeg-2 typed streams +without loosing much quality: +- use of parameter "qscale_type = 0" in your own user-profile (worth to try) +- use image size 352x288 instead 480x576, but with smaller "quant_value" + (3-5) in your user-profile + (most consumer SVCD players have no problem to play such sized streams) +maximum effect results in combination of both hints. + +To observe actual bitrate during encoding you should set transcode option +"-q 2", so you can run short encoding turns to find out the best quant_value +settings. + +To test the maximum encoding speed you should use option -F 1,3 +so you'll see how much the SVCD bitrate control will drop speed. + +Common problems: +---------------- +Green artefacts may be caused from wrong resizing too, please try with +options of the above description. + +Using "-V" option (needed to encode mpegs) will force import modules to +use internal YUV-format instead of RGB. + +But there are several different YUV-Formats and for example some of it +has swapped chroma (UV-) components. + +Weird color on encoded mpegs is not a bug, therefore you can use the "-k" +option to "reswap" the croma components. + + +_______________________________________________ +transcode-users mailing list +http://www.theorie.physik.uni-goettingen.de/mailman/listinfo/transcode-users + + diff --git a/debian/transcode/transcode-1.1.7/docs/README.xvid-credits b/debian/transcode/transcode-1.1.7/docs/README.xvid-credits new file mode 100644 index 00000000..203e4a45 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/README.xvid-credits @@ -0,0 +1,57 @@ +How to get credits-mode working +------------------------------- +You have to adjust the information in 'xvid2.cfg' as this: + +Common information: + +# use credits at the beginning of the movie (0 = no, 1 = yes) +credits_start = 1 + +# set XXX/YYY to begin/end frame of the start credits +credits_start_begin = XXX +credits_start_end = YYY + +# use credits at the end of the movie (0 = no, 1 = yes) +credits_end = 1 + +# set XXX/YYY to begin/end frame of the end credits +credits_end_begin = XXX +credits_end_end = YYY + +The frame numbers are relative to your encoding range; so if you start +encoding at frame 100 and your credits start at frame 150, you have to +set 'credits_start_begin = 50' ! + +Credits mode: + +Via 'credits_mode' you can select from several modes for credit +handling, each using different values: + +VBR_CREDITS_MODE_QUANT: +# Use a fixed quant for all credit frames + +# use this when doing VBR_MODE_FIXED_QUANT +credits_fixed_quant = 20 + +# use this in all other VBR_MODEs... +# ...for I-frames +credits_quant_i = 20 +# ...for P-frames +credits_quant_p = 20 + +Annotation: If and only if credits_quant_i does not equal +credits_quant_p, then I-frames appear in credits. All other modes do not +generate I-frames within credits. This conflicts with this comment: +/* We only care about Keyframes when not in credits */ +Maybe this does also need to be fixed, but I did never try this combination. + +VBR_CREDITS_MODE_RATE: +# Use only 'credits_quant_ratio' % of the full encoding rate as +# encoding rate for credit frames, e.g. with encoding rate 700kpbs +# this uses 140kps for the credits +credits_quant_ratio = 20 + +VBR_CREDITS_MODE_SIZE: +# Use a fixed size XXX/YYY for all opening/ending credit frames together +credits_start_size = XXX +credits_end_size = YYY diff --git a/debian/transcode/transcode-1.1.7/docs/RELNOTES-0.6.13 b/debian/transcode/transcode-1.1.7/docs/RELNOTES-0.6.13 new file mode 100644 index 00000000..8332c395 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/RELNOTES-0.6.13 @@ -0,0 +1,94 @@ +=== Highlights of the 0.6.13 release === + +Features + + * Better dvd support using mpeg export profiles; + use --export_prof dvd-pal or dvd-ntsc for encoding using mpeg2enc/mp2enc or + --export_prof dvd-pal or dvd-ntsc -y ffmpeg for encoding using + libavcodec/ffmpeg (fast!); + + * Experimental support for import_bktr and import_sunau on NetBSD + and OpenBSD; + + * A new option to export_dvraw "static_qno" to supply this value + to libdv (this seems to help to make encoding a lot faster); + + * Check external programs' existence before starting them. This gives + much more informative error messages; + + * Transcode now uses an optimised (asm, mmx, sse, sse2) version of memcpy + when possible. This gives 10% - 20% speed increase; + + * New video deinterlacing filter: filter_tomsmocomp; + + * New import module ffbin that uses the "ffmpeg" executable to decode + video or audio, much like the "mplayer" import module; + + * New audio export module "mp2" that's capable to change runtime, useful + for converting 29.97 fps movies back and forth to 25 fps. + See doc/export_mp2.txt; + + * Default settings for ffmpeg export are now for optimised for maximum + speed which should make real time encoding possible on many computers; + + * New filter filter_levels to scale e.g. ITU-R601 luma values to + the full range and vv. See Changelog for details; + + * aviindex can now convert mplayer-generated index files to + transcode index files and the other way round. See the manpage of + aviindex for usage examples; + + * Support for using ffmpeg/libavcodec multithreaded encoding via the + "threads" entry in ffmpeg.cfg. + +Compilation + + * Use pkgconfig system (/usr/lib/pkgconfig) file for configuring + transcode whenever possible; + + * Modules with external dependencies are not build by default anymore. + Enable these explicitely. Have a close look at the output of + configure --help. This was done to prevent the usual suprises when + running transcode and some of the modules weren't build because their + dependencies weren't met during compile time. Now if you enable a module, + it's dependencies must be met or you will get an error; + + * Removed default compiler optimisation flags which were GCC-specific. + The user needs to supply these him/herself. + +Source code cleanup + + * A lot of autoconf/automake cleanup; + + * FFmpeg is no longer supplied with transcode because it is very important + to always have a recent version of FFmpeg. So now download ffmpeg from + cvs (always from cvs!), configure it to make shared libraries, install it, + and then compile transcode. Transcode cannot be compiled without FFmpeg. + There is a configure option to build transcode linked to ffmpeg statically, + but that's experimental. I will probably only work on linux; + + * Internal frame handling is now done in the YUV colourspace (more + exactly: YUV420P or YV12) by default. This is much more suitable + for almost all video encoders and decoders, so it's faster and more + accurate because often two conversion steps can be skipped. In some + cases the old-style RGB handling is necessary, use either -1 or --use_rgb + to revert to the old behaviour; + + * Removed all autogenerated files from CVS. + +Bugs + + * A lot of bugs fixed; + + * Lots of compile-time warnings fixed; + + * Replaced the stone-age implementation of the resample filter (which also + tends make transcode dump core) by similar functionality from + libavcodec (ffmpeg); + + * The supplied mp3lame lib was also stone-aged so it has been removed. + Use an external version instead. + +=== IMPORTANT === + +Read INSTALL throughly or you won't be able to install transcode! diff --git a/debian/transcode/transcode-1.1.7/docs/RELNOTES-1.1.0 b/debian/transcode/transcode-1.1.7/docs/RELNOTES-1.1.0 new file mode 100644 index 00000000..4235a663 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/RELNOTES-1.1.0 @@ -0,0 +1,280 @@ +=============================== + Transcode 1.1.0 Release Notes +=============================== +:Info: See <http://www.transcoding.org> for more documentation. +:Author: Francesco Romani <[email protected]> +:Date: $Date: 2008-12-24 09:51:18 $ +:Revision: $Revision: 1.1.2.8 $ + + +Introduction +============ + +The transcode team is pleased to announce the avalbility of transcode 1.1.0. +Transcode 1.1.0 is our new major release, that establishes a new milestone for +the project: we have started a massive reorganization of the code, aiming to +address some historical weakness of the project and to prepare land for next +major enhancements. +Despite the huge effort expended, 1.1.0 is a transitional release. +Most of the resources were employed to make the project foundations better, +and a very few benefits surfaced so far; But our effort was fruitful, so +we are ready to develop some new exciting news for next releases. Expect +quicker and more interesting releases soon. + + +Overview +======== + +This section outlines the changes between transcode 1.0.x and 1.1.0. + +--- + +(transcode) Command line reorganization + Some options are renamed, some other are merged, a few others are removed, + in order to make the command line more rational and consistent; online help + (-h) layout was massively reorganized to improve readability. + +(transcode) Module cleanup + During 1.1.0 development cycle the duplicated, obsolete or even broken modules + are been dropped in order to reduce the maintenance burden without reducing the + feature set. Some modules that duplicates the functionalities of the core are + been removed as well, and core functionalities was enhanced. + +(overall) Internal colorspace rationalization + Usage of default colorspace (YUV420P) used internally in transcode is made + consistent through core and modules. No more random usage of -k option, + that is still of course avalabile, and no more blue people. + The support to UYVY colorspace (YUV 4:2:2 packed) was dropped in favour of + planar YUV 4:2:2. Now transcode associates yuv422 to planar, no longer to packed. + +(transcode) Frame counter improvements + The output of frame counter, that also acts as progress meter, was rewritten + and improved. Now it shows more precisely the extimate finishing time, and + it now precisely shows the number of frames in every processing step. + +(tools) New output modes for tcprobe + tcprobe features two now output modes: extended output (option -X) is more + human-friendly and less cluttered; raw output (-R) is intended to be more stable + in time and easier to parse for machines. Old output mode is of course still + the default. + +(overall) **LOT** of bugfixes + **ALL** bugfixes, and much more, applied to 1.0.x branch are of course + applied as well on this release. + +(transcode) new multiple input mode (**technology preview**) + In the past releases, a few modules where capable to handle a directory as a source + and join all file contained. This feature extend trasparently this capability to *all* + modules, allowing the user to specify a collection of -of course, homogeneous- sources + that will be intelligently join. This feature can be enabled using --multi_input mode, + but is still a preview, only a few modules are supported. See transcode(1) for details. + +(overall) new experimental modules (**technology preview**) + As part of internal reorganization and rationalization (see below), a new, revised, improved + architecture for writing transcode modules was introduced. New architecture (*NMS* in transcode + jargon) allows to write more specialized modules, enhances their combinations and reduces + code replication. A fair number of new modules are been written, and more are avalaible + in CVS; those modules are fairly stable, but disabled by default to simplify things for the user. + We expect to fully switch to new modules at least for export side for transcode 1.2.0. + +(overall) better module introspection (**technology preview**) + Another important benefit of new module architecture is to allow the modules to communicate + with transcode core in more complete and unified fashion. The immediate benefit is that + now tcmodinfo is capable to show some module properties (of NMS-compliant modules). + In the long term, this will allow some more juicy things like autocalculation of optimum + buffer size, auto colorspace negotiation and so on. + +(pvm3) the pvm3 code is officially marked as unsupported (and please remember that it was + informmaly unsupported from a while), and it is probably broken. It is leaved as it is + for legacy purposes, but users depending on this should stick on 1.0.x branch. + +(modules) new modules + * import_vag: + decodes VAG audio from PlayStation. + * import_pv3: + provides access to Earth Soft PV3 audio/video streams using + win32 binary codecs and an internal win32 emulation layer (NO wine needed). + * filter_yait: + yait is an advanced, two-step inverse telecine filter contributed by Allan Snider. + The filter purpose and working method can be summarized as follows: + "[yait] is designed specifically to handle mixed progressive and NTSC telecined data + (2:3 pulldown), converting from NTSC_VIDEO (29.97 fps) to NTSC_FILM + (23.976 fps). It uses row save and copy operations to reconstruct progressive + frames. It is provided as an alternative to the -J ivtc,32detect,decimate method." + * filter_stabilize, filter_transform: + This pair of filter constitutes the vid.stab project of Georg Martius. + The project can be summarized as follows: + "Imagine you captured a nice video with your camcorder, compact camera or even cell phone + while skiing, cycling or whatever sports and the video is basically just jiggled. + Modern cameras come along with hardware stabilisation, however this does not work + if you have really strong vibrations - rather the contrary sometimes this mechanisms start + to oscillate. vid.stab is your friend in this matter." + Find out more on http://public.hronopik.de/vid.stab/ . + +(modules) improved modules + * import_mplayer: + this module was greatly improved to better integrate with mplayer, autodetecting the proper + settings. A -M option was also added to tcprobe, to let the program use mplayer internally + for probing, in order to have coherent settings. + A further option --mplayer_probe was added to transcode. This option automatically loads + mplayer import modules both for audio and video streams and also force mplayer for + detection of streams parameters. + Using --mplayer_probe will (Just Work[tm]) in a broad amount of cases. + * import_avi: + internal colorspace conversion for raw content was added. Now this module trasparently + convert the raw content to selected colorspace. + * filter_logo: + Sebastian Kun kindly provided a patchset to enhance the capabilities of this filter. + Highlights: + - allow multiple instances of filter. + - added support for alpha transparency; added an optional + parameter 'fade:x-y' that makes the image fade in for x + frames and fade out for y frames. + - add new UV rescale algorhytm to achieve better results. + added a new parameter 'hqconv' to control this behavior + (default off). + * all LZO-related modules: + those modules are ported, and thus now require, to liblzo version 2. + * import_vob: + The `nodemux' option was added. This option allow to skip the internal synchronization + code that can deliver broken results in some still unknown cases. + * import_ffmpeg: + The `nopad' option was added. This option allow to force to off the input padding setting + that is sometims incorrectly setup by libavcodec in some still unknown cases. + Use this setting if you see the 'slice end reached but...' message during your transcoding. + + You can see the full list of modules options by reading the new split manpages (see below). + +(overall) massive architectural reorganization + A great amount of effort was spended in order to reorganize, modularize and document the + transcode codebase. The first result is the introduction of the following libraries: + + * aclib - ASM accelerated low-level routines. + * libtc - utilities and common infrastructure. + * libtcvideo - high-level video conversion/handling routines. + * libtcaudio - high-level audio conversion/handling routines. + +(overall) growing testsuite + During the 1.1.0 development cycle, we've steadily incremented the amount of automated tests for + the codebase. The long-term goal is to have a comprehensive and automatic test suite, including + the autogeneration of sample test files. + +(documentation) documentation improvements + The improvement of documentation for both user and developer side was another goal of this + new development cycle. Foundations are been laid with the reorganization of manpages. + Much more effort was spent -and will be spent- with the careful and comprehensive introduction + of source code comments, describing internal APIs; with the introduction of developer-oriented + documentation and tutorial. More will come. Keep your eyes on docs/tech tree and on our sites. + +(documentation) manpage revision and split + The transcode manpage was a huge, scaring beast. We're splitted it into four pieces, describing + the transcode core and the modules, divided per module class (import, filter, export). + Splitted manpages are now the official reference for the options of the modules. + +(tools) more helper tools + * tcexport - provides direct access to transcode export layer. + * tcmodchain - test if two modules can be joined together. + + +User visible Changes +==================== + +See the document `CHANGES-1.0-1.1' for a detailed list of user-visible changes, +including commandline options and their syntax, and transcode's output. + + +For Developers +============== + +A big amount of effort during the development cycle of the 1.1.0 release was spent +to make transcode a much more friendlier development environment. We laid substantial +infrastructural changes that will allow substantial improvements during the next cycles. +Anyway, on the infrastructural side, more has still to come. + +--- + +* Coding Guidelines + The coding guidelines for the project are been reorganized and formalized. + See the STYLE file for the complete description of guidelines. + Every change to transcode is now required to conform to such guidelines, with + the partial exception of thirdy-party patches being merged. In that case + the STYLE can be adjusted after the merge. Of course providing patches + conformant to STYLE is the best option. + + With the introduction of the STYLE guidelines, a series of conventions emerged as well. + Some coding principles are now established in the transcode development: + - Document your code: don't *FORCE* the developer to read the source to figure out + how something actually works. In the common case, reading comments/docs should be enough. + - Don't duplicate code: cut'n'paste is banned. If two or more pieces of code share + a common part, this part will be extracted, polished, documented and moved into an + upper layer/utility library. + - Divide and conquest: promote and enforce modularization. A piece of code should do + just one thing, and it should rely on other parts to compose something bigger + + See docs/tech/html/tc_libraries.html for a list of existing ancillary libraries. + For further discussion, use the transcode-devel mailing list. + +* NMS: New Module System + The New Module System (NMS) is an ongoing effort to reorganize and improve the other + big component of transcode: the modules. + The NMS was designed from scratch in order to solve the following problems with + the old module system: + . poor granularity: a former `export' module includes both encoding and multiplexing + (and output handling), so it is impossible to add a new encoder alone, or muxer alone, + and any way to combine both aspect will lead in code duplication (compare + export_dv and export_dvraw, and export_xvid and encode_xvidraw and so on); + The same applies for import side (`import' means both demultiplexing and decoding). + . poor module capability inspection: transcode core has very limited way to query + the module capabilities and/or needs, so module autoloading or efficient resource + usage (es, buffer sizing) is hard or impossible. + . old API promotes bad coding practices (`the huge function syndrome') while NMS + promotes division of functionalties in small pieces (short: modularization). + . new API has built-in multiple instances support, while this was handled per-module + in the past system. + + Documentation for NMS is avalaible in + docs/tech/module-system-API.txt + + the NMS headers are also worth reading, because they are heavily commented. See + libtc/tcmodule*.h + + For the 1.1.0 release, an almost complete NMS export layer, including a collection + of encode and multiplex modules is shipped disabled by default as technology preview + for developers and brave users. Built it by configuring transcode with + ./configure --enable-experimental [options] + + The switch to a full NMS-powered export layer is scheduled for the next major release + (1.2.0). Then, the other layers will follow. + +* Testing + While transcode is note, and it will likley never be, test-driven, we think automated + tests are a _very_ valuable tool. So, a growing subset of the codebase has now automated + tests in testsuite/. + The testsuite will stay up-to-date and will be expanded to cover more and more of the code. + The long-term purpose is to have a full-automated regression suite which can cover + both basic routines and both high-level transcodes, even by autogenerating sources. + If you want to contribute to transcode, it is recommended to + - run the testsuite when you developing, in order to avoid regressions. + - add more tests to testsuite, in order to reduce the risk of uncaught regressions. + + +Bugs +==== + +Despite the effort spent and the new focus on testing, due to large amount of code +changed or being changed, there are likely new bugs in this release, and a few regressions +are possible as well. +Please help us in improving the quality of transcode by reporting bugs and crashes +using the procedure described here: + + http://www.transcoding.org/cgi-bin/transcode?Reporting_Problems + http://www.transcoding.org/cgi-bin/transcode?Reporting_Crashes + +Bugs should be reported in our bug-tracker (listed on http://www.transcoding.org) first; +mailing list should be used as last resort. + + +Last Words +========== + +EOF diff --git a/debian/transcode/transcode-1.1.7/docs/export-mods.txt b/debian/transcode/transcode-1.1.7/docs/export-mods.txt new file mode 100644 index 00000000..5675e5b5 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/export-mods.txt @@ -0,0 +1,183 @@ +M=Nodule +D=Description +C=compile time dependend +R=runtime dependend +I=Info +S=Status +P=processing modes + +M: export_ac3.c +D: (video) null | (audio) ac3 +C: none +R: ffmpeg +S: + +I: Encodes audio (raw PCM) to AC3 via the ffmpeg binary. +P: audio - PCM, video - none + +M: export_divx5.c +D: (video) DivX 5.xx | (audio) MPEG/AC3/PCM +C: libmp3lame (only for MPEG audio layer III) +R: divx4linux (new), libdivxencore.so +S: + +I: Encodes MPEG4 video using the closed-source binaries from divx.com to an AVI container. +P: audio - RAW (pass-through) PCM AC3, video - RGB YUV + +M: export_dv.c +D: (video) Digital Video | (audio) MPEG/AC3/PCM +C: libdv, libmp3lame (only for MPEG audio layer III) +R: libdv +S: + +I: Encodes DV into an AVI container. DV is a codec developed by Sony and is often used in digital camcorders. +P: audio - PCM AC3, video - RGB YUV + +M: export_dvraw.c +D: (video) Digital Video | (audio) PCM +C: libdv +R: libdv +S: + +I: Encodes DV into a DV file. DV is a codec developed by Sony and is often used in digital camcorders. A raw DV file can be played back into the camcorder. +P: audio - PCM, video - RAW (pass-through) RGB YUV YUV422 + +M: export_ffmpeg.c +D: (video) * | (audio) MPEG/AC3/PCM +C: libmp3lame (only for MPEG audio layer III) +R: none +S: + +I: Encodes many different formats to both AVI and raw. Supported are mpeg1video, mpeg2video, mpeg4, mjpeg, h263, h263p, wmv1, wmv2, rv10, msmpeg4, msmpeg4v2, huffyuv and dvvideo. +P: audio RAW (pass-through) PCM AC3, video - RGB YUV YUV422 + +M: export_im.c +D: (video) * | (audio) MPEG/AC3/PCM +C: libImageMagick +R: none +S: + +I: Encodes image sequences by using the ImageMagick library. ImageMagick is able to handle a lot of different image formats such as png, jpg, miff, tiff, etc. Use -F to select the desired format. +P: audio - RAW (pass-through) PCM, video - RGB YUV + +M: export_jpg.c +D: (video) * | (audio) MPEG/AC3/PCM +C: libjpeg +R: none +S: + +I: Encodes jpg image sequences using libjpeg. Faster than ImageMagick. Use -F to select the compression quality. +P: audio - RAW (pass-through) PCM, video - RGB YUV + +M: export_lame.c +D: (audio) MPEG 1/2 +C: libmp3lame (only for MPEG audio layer III) +R: lame, sox +S: + +I: An audio-only encoder which drives the lame binary. The tool sox is used to do resampling if required. Encodes to a MP3 file. +P: audio - PCM, video - none + +M: export_lzo.c +D: (video) LZO real-time compression | (audio) MPEG/AC3/PCM +C: liblzo, libmp3lame (only for MPEG audio layer III) +R: none +S: + +I: Encodes video using a loss-less real-time LZO codec. This codec is a homegrown invention of transcode and is intended as an intermediate storage format. MPlayer can playback LZO-based AVI files as well. +P: audio - RAW (pass-through) PCM AC3, video - RAW (pass-through) RGB YUV DV + +M: export_mov.c +D: (video) * | (audio) * +C: libquicktime +R: libquicktime +S: o +I: Interface to the quicktime library. +P: audio - PCM, video - RAW (pass-through) RGB YUV YUV422 YUY2 + +M: export_mp2.c +D: (video) null | (audio) MPEG 1/2 +C: none +R: ffmpeg, sox +S: + +I: Encodes audio (raw PCM) to MPEG 1 Layer 2 audio aka mp2. Additionaly it can change the speed of the audio stream by a factor you can specify. See docs/export_mp2.txt. +P: audio - PCM, video - none + +M: export_mp2enc.c +D: (audio) MPEG 1/2 +C: mjpegtools +R: mp2enc +S: + +I: Drives the mp2enc binary and writes an MP2 (MPEG1-Layer2) file. Useful for when encoding to SVCD to be multiplexed with mplex after encoding. +P: audio - PCM, video - none + +M: export_mpeg2enc.c +D: (video) MPEG 1/2 +C: mjpegtools +R: mpeg2enc +S: + +I: Drives the mpeg2enc binary. mpeg2enc is a very feature rich MPEG encoder, have a look at its manpage. Encodes generic mpeg1, VCD, SVCD, MPEG2 and DVD type video. +P: audio - none, video - RGB YUV + +M: export_null.c +D: (video) null | (audio) null +C: none +R: none +S: + +I: Data sink. Does nothing else than discarding data. +P: audio - none, video - none + +M: export_ogg.c +D: (video) null | (audio) ogg +C: none +R: oggenc +S: + +I: Drives the oggenc binary. Encodes an Ogg/Vorbis file. Resamples. +P: audio - PCM, video - none + +M: export_ppm.c +D: (video) PPM/PGM | (audio) MPEG/AC3/PCM +C: none +R: none +S: + +I: Writes an image sequence of PGM or PPM files. PPM is an old format and there are several tools around to manipulate such files. +P: audio - RAW (pass-through) PCM AC3, video - RGB YUV + +M: export_pvm.c +D: (video) * | (audio) * +C: libpvm3 +R: pvm +S: + +I: Meta module. It allows transcode to be used in a PVM cluster. See docs/export_pvm.txt +P: audio - RAW (pass-through) PCM AC3, video - RAW (pass-through) RGB YUV DV YUV422 YUY2 + +M: export_raw.c +D: (video) * | (audio) MPEG/AC3/PCM +C: none +R: none +S: + +I: Can write uncompressed streams to an AVI file as well as raw mpeg2 files in pass-through mode. The image format for uncompressed streams can be selected with -F (use -F help to see available formats). +P: audio - RAW (pass-through) PCM AC3, video - RAW (pass-through) RGB YUV DV YUV422 + +M: export_toolame.c +D: (audio) MPEG 1/2 +C: none +R: toolame, sox +S: + +I: Drives the toolame binary to create MP2 audio tracks. Sox is used for resampling if requested. +P: audio - PCM, video - none + +M: export_wav.c +D: (audio) WAVE PCM +C: none +R: none +S: + +I: Creates WAVE PCM files with interleaved audio for stereo. +P: audio - PCM, video - RAW (pass-through) RGB YUV + +M: export_xvid4.c +D: (video) XviD 1.0.x series (aka API 4.0) | (audio) MPEG/AC3/PCM +C: libmp3lame (only for MPEG audio layer III) +R: libxvidcore.so.4 +S: + +I: Encodes MPEG4 video using the library available from xvid.org. Check out the library from xvidcvs using cvs -d :pserver:[email protected]:/xvid co -rdev-api-4 xvidcore. There is also a tool available to create configuration files for this xvid version at http://zebra.fh-weingarten.de/transcode/xvid4conf. The output can either be an AVI file or a MPEG4 elementary stream (with -F raw). +P: audio - RAW (pass-through) PCM AC3, video - RGB YUV YUV422 + +M: export_yuv4mpeg.c +D: (video) YUV4MPEG2 | (audio) MPEG/AC3/PCM +C: mjpegtools +R: none +S: + +I: Writes the uncompressed raw YUV data in a YUV4MPEG format as used by the lav* and mjpeg* tools. +P: audio - RAW (pass-through) PCM AC3, video - RGB YUV diff --git a/debian/transcode/transcode-1.1.7/docs/export_ffmpeg.txt b/debian/transcode/transcode-1.1.7/docs/export_ffmpeg.txt new file mode 100644 index 00000000..63575a88 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/export_ffmpeg.txt @@ -0,0 +1,470 @@ +Parts based on mplayers DOCS/tech/libavc-option.txt. + +Some (basic) options are supported through the transcode commandline and +some through the config file ffmpeg.cfg or ~/.ffmpeg.cfg. The format of the +config file is simple. It can consists of several sections, each prefixed +by a header [codec] which is the same string you give to transcode through -F. + +WARNING: contrary to popular belief, it's NOT possible to supply libavcodec +OPTIONS to the ffmpeg export module using -F. The -F option is solely used +to select the CODEC. Libavcodec options go in the config file. + +To see all supported options, have a look at the output of 'transcode -y +ffmpeg -F mpeg4 -q2' + +For the most up-to-date description of the options, have a look at your +mplayer manual page. Note that not all options may be supported by transcode. + + --- ~/.ffmpeg.cfg ---- + [mpeg4] + qpel = 1 + trellis = 1 + + [mpeg1video] + --- ~/.ffmpeg.cfg ---- + +Now to the options. + +Description of what all those libavcodec options do ... +WARNING: I am no encoding expert so the recommendations might be bad ... +if you find any errors, missing stuff, ... send a patch or cvs commit if you +have an cvs account :) + +lavcopts: (encoder options) +--------------------------- + +vqmin 1-31 (minimum quantizer) for pass1/2 + 1 is not recommended (much larger file, little quality difference (if u are lucky) + and other weird things (if u are less lucky)) + weird things: msmpeg4, h263 will be very low quality + ratecontrol will be confused -> lower quality + some decoders will not be able to decode it + 2 is recommended for normal mpeg4/mpeg1video encoding (default) + 3 is recommended for h263(p)/msmpeg4 + the reason for 3 instead of 2 is that 2 could lead to overflows + (this will be fixed for h263(p) by changing the quantizer per MB in + the future, but msmpeg4 doesnt support that so it cant be fixed for + that) + + TRANSCODE: use --divx_quant min,max + +vqscale 1-31 quantizer for constant quantizer / constant quality encoding + 1 is not recommended (much larger file, little quality difference and + possible other weird things) + lower means better quality but larger files + see vqmin + + TRANSCODE: use --divx_quant min + +vqmax 1-31 (maximum quantizer) for pass1/2 + 31 default + 10-31 should be a sane range + + TRANSCODE: use --divx_quant min,max + +mbqmin 1-31 (minimum macroblock quantizer) for pass1/2 + 2 default + +mbqmax 1-31 (maximum macroblock quantizer) for pass1/2 + 31 default + +vqdiff 1-31 (maximum quantizer difference between I or P frames) for pass1/2 + 3 default + +vmax_b_frames 0-4 (maximum number of B frames between non B frames) + 0 no b frames (default) + 0-2 is a sane range for mpeg4 + +vme 0-5 (motion estimation) + 0 none (not recommanded, very lq) + 1 full (not recommanded, too slow) + 2 log (not recommanded, lq) + 3 phods (not recommanded, lq) + 4 EPZS (default) + 5 X1 (experimantal, might change from time to time or be just broken) + Note: 0-3 ignores the amount of bits spend currently, so dont complain + about low quality + +vhq (high quality mode) + encode each MB as in all modes and choose the best (this is slow but + better filesize/quality) + enabled by default + + NOTE: this is option is obsolete and has been replaced by the mbd + option, values: + + 0: fast (real-time encoding) (default) + 1: hq mode 1 + 2: hq mode 2 + +v4mv + allow 4 MV per MB (little difference in filesize/quality) + disabled by default + +keyint 0-300 (maximum interval between keyframes) + keyframes are needed for seeking as seeking is only possible to a + keyframe but they need more space than non-keyframes so larger numbers here + mean slightly smaller files, but less precise seeking + 0 no keyframes + >300 is not recommended as the quality might be bad (depends upon + decoder, encoder and luck) + for strict mpeg1/2/4 compliance this would have to be <=132 + + TRANSCODE: use -w X,X,keyint + +vb_strategy 0-1 for pass 2 + 0 allways use the max number of B frames (default) + 1 avoid B frames in high motion scenes (this will cause bitrate + misprediction) + +vpass + 1 first pass + 2 second pass + (only need to specify if two-pass encoding is used) + Tip: u can try to use constant quantizer mode for pass1 (vqscale=<quantizer>) + for huffyuv: + pass 1 saves statistics + pass 2 encodes with a optimal huffman table based upon the pass 1 stats + + TRANSCODE: use -R (1|2) + +vbitrate (kbits per second) for pass1/2 + 800 is default + (if value is bigger then 16000 it is interpreted as bit not kbit!) + + TRANSCODE: use -w bitrate + +vratetol (filesize tolerance in kbit) for pass1/2 + this is just an approximation, the real difference can be much smaller + or larger + 1000-100000 is a sane range + 8000 is default + +vrc_maxrate (maximum bitrate in kbit/sec) for pass1/2 +vrc_minrate (minimum bitrate in kbit/sec) for pass1/2 +vrc_buf_size (buffer size in kbit) for pass1/2 + this is for stuff like VCD + VCD: FIXME + SVCD: ... + DVD: ... + Note: vratetol should not be too large during the 2.pass or there might + be problems if vrc_(min|max)rate is used + +vb_qfactor (-31.0-31.0) for pass1/2 + 1.25 is default +vi_qfactor (-31.0-31.0) for pass1/2 + 0.8 is default +vb_qoffset (-31.0-31.0) for pass1/2 + 1.25 is default +vi_qoffset (-31.0-31.0) for pass1/2 + 0.0 is default + if v{b|i}_qfactor > 0 + I/B-Frame quantizer = P-Frame quantizer * v{b|i}_qfactor + v{b|i}_qoffset + else + do normal ratecontrol (dont lock to next P frame quantizer) and + set q= -q * v{b|i}_qfactor + v{b|i}_qoffset + tip: to do constant quantizer encoding with different quantizers for + I/P and B frames you can use: + vqmin=<ip_quant>:vqmax=<ip_quant>:vb_qfactor=<b_quant/ip_quant> + +vqblur (0.0-1.0) quantizer blur (pass1) + 0.0 qblur disabled + 0.5 is the default + 1.0 average the quantizer over all previous frames + larger values will average the quantizer more over time so that it will + be changed slower +vqblur (0.0-99.0) quantizer blur (pass2) + gaussian blur (gaussian blur cant be done during pass 1 as the future quantizers arent known) + 0.5 is the default + larger values will average the quantizer more over time so that it will + be changed slower + +vqcomp quantizer compression (for pass1/2) + depends upon vrc_eq + +vrc_eq the main ratecontrol equation (for pass1/2) + 1 constant bitrate + tex constant quality + 1+(tex/avgTex-1)*qComp approximately the equation of the old ratecontrol code + tex^qComp with qcomp 0.5 or something like that (default) + + infix operators: +,-,*,/,^ + variables: + tex texture complexity + iTex,pTex intra, non intra texture complexity + avgTex average texture complexity + avgIITex average intra texture complexity in I frames + avgPITex average intra texture complexity in P frames + avgPPTex average non intra texture complexity in P frames + avgBPTex average non intra texture complexity in B frames + mv bits used for MVs + fCode maximum length of MV in log2 scale + iCount number of intra MBs / number of MBs + var spatial complexity + mcVar temporal complexity + qComp qcomp from the command line + isI, isP, isB is 1 if picture type is I/P/B else 0 + Pi,E see ur favorite math book + + functions: + max(a,b),min(a,b) maximum / minimum + gt(a,b) is 1 if a>b, 0 otherwise + lt(a,b) is 1 if a<b, 0 otherwise + eq(a,b) is 1 if a==b,0 otherwise + sin,cos,tan,sinh,cosh,tanh,exp,log,abs + +vrc_override user specified quality for specific parts (ending credits ...) (for pass1/2) + <start-frame>,<end-frame>,<quality>[/<start-frame>,<end-frame>,<quality>[/...]] + quality 2..31 -> quantizer + quality -500..0 -> quality correcture in % + +vrc_init_cplx (0-1000) initial complexity for pass1 + +vqsquish (0 or 1) for pass1/2 how to keep the quantizer between qmin & qmax + 0 use cliping + 1 use a nice differentiable function (default) + +vlelim (-1000-1000) single coefficient elimination threshold for luminance + 0 disabled (default) + -4 (JVT recommendation) + negative values will allso consider the dc coefficient + should be at least -4 or lower for encoding at quant=1 + +vcelim (-1000-1000) single coefficient elimination threshold for chrominance + 0 disabled (default) + 7 (JVT recommendation) + negative values will allso consider the dc coefficient + should be at least -4 or lower for encoding at quant=1 + +vstrict (-1,0,1) strict standard compliance + 0 (default) + 1 only recommended if you want to feed the output into the mpeg4 reference + decoder + -1 allows nonstandard YV12 huffyuv encoding (20% smaller files, but + cant be played back by the official huffyuv codec) + +vdpart data partitioning + adds 2 byte per video packet + each videopacket will be encoded in 3 seperate partitions: + 1. MVs (=movement) + 2. DC coefficients (=low res picture) + 3. AC coefficients (=details) + the MV & DC are most important, loosing them looks far worse than + loosing the AC and the 1. & 2. partition (MV&DC) are far smaller than + the 3. partition (AC) -> errors will hit the AC partition much more + often than the MV&DC -> the picture will look better with partitioning + than without, as without partitining an error will trash AC/DC/MV + equally + improves error-resistance when transfering over unreliable channels (eg. + streaming over the internet) + +vpsize (0-10000) video packet size + 0 disabled (default) + 100-1000 good choice + improves error-resistance (see vdpart for more info) + +gray grayscale only encoding (a bit faster than with color ...) + +vfdct (0-99) dct algorithm + 0 automatically select a good one (default) + 1 fast integer + 2 accurate integer + 3 mmx + 4 mlib + +idct (0-99) idct algorithm + 0 automatically select a good one (default) + 1 jpeg reference integer + 2 simple + 3 simplemmx + 4 libmpeg2mmx (inaccurate, DONT USE for encoding with keyint >100) + 5 ps2 + 6 mlib + 7 arm + note: all these IDCTs do pass the IEEE1180 tests AFAIK + +lumi_mask (0.0-1.0) luminance masking + 0.0 disabled (default) + 0.0-0.3 should be a sane range + warning: be carefull, too large values can cause disasterous things + warning2: large values might look good on some monitors but may look horrible + on other monitors + +dark_mask (0.0-1.0) darkness masking + 0.0 disabled (default) + 0.0-0.3 should be a sane range + warning: be carefull, too large values can cause disasterous things + warning2: large values might look good on some monitors but may look horrible + on other monitors / TV / TFT + +tcplx_mask (0.0-1.0) temporal complexity masking + 0.0 disabled (default) + +scplx_mask (0.0-1.0) spatial complexity masking + 0.0 disabled (default) + 0.0-0.5 should be a sane range + larger values help against blockiness, if no deblocking filter is used + for decoding + Tip: crop any black borders completly away as they will reduce the quality + of the MBs there, this is true if scplx_mask isnt used at all too + +naq normalize adaptive quantization (experimental) + when using adaptive quantization (*_mask), the average per-MB quantizer + may no longer match the requested frame-level quantizer. using naq will + attempt to adjust the per-MB quantizers to maintain the proper average. + +ildct use interlaced dct + +format + YV12 (default) + 422P (for huffyuv) + +pred (for huffyuv) + 0 left prediction + 1 plane/gradient prediction + 2 median prediction + +qpel use quarter pel motion compensation + Tip: this seems only usefull for high bitrate encodings + +precmp comparission function for motion estimation pre pass +cmp comparission function for full pel motion estimation +subcmp comparission function for sub pel motion estimation +mbcmp comparission function for macroblock decission + 0 SAD (sum of absolute differences) (default) + 1 SSE (sum of squared errors) + 2 SATD (sum of absolute hadamard transformed differences) + 3 DCT (sum of absolute dct transformed differences) + 4 PSNR (sum of the squared quantization errors) (dont use, low quality) + 5 BIT (number of bits needed for the block) + 6 RD (rate distoration optimal, slow) + 7 ZERO (0) + +256 (use chroma too, doesnt work (correctly) with b frames currently) + Tip: SAD is fast, SATD is good, SSE is something in between + Tip2: when using SATD/DCT/BIT/RD for full pel search then a + larger diamond something like dia=2 or dia=4 might improve + quality, but only for some videos + Note: mbcmp is only used if hq mode is disabled + +predia (-99 - 6) diamond type & size for motion estimation pre pass +dia (-99 - 6) diamond type & size for motion estimation + ... + -3 shape adaptive diamond with size 3 + -2 shape adaptive diamond with size 2 + -1 experimental + 1 normal size=1 diamond (default) =EPZS type diamond + 0 + 000 + 0 + 2 normal size=2 diamond + 0 + 000 + 00000 + 000 + 0 + ... + Tip: the shape adaptive stuff seems to be faster at the same quality + Note: the sizes of the normal diamonds and shape adaptive ones dont + have the same meaning + +trell trellis quantization + this will find the optimal encoding for each 8x8 block + trellis quantization is quite simple a optimal quantization in the + PSNR vs bitrate sense (assuming that there would be no rounding errors introduced + by the IDCT, which is obviously not the case) it simply finds a block for the minimum of + error + lambda*bits + lambda is a qp dependant constant + bits is the amount of bits needed to encode the block + error is simple the sum of squared errors of the quantization + +last_pred (0-99) amount of motion predictors from the previous frame + 0 (default) + a -> will use 2a+1 x 2a+1 MB square of MV predictors from the previous frame + +preme (0-2) Motion estimation pre-pass + 0 disabled + 1 only after I frames (default) + 2 allways + +subq (1-8) subpel refinement quality (for qpel) + 8 (default) + Note: this has a significant effect on the speed + +psnr will print the psnr for the whole video after encoding and store the per frame psnr + in a file with name like "psnr_012345.log" + + +TRANSCODE: The decoder options are currently unused in transcode + +lavdopts: (decoder options) +--------------------------- + +ec error concealment + 1 use strong deblock filter for damaged MBs + 2 iterative MV search (slow) + 3 all (default) + Note: just add the ones u want to enable + +er error resilience + 0 disabled + 1 carefull (should work with broken encoders) + 2 normal (default) (works with compliant encoders) + 3 agressive (more checks but might cause problems even for valid bitstreams) + 4 very agressive + +bug manual workaround encoder bugs (autodetection isnt foolproof for these) + 0 nothing + 1 autodetect bugs (default) + 2 for msmpeg4v3 some old lavc generated msmpeg4v3 files (no autodetect) + 4 for mpeg4 xvid interlacing bug (autodetected if fourcc==XVIX) + 8 for mpeg4 UMP4 (autodetected if fourcc==UMP4) + 16for mpeg4 padding bug + 32for mpeg4 illegal vlc bug (autodetected per fourcc) + 64for mpeg4 XVID&DIVX qpel bug (autodetected) + Note: just add the ones u want to enable + +gray grayscale only decoding (a bit faster than with color ...) + +idct see lavcopts + note: the decoding quality is highest if the same idct algorithm is used + for decoding as for encoding, this is often not the most accurate though + + +Notes: 1. lavc will strictly follow the quantizer limits vqmin, vqmax, vqdiff + even if it violates the bitrate / bitrate tolerance + 2. changing some options between pass1 & 2 can reduce the quality + +FAQ: Q: Why is the filesize much too small? + A: Try to increase vqmin=2 or 1 (be carefull with 1, it could cause + strange things to happen). + Q: What provides better error recovery while keeping the filesize low? + Should I use data partitioning or increase the number of video packets? + A: Data partitioning is better in this case. + +Glossary: +MB Macroblock (16x16 luminance and 8x8 chrominance samples) +MV Motion vector +ME Motion estimation +MC Motion compensation +RC Rate control +DCT Discrete Cosine Transform +IDCT Inverse Discrete Cosine Transform +DC The coefficient of the constant term in the DCT (avg value of block) +JVT Joint Video Team Standard -- http://www.itu.int/ITU-T/news/jvtpro.html +PSNR peak signal to noise ratio + +Examples: +mencoder foobar.avi -lavcopts vcodec=mpeg4:vhq:keyint=300:vqscale=2 -o new-foobar.avi +mplayer foobar.avi -lavdopts bug=1 + +Links: +short intro to mpeg coding: +http://www.eecs.umich.edu/~amarathe/mpeg.html +longer intro to jpeg/mpeg coding: +http://www.cs.sfu.ca/undergrad/CourseMaterials/CMPT479/material/notes/Chap4/Chap4.2/Chap4.2.html +ftp://ftp.tek.com/mbd/manuals/video_audio/25W_11418_4.pdf + +-- +Written 2002 by Michael Niedermayer and reviewed by Felix Buenemann. +Check the MPlayer documentation for contact-addresses. + diff --git a/debian/transcode/transcode-1.1.7/docs/export_mp2.txt b/debian/transcode/transcode-1.1.7/docs/export_mp2.txt new file mode 100644 index 00000000..200b2e80 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/export_mp2.txt @@ -0,0 +1,130 @@ +export_mp2 Documentation +======================== + +Last update 2004-08-03, Simone Karin Lehmann < simone at lisanet dot de > + + +General: +-------- + +Some time ago I spend a lot of time to convert short movie clips to +vcd compliant mpeg files. And with some of them I had the need to convert them +from NTSC 23.976 fps to PAL 25 fps. I decided to do it the same way as it's usualy +done with native film material, meaning the movie is just played faster. No +additional frames should be generated. So I began to hack the transcode sources and +wrote this module. + +For more information on changing the speed of the video stream please take a +look at section - Changing video speed - at the end of this documentation. + +I've coded a new audio export module instead of a filter plugin because it was +easier to implement this audio speed changing stuff by using pipes. And pipes are +easy to implement in export modules. + +IMO this isn't a drawback, because most needs to change audio speed will be +in cases mentioned above where native film material (24 fps) should be converted +to PAL (25 fps) or from PAL to NTSC (23.976 fps, 29.97 pulldown) and be played +on hardware DVD players. Therefor MPEG 1 Layer 2 was choosen as audio codec. + +This module processes audio streams only. There are no compile time +depencies. It uses the ffmpeg encoder to process audio and therefor it's very fast. +For speed changing issues you need the sox binary. + + +Depencies: +---------- + +At run time ffmpeg and sox must be present. + + +Usage: +------ + +To use this module just do + +-y <video_module>,mp2 + +Additionaly, if you want to change the speed of the audio, you can append a factor +to the module. Use the module the following way + +-y <video_module>,mp2=speed=N + +where N is an unsigned float. N < 1.0 will slow down audio (meaning playing +time will increase) whereas N > 1.0 will speed up audio (meaning playing time +will decrease) The pitch of the audio is not corrected. E.g. to speed up +audio by 25/23.976 (this is used to convert NTSC film material to PAL) use + +-y <video_module>,mp2=speed=1.0427093 + + +Changing video speed: +--------------------- + +Well, the basic idea is to bypass the internal transcode calculations and settings +of the export frame rate. The bypass has to be done because otherwise transcode will +call some frame rate modifying filters to generated new frames or drop existing frames. + +The -f option is used by transcode to overwrite the autoprobed value of the input stream. +The --export_fps, if not given on the command line, will be set to the same value as -f +and handed over to the export module and therefor to the encoder. +Now if you specify a --export_fps value which differs from -f (or autoprobe) transcode +just calls the fps filter plugin automaticly. This is the same as using transocde +with "-J fps" or the like. And this will generate or drop some frames. + +But just remeber, we want to change the speed, meaning the total playing time, and not +the amount of frames. + +With mpeg videos this can simply be done by setting a flag in headers of the output +video stream. For the ffmpeg and mpeg2enc export module this i decribed now. + +export_ffmpeg: + +Use somewhere in your ffmpeg.cfg (or ~/.ffmpeg.cfg) config file the option + +fps_code = VALUE + +where VALUE has the same range and meaning as transcode's frame rate code (-f 0,N) + +VALUE means +0 use transcodes fps settings, this is the default +1 23.976 fps +2 24 +3 25 +4 29.970 +5 30 +6 50 +7 59.940 +8 60 + +If this option is set, all transcode frame rate settings (-f, --export_fps or +autoprobed values) are ignored. The encoder frame rate is set to the +corresponding value shown above. This is useful, if you want to "convert" from +PAL to NTSC or vice versa by speeding up or slowing down the video. No frame +will be dropped or added, only the frame rate entries in the headers are set +to the new value. + +To "convert" from 23.976 fps to 25 fps put +fps_code = 2 + +or from 25 to 23.976 fps +fps_code = 1 + + +expot_mpeg2enc: + +The mpeg2enc binyry which is driven by this modules know about an option called to +set the frame rate in the resulting output stream. You can specify this option by adding +a string to transcode's -F option. E.g. if you are using mpeg2enc to encode to standard +dvd compliant streams do + +-y mpeg2enc,<audio_module> -F 8,"-F 1" + +But please don't mix them up. -F 8 is recognized by the transcode export module and +"-F 1" is passed to the mpeg2enc binary itself. Just take a look at the manpages of +transcode and mpeg2enc. + + + +... hope you enjoy. + +Simone Karin Lehmann diff --git a/debian/transcode/transcode-1.1.7/docs/faq b/debian/transcode/transcode-1.1.7/docs/faq new file mode 100644 index 00000000..139941d3 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/faq @@ -0,0 +1,298 @@ +---- +Q: I am using version 0.6.x where x <= 14, and I'm having + some sort of problem +A: Upgrade to the CVS version, this is the only version + that is supported. +--- +Q: How do I obtain transcode from CVS +A: There are instructions available at + http://www.transcoding.org/#cvs (tibit) +--- +Q: I now got transcode from CVS, how do I compile + and install it? +A: See the INSTALL file. +--- +Q: So I got transcode from CVS and compiled it according + to the directions in the INSTALL file, and now I (still) + have some sort of problem +A: Join the transcode-users mailing list + (see www.transcoding.org) and check the archive if + your problem has been discussed at the mailing list before. +--- +Q: I still have a problem and it hasn't been discussed before. +A: If your problem is that transcode "hangs" without doing anything, + that is a known problem which is hard to solve. Often running + transcode this way: "env LD_ASSUME_KERNEL=2.4.0 transcode ..." + seems to help. +--- +Q: I still have a problem and it's not that transcode + hangs. +A: If your problem is that transcode is killed by a signal + (e.g. segmentation fault), perform these steps (carefully!) + - recompile transcode for debugging (see the INSTALL file + for details) + - install it + - start transcode from within gdb like this: + $ gdb transcode + (gdb) <transcode command line options> + - when gdb stops, type these commands: + (gdb) where + (gdb) bt full + - now file a bug report in transcode-users, including: + * the complete transcode command line your're using + * the complete output of the transcode run, with option -q 2 + * the output of gdb + - only with a full bug report we can do ANYTHING at all. +--- +Q: How do I make a copy of a DVD-9 +A: For german reading users here is a link http://linuxwiki.de/DvdAuthoring (felix) +--- +Q: Finally, there's the questions about the justly infamous + ffmpeg.cfg file. What are all the parameters and what do + they mean? +A: The easiest way to find out is to look at the mplayer manpage at + http://www.mplayerhq.hu/DOCS/man/en/manpage.html#CODEC%20SPECIFIC%20ENCODING%20OPTIONS%20(MENCODER%20ONLY) + and scroll down to "lavc"<br /> + If you\'re just going to encode to (S)VCD or DVD, you\'d better use the + profile support. + In transcode, you can put these options into a config file (use -q2 to + generate one) called ffmpeg.cfg (ems, tibit) +--- +Q: What's the difference between -j and -Y? +A: This one I know. The difference between -j and -Y is only + the order that transcode does the clipping. In the manual + page we find + + The video frame operations ordering is fixed: + "-j -I -X -B -Z -Y -r -z -l -k -K -G -C" + (executed from left to right). + + So if one needs to do frame clipping and resizing, in a + specific order, he can choose the apropriate transcode + options. + + For instance, if one wants to clip and then resize the + video frame, in this order, he can use -j (clip) and + -B (resize). In this case -Y and -B would not work, as + the operation -Y is done after -B. + + There are still two other options for clipping: + --pre_clip (executed before -j) and + --post_clip (executed after -Y). (ems) +--- +Q: How do I transcode an avi to mpeg? +PA: (Partial answer) In this form, your question cannot + easily be answered. You're talking of _container_ + formats (avi, mpeg) while you probably mean _codec_ + formats. + <br /> + A _container_ is a file format designed to hold both + audio and video (and sometimes more) data in a way that + a player application can play them back properly (that + means, with audio and video synchronised). + <br /> + Examples of container formats are avi, mpeg-ps, mpeg-ts, + asf, quicktime, mp4. + <br /> + The _codec_ on the other hand, determines what's inside + the _container_, it is the (compressed) video or audio + data itself. + <br /> + Examples of video codecs are: mpeg1, mpeg2, mpeg4 (aka + "divx", "xvid"), realvideo, wmv, dv. + <br /> + Examples of audio codecs are: mpeg1-layer2 (aka "mp2"), + mpeg1-layer3 (aka "mp3"), wma, aac, pcm. + <br /> + BTW in avi container files, there's mostly mpeg4 video + content and mp3 audio content (although this is + absolutely not obligatory, use tcprobe to find out). + If you want to burn material on a SVCD or DVD, you need + to have the video in mpeg2, the audio in mp2 (or ac3 in + case of DVD) and both of these in a mpeg-ps (program + stream aka "vob") container. + + With this information you should be able to refrase + your question a get a proper answer ;-) (ems) +--- +Q: Peoples' faces are purple! +A1: This probably means that the u and v planes (Cr/Cb) are + being swapped. As there is no clean definition whether u + should be Cr or Cb (and vv), this easily happens. (ems) +A2: I solved this problem with the -k option to transcode. + People are no longer purple. Hence, if you're transcoding + from YUY2 to YV12 and you get purple people, you need + to use the -k option. (ems) +--- +Q: People are upside-down! +A: Use -z. Usually it goes away when you turn on YUV mode with -V. (tibit) +--- +Q: I have installed latest transcode tool from source and + then from rpm. Whenever I run program it falls over as + it cannot find export_mp2enc.so. +A: RPM packages of some distributions are not complete. This is a + general problem. If you want to use the mpeg2enc export module, you + will have to compile transcode yourself, or try to find a complete rpm + on the net. (ems) +--- +Q: Do I need the avifile library to write AVI files? +A: No. Transcode has its own library for writing AVI files. The avifile + library is used to enable support for win32 binary codecs. The libavcodec + from the ffmpeg project has a free implementation for most of these codecs + anyway. (tibit) +--- +Q: Help! I got lots of "no"s after running ./configure! +A: This is not necessarily a bad thing. transcode has configure checks + for some very "obscure" import and export codecs which you probably + never use anyway. <br /> + If you are sure you have a specific library installed and transcode still + does not find it, have a look at config.log to find out the reason. (tibit) +--- +Q: When trying to read a DVD I get something like + <tt> (dvd_reader.c) no support for DVD reading configured - exit. </tt> + What am I missing, ie what do I need to do to fix it? +A: You have probably installed transcode from source and you are missing + the dvdread library. This library (including the -devel packages) must be + installed at compile time and transcode must find it. If transcode + found it, it will print <tt>"DVD navigation support with libdvdread + yes"</tt> at the end of the configure run. (tibit) +--- +Q: I am missing the mp3 import module (import_mp3.so)! +A: You need to have a recent lame library installed. Including all header + files (-devel package) (tibit) +--- +Q: How do I calculate the best tcrequant number from within a script + when going from a DVD9 to a DVD5? +A: Once you have separated (using tcextract) the audio and the video, + get the file sizes of the audio and video files. If you are burning to + a DVD5, the maximum image size is 4700000000. So the following + equation will give you a 'best fit' number. 1.04 is a fudge factor to + leave space for the file system and other overhead. + <br /> + If you are including more that one audio stream or a subtitle stream, + those filesizes must also be subtracted from the maximum dvd image size. + + <pre> + requant_factor = (video_size / (dvdmax_size - audio_size)) * 1.04; + tcrequant -i ofile.m2v -o movie.m2v -f requant_factor + </pre> (cooper) +--- +Q: What options to set in ~/.transcode/ffmpeg.cfg for encoding to dvd with + ffmpeg, when not using profile support +A: <pre>vrc_minrate=0 + vrc_maxrate=9800 + vrc_buf_size=1792 + + </pre> + If ratecontrol still is insufficient, try: + <pre> + lmin=0 + lmax=10000 + + </pre> + (try lower lmax if still not right) (ems). +--- +Q: What does "Can't step back 17" (or similar) means? +A: This message comes from the mp3 decoder (lame). It means (since + mp3 has interdependent chunks) that one ore more previous mp3 + chunks are missing "Can't step back ...". This usually happens when + the file was split at some time. + There is not much you can do about it. (tibit) +--- +Q: I have problems encoding with the divx4linux libraries from divx.com +A: Transcode ships two divx encoder modules. One is divx4 and one is divx5. + Please note that the `4' in divx_4_linux only stands for the word "for" + it does <b>not</b> denote the version number.<br /> + Use -y divx4 if you have a really old version of the divx4linux + libraries installed. The divx5 export module is usuable depended on the + divx4linux libraries you had installed when you compiled transcode. The + Developers from divx.com changed their API in a backwards incompatible + way causeing that -y divx5 either supports the new API or the old one. + They are mutually exclusive. So if you have problems with -y divx4 try + -y divx5. + <br /> + Please note that the current version of the divx4linux libraries + available form divx.com have a bug on they may segfault on Pentium4 + systems. There is another bug in older versions of divx4linux where it + crashes when writting data to a FAT32 windows partition. Look at + http://www.exit1.org/dvdrip/doc/faq.cipp#faq11 + <br /> +--- +Q: transcode cannot find libdivxdecore.so/libdivxencore.so/libxvidcore.so ... +A: The best place to put these libraries is the transcode libdir + (/usr/local/lib/transcode/ by default). You can find out the libdir of + your transcode installation by executing <tt>tcmodinfo -p</tt>. + Transcode will look into this libdir first when searching for a + library. When that fails, transcode will look at the standard library + locations. You should make sure that the location of the library is in + <tt>/etc/ld.so.conf</tt> and don't forget to run ldconfig afterwards. + You do not need to put the transcode libdir into the dlloader config + file. +--- +Q: I have VOB files from a DVD which transcode won\'t encode + correctly. At some point, there\'s a \"broken stream\" error, + and in the resulting AVI the picture exhibits some artifacts at + that point and the AV sync is gone from there on. The VOB files + can be played back perfectly without any problems with various + players, though. +A: First, concatenate the VOB files into a single file all.vob . + Next, use mencoder to generate an AVI file: + <pre> + mencoder all.vob -o all.avi -ovc copy -oac copy + + </pre> + Then process the AVI file with transcode. If mencoder crashes + (as it did on my system), use + <pre> + mencoder all.vob -o all_noaudio.avi -ovc copy -nosound + + </pre> + which will give you an AVI without sound. Transcode this: + <pre> + transcode -i all_noaudio.avi -x mpeg2,null -y xvid,null \\ + -V -R 1 -o /dev/null --print_status 100 + transcode -i all_noaudio.avi -x mpeg2,null -y xvid,null \\ + -V -R 2 -o transcoded_noaudio.avi --print_status 100 + + </pre> + Assuming that the \"broken\" AVI file transcode generated before + is called broken.avi, extract the audio with + <pre> + tcextract -i broken.avi -x mp3 -a 0 > all.mp3 + + </pre> + and finally merge audio and video with + + <pre> + avimerge -i all_noaudio.avi -p all.mp3 -o complete.avi + + </pre> + This can probably be improved; I was happy enough that it + worked. (meier) +--- +Q: How can I save the audio track of a DVD directly to a WAVE file + suitable for burning onto an AudioCD? +A: Suppose you want the audio from title 2, all chapters and you want the + second audio stream: + <pre> + transcode -x null,dvd -i /dev/dvd -T2,-1 -a 1 \\ + -y wav -J resample -E 44100 -o foo.wav + + </pre> + The resampling is needed since DVD audio is usually sampled at 48 + kHz. (tibit) +--- +Q: How do I transfer my .avi .mpg .mov. asf .wmv etc. files to DVD so that + they playback on my stand-alone DVD player ? +A: A step by step howto can be found at + http://mightylegends.zapto.org/dvd/dvdauthor_howto.php (rickfharris) +--- +Q: What do I need to get the import_im and import_imlist modules? +A: These modules use the ImageMagick library from + http://www.imagemagick.org +--- +Q: I do have ImageMagick including the -devel package installed and still + get no import_im and import_imlist module. +A: Some distributions ship a ImageMagick-devel package which also needs + bzip2-devel package installed. Check config.log for details. +--- diff --git a/debian/transcode/transcode-1.1.7/docs/filter-help.txt b/debian/transcode/transcode-1.1.7/docs/filter-help.txt new file mode 100644 index 00000000..805d981d --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/filter-help.txt @@ -0,0 +1,404 @@ +NOTE: +This file contains additional notes about filters. The text here will be copied +verbose to the resulted generating manpage. If you add a section, you must +ensure that the encapsulatiing boundaries are maintained because the +make-filter-man.sh script greps for that. A blanko section for copy&paste: + +*** SNIP START *** +---------------------->[ NAME.help ] +Description of filter NAME +<----------------------| + +*** SNIP END *** +NAME is the basename of the filter filename. So if the filter library has the +name filter_foo.so, the basename of the filter is "foo". +If your filter supports the TC_FILTER_GET_CONFIG interface (which it should) +there is no point to repeat the description of the filter options. + + +---------------------->[ 32detect.help ] +This filter checks for interlaced video frames. +Subsequent de-interlacing with transcode can be enforced with 'force_mode' option +<----------------------| + +---------------------->[ compare.help ] +Generate a file in with information about the times, frame, etc the pattern +defined in the image parameter is observed. +<----------------------| + +---------------------->[ control.help ] +The format of the command file is framenumber followed by at least one whitespace followed +by the command followed by at least one whitespace followed by arguments for the command. +Empty lines and lines starting with a `#' are ignored. The frame numbers must be sorted ascending. + + # Example file + # At frame 10 load the smooth filter + 10 load smooth + # reconfigure at 20 + 20 configure smooth=strength=0.9 + 99 disable smooth +<----------------------| + +---------------------->[ cpaudio.help ] +Copies audio from one channel to another +<----------------------| + +---------------------->[ decimate.help ] +see /docs/README.Inverse.Telecine.txt +<----------------------| + +---------------------->[ detectclipping.help ] +Detect black regions on top, bottom, left and right of an image. It is suggested that the filter is run for around 100 frames. It will print its detected parameters every frame. If you don't notice any change in the printout for a while, the filter probably won't find any other values. The filter converges, meaning it will learn. +<----------------------| + +---------------------->[ denoise3d.help ] +What: +The denoise3d filter from mplayer (sibling of hqdn3d). Works very crude and +simple but also very fast. In fact it is even faster than the original from +mplayer as I managed to tweak some things (a.o. zero frame copying). + +Who: +Everyone who wants to have their captured frames thoroughly denoised (i.e. who +want to encode to mpeg or mjpeg) but do not have enough processing power to +real-time encode AND use hqdn3d (better quality but a lot slower) or dnr (yet +slower), not to mention the other denoisers that are even slower. Quality is +really good for static scenes (if fed with the right parameters), moving +objects may show a little ghost-image (also depends on parameters) though. Your +milage may vary. + +How: +Parameters are the same as the hqdn3d module, although in practice you'll not +end up with exactly the same values. Just experiment. Particular for this +version of the filter is that if you supply -1 to either component's parameters +(luma/chroma), that component will not have the filter applied to. If you're +still short on CPU cycles, try disabling the luma filter, this will not make +much difference in the effectiveness of the filter! +<----------------------| + +---------------------->[ dnr.help ] +see /docs/filter_dnr.txt (german only) +<----------------------| + +---------------------->[ doublefps.help ] +Converts interlaced video into progressive video with half the +original height and twice the speed (FPS), by converting each +interlaced field to a separate frame. Optionally allows the two +fields to be shifted by half a pixel each to line them up correctly +(at a significant expense of time). +<----------------------| + +---------------------->[ fields.help ] +The 'fields' filter is designed to shift, reorder, and +generally rearrange independent fields of an interlaced +video input. Input retrieved from broadcast (PAL, NTSC, +etc) video sources generally comes in an interlaced form +where each pass from top to bottom of the screen displays +every other scanline, and then the next pass displays the +lines between the lines from the first pass. Each pass is +known as a "field" (there are generally two fields per +frame). When this form of video is captured and manipulated +digitally, the two fields of each frame are usually merged +together into one flat (planar) image per frame. This +usually produces reasonable results, however there are +conditions which can cause this merging to be performed +incorrectly or less-than-optimally, which is where this +filter can help. + +The following options are supported for this filter +(they can be separated by colons): + + shift - Shift the video by one field (half a frame), + changing frame boundaries appropriately. This is + useful if a video capture started grabbing video + half a frame (one field) off from where frame + boundaries were actually intended to be. + + flip - Exchange the top field and bottom field of each + frame. This can be useful if the video signal was + sent "bottom field first" (which can happen + sometimes with PAL video sources) or other + oddities occurred which caused the frame + boundaries to be at the right place, but the + scanlines to be swapped. + + flip_first + - Normally shifting is performed before flipping if + both are specified. This option reverses that + behavior. You should not normally need to use + this unless you have some extremely odd input + material, it is here mainly for completeness. + + help - Print this text. + +Note: the 'shift' function may produce slight color +discrepancies if YV12 is used as the internal transcode +video format (-V flag). This is because YV12 does not +contain enough information to do field shifting cleanly. For +best (but slower) results, use RGB mode for field shifting. +<----------------------| + +---------------------->[ fps.help ] +options: <input fps>:<output fps> +example: -J fps=25:29.97 will convert from PAL to NTSC +If no options are given, defaults or -f/--export_fps/--export_frc will be used. +Some examples: + + -J fps=10:5:pre convert from 10 fps to 5 fps, preprocess + -J fps=10:post:12 convert from 10 to 12, postprocess + -J fps=pre=1:7:5 convert from 7 to 5, postprocess + -J fps=9:3.1:post=-0x7 convert from 9 to 3.1, postprocess + +If that last one is confusing you, remember that 0 is false and everything +else is true. Of course, octal and hexadecimal numbers are supported too. +This is intended to be backward compatible with the old format. +<----------------------| + +---------------------->[ hqdn3d.help ] +This filter aims to reduce image noise producing smooth images and making still images really still (This should enhance compressibility). +<----------------------| + +---------------------->[ ivtc.help ] +see /docs/README.Inverse.Telecine.txt +<----------------------| + +---------------------->[ logo.help ] +This filter renders an user specified image into the video. +Any image format ImageMagick can read is accepted. +Transparent images are also supported. +Image origin is at the very top left. + +see /docs/filter_logo.txt +<----------------------| + +---------------------->[ logoaway.help ] +This filter removes an image in a user specified area from the video. You can +choose from different methods. + +see /docs/filter_logoaway.txt +<----------------------| + +---------------------->[ mask.help ] +This filter applies an rectangular mask to the video. Everything outside the mask is set to black. +<----------------------| + +---------------------->[ modfps.help ] +This filter aims to allow transcode to alter the fps +of video. While one can reduce the fps to any amount, +one can only increase the fps to at most twice the +original fps. + +There are two modes of operation, buffered and unbuffered, +unbuffered is quick, but buffered, especially when dropping frames +should look better. + +For most users, modfps will need either no options, or just mode=1 + +see /docs/README.filter.modfps +<----------------------| + +---------------------->[ msharpen.help ] +This plugin implements an unusual concept in spatial sharpening. +Although designed specifically for anime, it also works well with +normal video. The filter is very effective at sharpening important +edges without amplifying noise. + + * Strength 'strength' (0-255) [100] + This is the strength of the sharpening to be applied to the edge detail areas. It is applied only to the edge detail areas as determined by the 'threshold' parameter. Strength 255 is the strongest sharpening. + * Threshold 'threshold' (0-255) [10] + This parameter determines what is detected as edge detail and thus sharpened. To see what edge detail areas will be sharpened, use the 'mask' parameter. + * Mask 'mask' (0-1) [0] + When set to true, the areas to be sharpened are shown in white against a black background. Use this to set the level of detail to be sharpened. This function also makes a basic edge detection filter. + * HighQ 'highq' (0-1) [1] + This parameter lets you tradeoff speed for quality of detail detection. Set it to true for the best detail detection. Set it to false for maximum speed. +<----------------------| + +---------------------->[ preview.help ] +XXX: Write me +<----------------------| + +---------------------->[ pv.help ] +The filter listens to mouse and key strokes. If you click into the preview +window, the first time say near the upper left corner and the second time near +the lower right corner, transcode will draw a rectangle and will print out the +coordinates of this rectangle on stdout and the socket. See the table below for +available keys. + +When you start transcode with the --socket option and the pv filter with (for +example) cache=20 you can talk to transcode and the pv filter at runtime using +the socket. + +.nf +transcode -i file.avi -V -J pv=cache=30 --socket /tmp/sock +.fi + +.RS +.TP 8 +Available Commands +.TP +Key Socket* Effect +.TP +.I RET +draw redraws the image, applying filters. +.TP +.I u +undo goes to image before draw +.TP +.I SPACE +pause pause the preview (and transcode) +.TP +.I UP +fastfw in pause mode, step forward 5 frames +.TP +.I RIGHT +slowfw in pause mode, step forward 1 frame +.TP +.I DOWN +fastbw in pause mode, step back 5 frames +.TP +.I LEFT +slowbw in pause mode, step back 1 frame +.TP +.I q +display toggle display of frames +.TP +.I s +slower slow down +.TP +.I f +faster speed up +.TP +.I y +toggle toggle displaying only every 5 frames +.TP +.I j +grab save a JPEG +.TP +.I r +rotate rotate AVI file after next keyframe +.TP +.RE +(*) all commands must be prefixed with "preview ". +<----------------------| + +---------------------->[ slowmo.help ] +This filter produces a simple slow-motion effect by +duplicating certain frames. I have seen this effect +on TV and despite its the simple algorithm it works +quite well. The filter has no options. +<----------------------| + +---------------------->[ smartbob.help ] +This filter only makes sense when fed by -J doublefps. +It will take the field-frames which filter_doublefps +produces and generates full-sized motion adaptive deinterlaced +output at the double import framerate. +<----------------------| + +---------------------->[ smartdeinter.help ] +This filter provides a smart, motion-based deinterlacing +capability. In static picture areas, interlacing artifacts do not +appear, so data from both fields is used to provide full detail. In +moving areas, deinterlacing is performed +<----------------------| + +---------------------->[ smartyuv.help ] +This filter is basically a rewrite of the +smartdeinter filter by Donald Graft (without advanced processing +options) for YUV mode only. Its faster than using the smartdeinter +in YUV mode and is also tuned with its threshold settings for YUV +mode. The filter detects motion and static areas in an image and +only deinterlaces (either by blending or by cubic interpolation) +the moving areas. The result is an image with high detail in +static areas, no information is lost there. + +The threshold settings should be sufficent for most users. As a +rule of thumb, I recommend setting the chroma threshold to about +the half of the luma threshold. If you want more deinterlacing, +lower the thresholds. The scene threshold can be easily found by +turning on verbose mode and the preview filter. In verbose mode, +the filter will print out, when it detects a scene change. If +scenechanges go by unnoticed, lower the scene threshold. You can +completly disable chroma processing with the doChroma=0 option. +Here is a sample commandline + +-J smartyuv=highq=1:diffmode=2:cubic=1:Blend=1:chromathres=4:threshold=8:doChroma=1 +<----------------------| + +---------------------->[ smooth.help ] +"single-frame" means it only works with the current frame, it does not need the +next or the previous frame for operation. Usually smoothing is done by talking +the data of previous frames into account to see which parts of the picture can +be "safely" smoothed, this filter only needs one frame. + +<----------------------| + +---------------------->[ subtitler.help ] +Usage -J subtitler="[no_objects] [subtitle_file=s] +[color_depth=n] +[font_dir=s] [font=n] [font_factor=f +[frame_offset=n] +[debug] [help]" +f is float, h is hex, n is integer, s is string. + +no_objects disables subtitles and other objects (off). +.br +color_depth= 32 or 24 (overrides X auto) (32). +.br +font= 0 or 1, 1 gives strange symbols... (0). +.br +font_dir= place where font.desc is (~/.subtitles/font). +.br +font_factor= .1 to 100 outline characters (10.75). +.br +frame_offset= positive (text later) or negative (earlier) integer (0). +.br +subtitle_file= pathfilename.ppml location of ppml file (~/.subtitles/demo.ppml). +.br +debug prints debug messages (off). +.br +help prints this list and exit. +<----------------------| + +---------------------->[ text.help ] +see /docs/filter_text.txt +<----------------------| + +---------------------->[ unsharp.help ] +This filter blurs or sharpens an image depending on +the sign of "amount". You can either set amount for +both luma and chroma or you can set it individually +(recommended). A positive value for amount will sharpen +the image, a negative value will blur it. A sane range +for amount is -1.5 to 1.5. + +The matrix sizes must be odd and define the +range/strength of the effect. Sensible ranges are 3x3 +to 7x7. + +It sometimes makes sense to sharpen the sharpen the +luma and to blur the chroma. Sample string is: + +luma=0.8:luma_matrix=7x5:chroma=-0.2:chroma_matrix=3x3 +<----------------------| + +---------------------->[ whitebalance.help ] +This filter allows correcting movies with a broken white balance, e.g. bluish movies. +<----------------------| + +---------------------->[ xsharpen.help ] +This filter performs a subtle but useful sharpening effect. The +result is a sharpening effect that not only avoids amplifying +noise, but also tends to reduce it. A welcome side effect is that +files processed with this filter tend to compress to smaller files. + + Strength 'strength' (0-255) [200] + When this value is 255, mapped pixels are not blended with the original pixel values, so a full-strength effect is obtained. As the value is reduced, each mapped pixel is blended with more of the original pixel. At a value of 0, the original pixels are passed through and there is no sharpening effect. + + Threshold 'threshold' (0-255) [255] + This value determines how close a pixel must be to the brightest or dimmest pixel to be mapped. If a pixel is more than threshold away from the brightest or dimmest pixel, it is not mapped. Thus, as the threshold is reduced, pixels in the mid range start to be spared. +<----------------------| + +---------------------->[ yuvdenoise.help ] +see /docs/filter_yuvdenoise.txt +<----------------------| + diff --git a/debian/transcode/transcode-1.1.7/docs/filter-socket.txt b/debian/transcode/transcode-1.1.7/docs/filter-socket.txt new file mode 100644 index 00000000..ffc8f98e --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/filter-socket.txt @@ -0,0 +1,164 @@ +Date: 2003-01-21 +Version: 0.9 +Author: Tilmann Bitterberg <[email protected]> + +** PREFACE + +<filter> is a placeholder for a filter name, without its prefix +filter_. So <filter> for "filter_smooth.so" is "smooth". +The <filter> name can be suffixed with `#[0-9]' to specify an +instance. Some filters may be loaded multiple times with +different parameters. If you don't care about the instance of a +filter, use `#-1' or just don't specify anything. + +<string> depends on the filter, but mostly nowadays it is an +optstr argument (see src/optstr.h:optstr_get()) + +** SOCKET PROTOCOL + +To use the socket, start transcode with --socket FILE, then use +tcmodinfo -s FILE to connect. + +After each command, the server will write an OK or FAILED back +to the client, depending of the success of the requested action. + +load <filter> <initial string> + Load <filter> with options set to <initial string> + If you don't have an <initial string>, just pass '0' or leave + it blank. The filter is enabled after loading. + Example: + load smooth + load smooth 0 + load smooth#0 strength=0.9 + +config <filter> <string> + Configure <filter> with <string>. This will call the filters + Close routine and will init the filter again with the new + parameters. + +parameters <filter> + Read available paramers from <filter> if supporte. The Output + will be a CSV list of the following format. See FILTER + PROTOCOL below. + +preview <command> + Send commands to the `pv' Preview filter. The filter will be + startet, if it is not already loaded. The filter has to be + loaded with the `cache=NR' argument (NR == Cache Buffers) + + commands: + draw <NR> -- Will apply the Filter Chain + <NR> is an optional integer from 1 to 255, specifying on how + many frames the filter will be run. If it is ommitted, it + defaults to 1. + pause -- Will pause the Filter + undo -- Will restore the previous buffer + fastfw -- Step 25 frames forward + fastbw -- Step 25 frames backward + slowfw -- Step 1 frame forward + slowbw -- Step 1 frame backward + rotate -- Save to an Avi in Passthrough-Mode (rotate AVI) + display -- Disable writing to the preview Window. Do display + again to reeanble it + slower -- Slow down transcode (and preview speed) + faster -- Speed up transcode (and preview speed). Please note + you cannot gain any extra speed out of transcode + when using this. + toggle -- preview only every 10th or so image. This saves a + lot of CPU time. + grab -- Save a jpeg of the current buffer. + +quit + Disconnect from the socket + +help + Print available commands + +version + Protocol version + +enable <filter> + <filter> will be processed in the filter loop. + +disable <filter> + <filter> will NOT be processed in the filter loop. + +unload <filter> + Unload a filter completely. (not implemented) + +list [ load | enable | disable ] + Query list of loaded, enabled or disabled filters. + Output will be a CSV list like "smooth", "smartdeinter" + + +/* ********************************************************* */ + +** FILTER PROTOCOL + + The first line is + special, it contains various meta data about the filter. + Syntax: + name, comment, version, author, Capabilities, Frames needed + Capabilities: + "V": Can do Video + "A": Can do Audio + "R": Can do RGB + "Y": Can do YUV + "4": Can do YUV422 + "M": Can do Multiple Instances + "E": Is a PRE filter + "O": Is a POST filter + Valid examples: + "VR" : Video and RGB + "VRY" : Video and YUV and RGB + Example: + "filter_foo.so", "comment", "0.1", "no@one", "VRY", "1" + + + All other lines describe one paramter per line. The output will be in CSV + Syntax: + name, comment, fmt, val, (...) + Example: + "radius", "Search radius", "%d", "8", "8", "24" + + name: The name of the parameter (eg "radius") + comment: A short description (eg "Search radius") + fmt: A printf style parse string (eg "%d") + val: Current value (eg "8") + (...): Always pairs: Legal values for the parameter + (eg "8", "24" -- meaning, the radius parameter is valid + from 8 to 24) + + More examples: + "pos", "Position (0-width x 0-height)", "%dx%d", "0x0", "0", "width", "0", "height" + "%dx%d" is interesting, because this parameter takes two values in this format + so we must supply two ranges (one for each parameter), when this + param is valid ("0", "width", "0", "height") + + "flip", "Mirror image", "", "0" + This is a boolean, defaults to false. A boolean has no + argument, eg "filter_foo=flip" + +Example of the filter_yuvdenoiser.so +START +"filter_yuvdenoise.so", "mjpegs YUV denoiser", "v0.1.0 (2002-08-28)", "Stefan Fendt, Tilmann Bitterberg", "VY", "3" +"radius", "Search radius", "%d", "8", "8", "24" +"threshold", "Denoiser threshold", "%d", "5", "0", "255" +"pp_threshold", "Pass II threshold", "%d", "4", "0", "255" +"delay", "Average 'n' frames for a time-lowpassed pixel", "%d", "3", "1", "255" +"postprocess", "Filter internal postprocessing", "%d", "1", "0", "1" +"luma_contrast", "Luminance contrast in percent", "%d", "100", "0", "255" +"chroma_contrast", "Chrominance contrast in percent.", "%d", "100", "0", "255" +"sharpen", "Sharpness in percent", "%d", "125", "0", "255" +"deinterlace", "Force deinterlacing", "%d", "0", "0", "1" +"mode", "[0]: Progressive [1]: Interlaced [2]: Fast", "%d", "0", "0", "2" +"scene_thres", "Blocks where motion estimation should fail before scenechange", "%d%%", "50", "0", "100" +"block_thres", "Every SAD value greater than this will be considered bad", "%d", "1024", "0", "-1" +"do_reset", "Reset the filter for `n' frames after a scene", "%d", "2", "0", "oo" +"increment_cr", "Increment Cr with constant", "%d", "2", "-128", "127" +"increment_cb", "Increment Cb with constant", "%d", "2", "-128", "127" +"border", "Active image area", "%dx%d-%dx%d", "0x0-32x32", "0", "W", "0", "H", "0", "W", "0", "H" +END + +/* vim: sw=2 tw=64 + */ diff --git a/debian/transcode/transcode-1.1.7/docs/filter_dnr.txt b/debian/transcode/transcode-1.1.7/docs/filter_dnr.txt new file mode 100644 index 00000000..91c1ec4b --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/filter_dnr.txt @@ -0,0 +1,66 @@ +Der DNR-Filter +============== + +die Syntax ist wie folgt: + +-J "dnr=<lt>:<ll>:<ct>:<cl>:<sc>" + +wobei <lt> = Wert f�r Luma-Thresold, Wertebereich [1,128], Default 10 + <ll> = Wert f�r Luma-Pixellock, [1,128], 4 + <ct> = Wert f�r Chroma-Threshold, [1,128], 16 + <cl> = Wert f�r Chroma-Pixellock, [1,128], 8 + <sc> = Wert f�r Szenenwechsel-Erkennung [1,90], 30 + +Wenn Werte au�erhalb des erlaubten Bereichs angegeben werden, dann wird +automatisch durch den jeweiligen Defaultwert ersetzt. +Auch f�r ausgelassene Paremeter werden die Defaultwerte verwendet. + +Beispiele: + "dnr=20" => lt = 20, Rest default + "dnr=::::60" => sc = 60, Rest default + "dnr=20::32" => lt = 20, ct = 32, Rest default usw. + + +Funktionsbeschreibung: + +Der Filter arbeitet am Besten bei Video im YUV-Format, kann aber auch bei +RGB-Format benutzt werden. +Er wird nur auf ein Bild angewendet, wenn kein Szenewechsel erkannt wurde. +Dieser wird anhand des prozentualen Anteils an Pixeln eines Bildes, die alle + +Schwellwerte �berschritten haben, festgestellt (also wenn dieser Anteil den +vorgegebenen <sc>-Wert �berschreitet). + +Der Filter untersucht jeden Pixel eines Bildes getrennt nach Luma- und +Chroma-Anteilen (YUV-Mode) bzw. R/G/B-Anteilen (RGB-Mode), damit sowohl +Helligkeits- als auch Farbrauschen separat behandelt werden k�nnen. + +Die Schwellwerte <lt> und <ct> geben an bis zu welchem Unterschied zwischen +einem Pixel des letzten Bildes und einem Pixel des aktuellen Bildes eine +"�berblendung" erfolgt. <lt> wird auf den Luma-Anteil (bzw. R) angewendet, +<ct> auf die Chroma-Anteile (bzw. B/G). + +Die Schwellwerte <ll> und <cl> geben an bis zu welchem Unterschied zwischen +einem Pixel des letzten Bildes und einem Pixel des aktuellen Bildes eine +"Ersetzung" durch den Pixel des letzten Bildes erfolgt, d.h ob der Pixelwert + +festgehalten ("gelockt") wird. <ll> wird auf den Luma-Anteil (bzw. R) ange- +wendet, <cl> auf die Chroma-Anteile (bzw. B/G). Ein Pixel wird aber +sp�testens nach 30 "locks" aufgefrischt ! + +Grunds�tzlich sollten die <*t>-Schwellwerte gr��er als die <*l>-Schwellwerte + +sein, damit ein ausgewogenes Verh�ltnis zwischen "Locking" und "�berblenden" + +gegeben ist. +Die Schwellwerte werden mit den Differenzen (biased) von Pixeln verglichen, +d.h. gr��ere Schwellwerte verst�rken den Filtereffekt, weil somit auch +gr��ere Unterschiede (Differenzen) gefiltert werden. + +Die Default-Werte f�r die einzelnen Parameter sollten in den meisetn F�llen +Ein brauchbares Ergebnis erziehlen. Der Filter hat (dann) insgesamt neben +der Rausch- verminderung eine weichzeichnende Wirkung jedoch ohne +"Nachzieheffekte" bei Bewegungen. +Bei rauschbehaftetem Material kann nach Filterung z.B. bei der MPEG- +Komprimierung bis zu 25% Bitrate eingespart werden (dies kann aber je nach +Material auch deutlich mehr oder weniger sein). diff --git a/debian/transcode/transcode-1.1.7/docs/filter_logo.txt b/debian/transcode/transcode-1.1.7/docs/filter_logo.txt new file mode 100644 index 00000000..2e52e453 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/filter_logo.txt @@ -0,0 +1,52 @@ +Filter_logo Documentation + +This filter allows you to put an image into the video. +Every image format Image Magick can read ist supported and +ImageMagick can read a lot of different formats. + +So you need ImageMagick installed on your system and enabled +during compile time of transcode + +The transparency information (if the image has one) is handled +correctly. This is very nice if you use PNG or GIF. + +The position of the image can be specified using the `posx' resp. +`posy' parameters. There are 5 predefined positions for your +convenience which are "Top Left, Top Right, Bottom Left, Bottom +Right and Center" available through `posdef'. Origin of the image is +at the very top left. + +Support parameters: + + - help + Display a short description of the filter and its arguments. + - file=$FILENAME [required] + The image file you want to use. + - pos=$X_POSITIONx$Y_POSITION + Offset from the origin of the frame (in pixels) + - posdef=$arg + Predefined position + arg=1: Top Left + arg=2: Top Right + arg=3: Bottom Left + arg=4: Bottom Right + arg=5: Center + - range=$START_FRAME-$END_FRAME + defines a frame range in which the image should appear in the + video + +Usage Examples: + +$ transcode ... -J logo=file=mylogo.png:posdef=2 + Displays the image `mylogo.png' at the top left of the video/ + +$ transcode ... -J logo=file=mylogo.png:range=0-100:posdef=5 + Displays the image `mylogo.png' for the first 4 seconds in the + center of the screen. + +$ transcode ... -J logo=file=mylogo.gif:pos=200x100 + Displays the image `mylogo.gif' at position 200x100 on the + screen + + +04/2002 Tilmann Bitterberg <[email protected]> diff --git a/debian/transcode/transcode-1.1.7/docs/filter_logoaway.txt b/debian/transcode/transcode-1.1.7/docs/filter_logoaway.txt new file mode 100644 index 00000000..a6c11243 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/filter_logoaway.txt @@ -0,0 +1,123 @@ + +filter_logoaway documentation +------------------------------- + +About this filter: + This filter removes an image in a user specified area. An image can be a logo of a TV Station, the timestamp + of a Camcorder or some ugly artifacts. + It's a <PRE> process filter. + +Requirements: + transcode - just as you guessed :-) + ImageMagick - is used to load the image with the alpha mask. + + +Configuration: (possible values) [default] + Options: + 'help' Short Help + Get a short description of all the logoaway options + + + 'range' Frame Range (0-oo) [0-end] + The frame region were the filter is active. + The default is the whole video. + + range=12-1550 (filter only between frame 12 and 1550) + + + 'pos' Position (0-width x 0-height) [0x0] + Required. The upper left corner of the area that will be removed. + 0 + 0 #------------------------- + | + | |50 + | v + | 110->#------ + | | + | | + + pos=50x110 + + + 'size' Size (0-width x 0-height) [0x0] + Required. The width and height of the remove area. + + + 'mode' Filter Mode (0=none, 1=solid, 2=xy) [0] + There are three mode you can choose of: + 0=none - This deactivates the filter. Useful if you want to + keep the settings, but the filter at the moment. + 1=solid - Flood fills the remove area with one color. You can + specify the color with the 'fill' option (see below). + 2=xy - In this mode the border pixels of the remove area are + used to interpolate the area between them. Interpolation + is done horizontally and vertically at the same time, the + sum of them is used. With the 'xweight' option (see below) + you can specify how much of the horizontally + interpolation is used. 50% xweight (=>50% yweight) gives + mostly the best results. + 3=shape - This mode is basically the same as the xy above. An + alpha/shape file (see below) is needed for getting the + information where to render and which pixels to use + for interpolation. This mode is slower than xy and + was made for logos with holes in it or other forms that + are badly covered by a rectangle. + + + 'border' Visible Border + Works in every mode and gives you a dotted line around the remove area + + 'dump' dumps the image between the given coordinates to the file dump[instance].png continously. + That means one image file is written for each filter instance and every frame this image is + overwritten with the current content. + This is useful for creating exact shape or alpha images. + (RGB only) + + + 'xweight' X-Y Weight (0%-100%) [50] + Only in xy-mode(2). How much of the horizontally interpolation is used + 0 means 0% horizontally and 100% vertically interpolation. + 35 means 35% horizontally and 65% vertically interpolation. + 50 is mostly the best choice. + + + 'fill' Solid Fill Color (RRGGBB) [000000] + Only in solid-mode(1). RGB color value in hexadecimal numbers in + the format RRGGBB. + + fill=9A01CD (Purple) + + + 'file' Image with alpha/shape information [] + A grayscale image file with the alpha mask, that tells the filter where and + how much to render. In shape mode it also used to get the position of the + pixels for the interpolation. The first white pixels around a render position + are used. + The size have to be exacly the same as given with the 'size' option + Color index 0 (black) - video pixel fully replaced with the interpolation. + Color index 1-254 (gray) - calculated and original values are blended together. + Color index 255 (white) - video pixel left unchanged. + + 000000000 + 000###000 0 - White (255) + 00##0##+0 # - Alpha value + 0##00+#@+ @ - example pixel + 0##000##0 + - white pixels whose position + 00##0##+0 is used to get the pixel in + 000###000 the video for interpolation + 000000000 of @ + + +Examples: + -J logoaway=pos=100x100:size=50x50:border + This gives us only a border, because the default mode is 0(none). + + -J logoaway=pos=100x100:size:50x50:mode=1:fill=228B22 + A 50x50 pixel great area at the topleft position 100x100 is filled with ForestGreen. + + -J logoaway=pos=100x100:size:50x50:mode=2:xweight=25:file=alpha.png + 1/4 horizontally and 3/4 vetically interpolation with an alpha mask. + + +Author: + (c)2002-2004 Thomas Wehrspann <[email protected]> diff --git a/debian/transcode/transcode-1.1.7/docs/filter_text.txt b/debian/transcode/transcode-1.1.7/docs/filter_text.txt new file mode 100644 index 00000000..1112a22e --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/filter_text.txt @@ -0,0 +1,102 @@ +Filter_text Documentation + +This filter allows you to render arbitrary text into the video stream +It uses libfreetype2 to render the font so it can handle all fonts +libfreetype can handle. + +You need libfreetype2 installed and enabled during configure time to +make use of this filter. + + +PARAMETERS + +As usual, the default setting should get you going, still there a tons +of options to play with. + +* 'string' text to print [date] + This is probably the most important option you want to change. It is + the text which will be rendered into the video. If the string is not + specified, the filter will render the current time and date. + +* 'dpi' dots-per-inch resolution [96] + The dots-per-inch resolution of the rendered letters. + +* 'points' point size of font in 1/64 [25] + The point size of the rendered letters. + +* 'font' full path to font file [/usr/X11R6/.../arial.ttf] + Specifies which font file to use. You must supply the full path to the + file. Default is /usr/X11R6/lib/X11/fonts/TrueType/arial.ttf + +* 'fade' Fade in and/or fade out [0=off, 1=slow, 10=fast] + turns on a smooth fadein and fadeout. As higher the argument is, the + faster the text will be blended. If you specify a range for the filter + to apply, the fadein will start at the beginning of the range and + fadeout will be finished at the end of the range. See below for an + ascii art. + +* 'notransparent' disable transparency + Default is to enable transparency. Sometimes the text is unreadable + especially on bright background so you may wish to disable it. The + text will be drawn in a black box. + +* 'pos' Position (0-width x 0-height) [0x0] + Position of the text (in pixels) The "origin" of the text is the + upper left corner of the bounding box. + +* 'posdef' Position (0=None, 1=TopL 2=TopR 3=BotL 4=BotR 5=Cent 6=BotCent) [0] + Predefined Position. + 1: Top Left + 2: Top Right + 3: Bottom Left + 4: Bottom Right + 5: Center + 6: Center Bottom + +* 'range' apply filter to [start-end]/step frames [0-oo/1] + defines a frame range in which the image should appear in the + video + + +'range' together with 'fade' + Say you want the text to be visible from frame 50 until frame 250 + and you also want a slow fade (e.g. 2). The number of frames the fade + will take is 100/2 = 50 frames, so + + 0 50 100 150 200 250 + |---------|----------|-----------|----------|----------|------> Frames + fadein full fadeout invisible + start visible start + + +EXAMPLES + +* The above example with the fade: + + $ transcode [...] -J text=string="Hello World":fade=2:range=50-250 + +* Place the text in the center of the image + + $ transcode [...] -J text=string="Hello World":posdef=5 + +* Make the text to appear larger in the center + + $ transcode [...] -J text=string="Hello World":posdef=5:points=30 + +* No transparency, fast fadein/out, range and center at bottom + + -J text=string="Hello World":posdef=6:notransparent:fade=7:range=50-250 + + +LIMITATIONS + +* The text is always white and does not look very good on bright + background probably because of antialiasing artifacts. + +* The filter does not handle linebreaks. If the text is too long to be + displayed on one line, the output will look garbled. + + +(C) 2003 Tilmann Bitterberg <[email protected]> + +Tue Apr 29 14:57:38 CEST 2003 diff --git a/debian/transcode/transcode-1.1.7/docs/filter_yuvdenoise.txt b/debian/transcode/transcode-1.1.7/docs/filter_yuvdenoise.txt new file mode 100644 index 00000000..f39641e3 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/filter_yuvdenoise.txt @@ -0,0 +1,178 @@ +NEW: transcode Additions +You can reset the filter at a scene change with the do_reset option. +Scenechange thresholds can be controled through + + block_thres every SAD value greater than this will be considered "bad" + [default 1024] + scene_thres Percentage of blocks where motion estimation should fail + before a scene change is considered + do_reset 1 = reset the filter after a scene change + 0 = dont reset [default] + + eg: + + transcode -V -i ... + -J yuvdenoise=mode=2:block_thres=1024:scene_thres=50%:do_reset=1 + +YUV4MPEG-Denoiser (eventually part of the mjpegtools) +----------------------------------------------------- + + + +1. About +-------- + +This program can remove noise from your typical video recordings to +increase the compression-ratio to be achieved by mpeg2enc (or if a +fixed bitrate is used, it can dramatically increase the image- +quality). + +The filter mainly reduces color- and luminance-noise and flickering +due to phase errors. It however does *not* do a good job on +color-noise introduced by the common BT8x8 chip-set itself (You will +have noticed, if you ever dared to record vertically reduced sequences +with that chip-set -- say 288 (or 384, or whatever...) lines instead of +full 576 -- that "nice" interleaved color-changes from one line to the +next. This annoying artefact is introduced by BT8x8 chip-set itself, by +only saving one color information for two lines but not interpolating +on the transmitted color-information. Despite of that oddity it has a +reasonable quality for that price... So just record "Full-Pal/NTSC" +and use yuvscaler to downscale your material! The quality is far +better than recording at your destination resolution directly!!!) + + + + +2. Usage +-------- + +That's really easy! Just pipe a YUV4MPEG-stream into the filter... :) +no switches, no options (NO CARRIER. erm,...) and dare to win (or +loose -- Well, there *is* material which cannot be processed +successfully. It's rare, but it exists! Material containing really +heavy noise is very difficult. So better try it, before you sit and +wait for hours without getting a better result...) + +As we now have a border-detection (which is most likely to fail ;-) we +need an option to override it: Just type "yuvdenoise -b xx" being "xx" +any number between 0 (zero, nix, nil, NULL) and a reasonable value +counted from top of the image. That is, "-b 64" will turn the topmost +64 lines in pure black as well as the lowest 64 lines, too... These +black borders seem to be symmetrically ?!? ;-) + +My tip: If you can, use this feature (take the value from the +auto-detection as a first guess) as pure YUV-black (16,128,128) is easy +to encode and therefor saves some bits better to be used for the real +frame... Turn this feature off by typing "-b 0" + + + +3. Transcode Usage +------------------ +When used within transcode, the filter does provide options. +Usage of the filter is + $ transcode ... -J yuvdenoise=help +Provide additional options (not that these are meaningful) + $ transcode ... -J yuvdenoise=chroma_contrast=50:luma_contrast=120:sharpen=100 + +The help text is: +denoiser Usage: +=========================================================================== + +threshold <0..255> denoiser threshold + accept any image-error up to +/- threshold for a single + pixel to be accepted as valid for the image. If the + absolute error is greater than this, exchange the pixel + with the according pixel of the reference image. + (default=5) + +delay <1...255> Average 'n' frames for a time-lowpassed pixel. Values + below 2 will lead to a good response to the reference + frame, while larger values will cut out more noise (and + as a drawback will lead to noticable artefacts on high + motion scenes.) Values above 8 are allowed but rather + useless. (default=3) + +radius <8...24> Limit the search radius to that value. Usually it will + not make sense to go higher than 16. Esp. for VCD sizes. + (default=8) + +border <x>,<y>,<w>,<h> Set active image area. Every pixel outside will be set + to <16,128,128> ("pure black"). This can save a lot of bits + without even touching the image itself (eg. on 16:9 movies + on 4:3 (VCD and SVCD) (default=0,0,0,0) + +luma_contrast <0...255> Set luminance contrast in percent. (default=100) + +chroma_contrast <0...255> Set chrominance contrast in percent. AKA "Saturation" + (default=100) +sharpen <0...255> Set sharpness in percent. WARNING: do not set too high + as this will gain bit-noise. (default=125) + +deinterlace <0..1> Force deinterlacing. By default denoise interlaced. + +mode <0..2> [2]: Fast mode. Use only Pass II (bitnoise-reduction) for + low to very low noise material. (default off) + [1]: Interlaced material + [0]: Progressive material (default) + +pp_threshold <0...255> Pass II threshold (same as -t). + WARNING: If set to values greater than 8 you *will* see + artefacts...(default=4) + +pre <0..1> [0]: run as a post process filter (default) + [1]: run as a pre process filter (not recommended) + +block_thres every SAD value greater than this will be considered "bad" + [default 1024] + +scene_thres Percentage of blocks where motion estimation should fail + before a scene is considered changed + +do_reset [1] = reset the filter after a scene change + [0] = dont reset (default) + + +4. My way of using it... +------------------------ + +* I record at least 352x576 to 768x576 (PAL) with nuvrec (Roman + Hochleitner's "NuppelVideo"), eg I use to record double the vertical + resolution, I finally need! This is important for BT8x8 (it may not + for Mjpeg based cards -- I don't know...). + +* I use exportvideo to get rid of annoying borders and to generate a + YUV4MPEG-stream which is piped ... + +* ... into yuvscaler first(!) --> 352x288 + +* and then into the filter. (Well, the other way would work, too, + except that the filter doesn't do interlaced MC yet and doesn't do a + good job on interlaced frames that way... I'll fix that!) + + + + +5. Drawbacks +------------ + +In rare cases you'll notice very clean blocks directly aside totally +noisy ones... Seeing blocks is probably not what you want to get. + +It uses a MC with a search-radius of 32 pixels. It *will* slow down +the encoding process. (I probably will use i686 asm sometime to +increase speed any further). + +I really have tested it on various source material (comics, +commercials, movies, video-clips...) I have not found material which +generally does not work -- but you may encounter such material. If so, +feel free to inform me about this. + + + + +Stefan Fendt + +transcode info and port by Tilmann Bitterberg diff --git a/debian/transcode/transcode-1.1.7/docs/framerate.txt b/debian/transcode/transcode-1.1.7/docs/framerate.txt new file mode 100644 index 00000000..ed359e04 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/framerate.txt @@ -0,0 +1,170 @@ +FRAME RATES + +This section is intended for users who want to convert the framerate of the +input file to a different output framerate. It also handles the case +when the input file is of variable framerate. + +========================= +Jargon used in this file. +========================= + + fps : Frames-per-second / framerate. The number of frames which + will be displayed during 1 second. + frc : Frame rate code. This is directly related to fps. When + dealing with fractional framerates, it is more convenient + and accurate to give transcode a code. The most commonly + used codes are + 1 : 23.976 (24000/1001.0) + 3 : 25 + 4 : 29.970 (30000/1001.0) + +Its worth noting that none of these filters intent to change the +runtime of the movie; if one -- for example -- goes from 29.9 to +23.9 the movie will not be shorter or anything, every frame will be +displayed for a longer time period. Because there will be fewer +frames in the resulting movie and the display time of each frame is +longer, the movie will have the same running. + +For convenience, a table relating fps and display time + + frc | fps | Display time (sec) | Milliseconds + ----+-------+--------------------+------------- + 1 | 23.97 | 1 / (24000/1001) | 41.71 + 3 | 25.00 | 1 / (25000/1000) | 40.00 + 4 | 29.97 | 1 / (30000/1001) | 33.37 + +When converting from fps1 to fps2 it must be clear that the audio +stream will not be touched at all. Since the resulting movie has the +same display length, the audio in the new file must be equal to the +audio in the old file. You currently cannot use transcode to slow +down or speed up a movie. + + +================================ +Meaningful fields of application +================================ + +Changing the framerate of a movie can be neccessary to improve the +quality, shrink the size or to prepare a movie for a specific output +medium. + +o A lot of digital (photo) cameras have the ability to record -- more + or less -- small video clips. These clips are often not suiteable + for watching on TV because of the framerate. My device records + MJPG clips at 20 fps. To convert them to (s)VCD, the framerate + needs to get converted to 29.9 (NTSC) or 25 (PAL). + Note that converting the framerate does not make the clip + smoother, it merely preserves the jerkyness it already had. + +o Telecine removal. Telecine is a process to prepare films (movies) + shot at 24 fps for (NTSC) television at 29.9 fps. The opposite is + called inverse telecine or ivtc. For a really well done in-depth + explanation about telecine see the file README.Inverse.Telecine.txt + by Thanassis Tsiodras in the /docs/ directory of transcode. + By doing ivtc, the movie will look less jerky and therefore + smoother. + +o Preparing NTSC or film sources for PAL or the other way round. + + +================= +Available Modules +================= + +There are several ways (as always) in transcode to do framerate +conversions (in lexicographical order) + +o Overview + + Filter(s) | Smartness | Versatility | Intented Use + --------------+-----------+-------------+--------------- + 29to23 | none | little | 29.9 -> 23.9 + 32drop | high | little | 29.9 -> 23.9 + ivtc+decimate | very high | none | 29.9 -> 23.9 + modfps | fair | high | any -> any + fps | none | high | any -> any + tc_video | none | little | 23.9 -> 29.9 + +o 29to23 + The filter takes no options. It basically skipps every 5th frame. + It interpolates the other 4 frames out of the 5 it recieves. + Since it skipps every 5th frame it can also be used for converting + 25 fps to 20 fps. + +o 32drop + The filter takes no options. It does a simple inverse telecine. + Its algorithm works best when used in RGB mode. It tries to find + interlaced frames and adjusts its pattern. + +o ivtc+decimate + These two filters working hand in hand. The first filter (ivtc) + inverts the telecine and the second one (decimate) drops 1 frame + out of 4 so that the output will be at 23.9 fps. These two filters + are really smart and do their job very well. The ivtc filter can + deal with a changing telecine pattern and adjusts its algorithm to + fit it. The decimate filter searches for two similar frames out of + five and drops one of which look similar. + +o modfps + This filter tries to reach the desired framerate by cloning and + dropping of frames. In its default mode it will buffer the last + 5 frames, and drop the frame with the least difference with the + frame that follows it, or clone the frame with the most + difference. Additionally, it can blend frames or mingle frame + fields when cloning. Additionally it has a fast mode, but results + look poor. + +o fps + This filter is basically the same as the fast mode of `modfps' its + just doing its work a slightly different way. + +o tc_video + This filter increases the framerate by doing telecine. It takes no + options. It makes 5 frames out of 4 by clever dealing with the + fields ( == "lines") of a frame. + + +=================================== +Framerate related transcode options +=================================== + +Transcode has two options dealing with framerates, `-f'and +`--export_fps'. Both options take one to two arguments. The first +argument is the framerate as a floating point number, the second +argument is the frameratecode. The frc always overwrites the +supplied fps value, so one can write `-f 0,1 ... --export_fps 0,4'. + +Transcode tries to do the right thing with these options, the +following table shows the interdependencies. Import is `-f' and +Export is `--export_fps' + + Import | Export | Result + ---------+---------+-------------------------------------------- + omitted | omitted | import will be probed, export set to import + given | omitted | export set to import + omitted | given | import will be probed, export used as given + given | given | Both will used as given + +The audio is always read at the export rate. + +There is another option related to framerates which is --export_frc. +This option is only there because of backward-compatibility. It does +the same like the second argument to --export_fps. + + +======================== +Variable Framerate Input +======================== + +Some video sources are not of constant framerate. This is mostly +true for Anime and some DVD Releases of TV series. Use this command +line (XXX: Write much more here :) + +transcode -i vobs/ -V -x vob,vob -f 0,4 -M2 -R3 -w2 --export_frc 1 \ +-J ivtc -J decimate -B 3,9,16 --hard_fps --print_status 10 \ +-J 32detect=verbose=1:force_mode=5:chromathres=2:chromadi=9 \ +-y xvid -o next1.avi + + +(C) 2003 (v0.1) Tilmann Bitterberg <transcode at tibit.org> +// vim: tw=68 diff --git a/debian/transcode/transcode-1.1.7/docs/html/Makefile.am b/debian/transcode/transcode-1.1.7/docs/html/Makefile.am new file mode 100644 index 00000000..8f0521d6 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/Makefile.am @@ -0,0 +1,51 @@ +EXTRA_DIST = \ + $(docs_DATA) + +docsdir = \ + $(datadir)/doc/transcode/html + +docs_DATA = \ + dv.html \ + dvd.html \ + export_divx.html \ + export_divx4.php \ + export_divx5.php \ + export_fame.php \ + export_ogg.php \ + export_opendivx.php \ + export_xvid.php \ + import_avi.html \ + import_dv.html \ + import_dvd.html \ + import_mp3.html \ + import_mpeg2.html \ + import_mpeg3.html \ + import_null.html \ + import_nuv.html \ + import_ogg.php \ + import_raw.html \ + import_vob.html \ + import_yuv4mpeg.html \ + index.html \ + intro.html \ + mes0-00000.png \ + mes4-00000.png \ + mes5-00000.png \ + mes6-00000.png \ + mes7-00000.png \ + misc.html \ + modules.html \ + mpeg.html \ + new.png \ + other.html \ + post.html \ + pre.html \ + smart.html \ + sorry.html \ + sub0-00000.png \ + sub1-00000.png \ + sub2-00000.png \ + sub3-00000.png \ + subtitles.html \ + table.php \ + tc.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/Makefile.in b/debian/transcode/transcode-1.1.7/docs/html/Makefile.in new file mode 100644 index 00000000..b3498416 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/Makefile.in @@ -0,0 +1,558 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/html +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(docsdir)" +DATA = $(docs_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +A52_CFLAGS = @A52_CFLAGS@ +A52_LIBS = @A52_LIBS@ +ACLIB_LIBS = @ACLIB_LIBS@ +ACLOCAL = @ACLOCAL@ +ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVILIB_LIBS = @AVILIB_LIBS@ +AWK = @AWK@ +BSDAV_CFLAGS = @BSDAV_CFLAGS@ +BSDAV_LIBS = @BSDAV_LIBS@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXXCPP = @CXXCPP@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLDARWIN_CFLAGS = @DLDARWIN_CFLAGS@ +DLDARWIN_LIBS = @DLDARWIN_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FAAC_CFLAGS = @FAAC_CFLAGS@ +FAAC_LIBS = @FAAC_LIBS@ +FGREP = @FGREP@ +FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ +FREETYPE2_LIBS = @FREETYPE2_LIBS@ +GREP = @GREP@ +IBP_LIBS = @IBP_LIBS@ +ICONV_CFLAGS = @ICONV_CFLAGS@ +ICONV_LIBS = @ICONV_LIBS@ +IMAGEMAGICK_CFLAGS = @IMAGEMAGICK_CFLAGS@ +IMAGEMAGICK_LIBS = @IMAGEMAGICK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAME_CFLAGS = @LAME_CFLAGS@ +LAME_LIBS = @LAME_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBAVCODEC_CFLAGS = @LIBAVCODEC_CFLAGS@ +LIBAVCODEC_LIBS = @LIBAVCODEC_LIBS@ +LIBAVFORMAT_CFLAGS = @LIBAVFORMAT_CFLAGS@ +LIBAVFORMAT_LIBS = @LIBAVFORMAT_LIBS@ +LIBDVDREAD_CFLAGS = @LIBDVDREAD_CFLAGS@ +LIBDVDREAD_LIBS = @LIBDVDREAD_LIBS@ +LIBDV_CFLAGS = @LIBDV_CFLAGS@ +LIBDV_LIBS = @LIBDV_LIBS@ +LIBJPEG_CFLAGS = @LIBJPEG_CFLAGS@ +LIBJPEG_LIBS = @LIBJPEG_LIBS@ +LIBMPEG2CONVERT_CFLAGS = @LIBMPEG2CONVERT_CFLAGS@ +LIBMPEG2CONVERT_LIBS = @LIBMPEG2CONVERT_LIBS@ +LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@ +LIBMPEG2_LIBS = @LIBMPEG2_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBPOSTPROC_CFLAGS = @LIBPOSTPROC_CFLAGS@ +LIBPOSTPROC_LIBS = @LIBPOSTPROC_LIBS@ +LIBQUICKTIME_CFLAGS = @LIBQUICKTIME_CFLAGS@ +LIBQUICKTIME_LIBS = @LIBQUICKTIME_LIBS@ +LIBS = @LIBS@ +LIBTCAUDIO_LIBS = @LIBTCAUDIO_LIBS@ +LIBTCVIDEO_LIBS = @LIBTCVIDEO_LIBS@ +LIBTC_LIBS = @LIBTC_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ +LIBV4L2_LIBS = @LIBV4L2_LIBS@ +LIBV4LCONVERT_CFLAGS = @LIBV4LCONVERT_CFLAGS@ +LIBV4LCONVERT_LIBS = @LIBV4LCONVERT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LZO_CFLAGS = @LZO_CFLAGS@ +LZO_LIBS = @LZO_LIBS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MJPEGTOOLS_CFLAGS = @MJPEGTOOLS_CFLAGS@ +MJPEGTOOLS_LIBS = @MJPEGTOOLS_LIBS@ +MKDIR_P = @MKDIR_P@ +MOD_PATH = @MOD_PATH@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_AWK = @PATH_TO_AWK@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PROF_PATH = @PROF_PATH@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PVM3_CFLAGS = @PVM3_CFLAGS@ +PVM3_LIBS = @PVM3_LIBS@ +PVM3_PVMGS = @PVM3_PVMGS@ +RANLIB = @RANLIB@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIMD_FLAGS = @SIMD_FLAGS@ +STRIP = @STRIP@ +THEORA_CFLAGS = @THEORA_CFLAGS@ +THEORA_LIBS = @THEORA_LIBS@ +USE_DLDARWIN = @USE_DLDARWIN@ +VERSION = @VERSION@ +VORBIS_CFLAGS = @VORBIS_CFLAGS@ +VORBIS_LIBS = @VORBIS_LIBS@ +WAVLIB_LIBS = @WAVLIB_LIBS@ +X264_CFLAGS = @X264_CFLAGS@ +X264_LIBS = @X264_LIBS@ +XIO_CFLAGS = @XIO_CFLAGS@ +XIO_LIBS = @XIO_LIBS@ +XMKMF = @XMKMF@ +XVID_CFLAGS = @XVID_CFLAGS@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +a52_config = @a52_config@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +bsdav_config = @bsdav_config@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +faac_config = @faac_config@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +iconv_config = @iconv_config@ +imagemagick_config = @imagemagick_config@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +lame_config = @lame_config@ +libdir = @libdir@ +libdvdread_config = @libdvdread_config@ +libexecdir = @libexecdir@ +libjpeg_config = @libjpeg_config@ +libjpegmmx_config = @libjpegmmx_config@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lzo_config = @lzo_config@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pvm3_config = @pvm3_config@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xvid_config = @xvid_config@ +EXTRA_DIST = \ + $(docs_DATA) + +docsdir = \ + $(datadir)/doc/transcode/html + +docs_DATA = \ + dv.html \ + dvd.html \ + export_divx.html \ + export_divx4.php \ + export_divx5.php \ + export_fame.php \ + export_ogg.php \ + export_opendivx.php \ + export_xvid.php \ + import_avi.html \ + import_dv.html \ + import_dvd.html \ + import_mp3.html \ + import_mpeg2.html \ + import_mpeg3.html \ + import_null.html \ + import_nuv.html \ + import_ogg.php \ + import_raw.html \ + import_vob.html \ + import_yuv4mpeg.html \ + index.html \ + intro.html \ + mes0-00000.png \ + mes4-00000.png \ + mes5-00000.png \ + mes6-00000.png \ + mes7-00000.png \ + misc.html \ + modules.html \ + mpeg.html \ + new.png \ + other.html \ + post.html \ + pre.html \ + smart.html \ + sorry.html \ + sub0-00000.png \ + sub1-00000.png \ + sub2-00000.png \ + sub3-00000.png \ + subtitles.html \ + table.php \ + tc.png + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/html/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/html/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-docsDATA: $(docs_DATA) + @$(NORMAL_INSTALL) + test -z "$(docsdir)" || $(MKDIR_P) "$(DESTDIR)$(docsdir)" + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docsdir)" || exit $$?; \ + done + +uninstall-docsDATA: + @$(NORMAL_UNINSTALL) + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(docsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(docsdir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(docsdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-docsDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-docsDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-docsDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-docsDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/debian/transcode/transcode-1.1.7/docs/html/dv.html b/debian/transcode/transcode-1.1.7/docs/html/dv.html new file mode 100644 index 00000000..e1763513 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/dv.html @@ -0,0 +1,306 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica"> <font>Digital Video</font> + </tr> + <tr> + <td> + + This chapter gives an introduction to Digital Video + processing with transcode. Here is a list of features: + + <ul> + <li> AVI-files with Digital Video streams can be + decoded with + <ul> + <li><i>libdv</i> (default) + <li><i>ffmpeg</i> (-x ffmpeg) + </ul> + + <li> concatenating clips with directory mode and option "-i <i>direname</i>" + before processing. + <li> a couple of fast or high-quality de-interlace + <a href=filter.html#video>filters</a> available to + enhance the quality. + <li> support for encoding to DV with <i>libdv</i> as raw + stream or interleaved AVI-file. + <li> pass-through mode: raw DV -> AVI-file conversion. + </ul> + + Unfortunately, while most linux player happily accept the AVI-DV files + produced by <i>transcode</i>, the nonlinear DV video + editor <a href=http://www.schirmacher.de/arne/kino/><i>kino</i></a> + refuses to work with them. + + <ul> + <li> <a href="dv.html#dv"> <FONT FACE="Lucida,Helvetica"> + Digital Video DV</font></a> + <ul> + <li><a href="dv.html#dv_avi"> <FONT FACE="Lucida,Helvetica"> + AVI files</font></a> + <li><a href="dv.html#dv_dv"> <FONT FACE="Lucida,Helvetica"> + DV streams</font></a> + </ul> + <p> + <li> <a href="#pass"> <FONT FACE="Lucida,Helvetica"> + pass-through mode</font></a> <p> + <li> <a href="#interlace"> <FONT FACE="Lucida,Helvetica"> + de-interlacing guide</font></a> <p> + <li> <a href="#alias"> <FONT FACE="Lucida,Helvetica"> + anti-aliasing guide</font></a> + + </td> + </tr> +</table> +</table> + + +<a name=dv></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>Digital Video (DV) + ---> MPEG-4</font> + </tr> + <tr> + <td> + + Here is a 3 step guide to convert a DV tape to a compressed AVI + MPEG-4 movie clip under linux using <i>transcode</i>. For a + selection of a video codec implementation supported by + transcode consult the <a href=modules.html> modules</a> info-page. + + <ul> + <li> You need Arne Schirmacher's nice tool <i>dvgrab</I> + to transfer the DV tape to disk. Make sure, you use + the "--format dv2" option and maybe "--autosplit" to split + the tape into small pieces. Use AVI files, since + libdv sound seems to be broken. Optionally, use <br><br> + <FONT color=red> tcprobe -i file.avi <br><br> + </i> to find out important parameters: For example: + + <p><code> + +[tcprobe] RIFF data, AVI video +[avilib] V: 25.000 fps, codec=dvsd, frames=633, width=720, height=576 <br> +[avilib] A: 48000 Hz, format=0x01, bits=16, channels=2, bitrate=1536 + kbps, <br> +[avilib] 633 chunks, 4861528 bytes <br> +[tcprobe] summary for test-2002.10.04_14-47-25.avi, (*) = not default, 0 = not detected<br> +import frame size: -g 720x576 [720x576] <br> + frame rate: -f 25.000 [25.000] frc=3 <br> + audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x1 [0x2000] (*) + bitrate=1536 kbps <br> + length: 633 frames, frame_time=40 msec <br> +</code><p> + + Fortunately, the auto-probing feature + of <i>transcode</i> takes care of these details. + <br><br> + + <li> To encode the clips, we have a number of options: + + <ul> + <li> writing a shell script, that feeds transcode with each + file, + <li> using <i>avimerge</i> to create a single + input file, + + <li> using the directory mode with option "-i". This + works only in connection with the import module <i>import_dv.so</i>. + </ul> + + <a name=dv_avi><h3>AVI-file</h3></a> + + Here, + we use a single AVI-file <i>file.avi</i> with "dvsd" codec + as an example: <p> + + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i file.avi -x dv,avi</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -I 1 -C 1 -z -k </td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -o file-divxmp3.avi -y divx4</td></tr> + + </table> + + <br> + + We use <i>import_avi.so</i> to extract the audio, + which works flawless. Note that the audio is found in two + places in the AVI-file. Firstly, interleaved in the DV video + frame and secondly, the PCM audio track itself. + This makes it possible to use the import module "dv" for audio + extraction as long <i>libdv</i> is broken.<br> + Note: some non-dvgrab produced AVI-files may have the audio + ripped from the DV frames. In this case, you must use "-x + dv,avi" or "-x dv,X", were X is one of (raw,mp3,ac3). +<br> + + You can also reduce + the picture to a quarter size "-r 2" to get rid of + the interlace artifacts and don't need the de-interlace + option "-I 1". This option is the fastes de-interlacing + available, but is a simple interpolation. + You might also want to try + out the anti-aliasing feature with "-C 1" to process the + whole frame but this is slow. + The option "-z -k" flips the frame and make the + necessary color space changes for the encoder. + + + <a name=dv_dv><h3>DV stream</h3></a> + + Put all AVI-files or raw DV stream into a subdirectory, + e.g., named "tape/". <p> + + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i tape/ </td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -I 3 -C 2 -z -k </td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -o tape-divxmp3.avi -y divx4</td></tr> + + </table> + + <br> + + The necessary import module is autodetected. <i>tccat</i> extracts + the video stream of all AVI-files and concatenates them together to + make the clips appear as a single DV stream for <i>transcode</i>. + + Here, the de-interlace option "-I 3", + which drops one half-frame and interpolates by zooming to full + frame size and, in principle, removes the interlace artifacts. We also try + the anti-aliasing feature with "-C 2" to process the + full frame afterwards, but this is slow. + <p> + + <li> Well, that's it. Use <i>avimerge</i> to glue the + matching clips together and burn the resulting file + to CD. +</ul> +</TV> +</table> +</table> + + +<a name=pass></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>pass-through mode</font> + </tr> + <tr> + <td> + The pass-through mode is able to wrap raw Digital Video + streams into AVI-files with the following command. Note, that + the interleaved raw audio data can be transcoded to a separate + audio track with the codec of your choice. However, this + does not save space since Digital Video has identical frame + size independent of the presence of audio. + + <p> + <code> + transcode -i raw.dv -P 1 -o raw.avi -y raw + </code> + <p> + + The opposite way is achieved by: + + <p> + <code> + tcextract -i raw.avi -x raw > raw.dv + </code> + <p> + +</table> +</table> + +<a name=interlace></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>de-interlacing guide</font> + </tr> + <tr> + <td> + + Underway. + Tilmann Bitterberg did some testing of de-interlace filters available in + transcode. You can view and read the result + <a href=http://tibit.org/video/> here</a>. +</table> +</table> + + +<a name=alias></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>anti-aliasing guide</font> + </tr> + <tr> + <td> + + Underway. + +</table> +</table> + + +<!-- hhmts start --> +Last modified: Fri Dec 6 16:25:56 Europe/Berlin 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/dvd.html b/debian/transcode/transcode-1.1.7/docs/html/dvd.html new file mode 100644 index 00000000..429b4119 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/dvd.html @@ -0,0 +1,932 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica"> <font>DVD to MPEG-4</font> + </tr> + <tr> + + <td> + + This chapter gives an introduction to DVD to DivX + compression. There are actually only 2 external packages + required to make it work with <i>transcode</i>. The first + is <i>libdvdcss</i> + (recommended version is 0.0.3 - not 1.0.0!) required to + overcome the context scrambling system (CSS) and the second is a + modern MPEG-4 codec. See the <a href=index.html#modules> + modules</a> section to find out which MPEG-4 codecs are currently supported + and where to obtain the sources/binaries. Unless you enjoy + command line utilities, please take a look at the excellent + <a href="http://www.exit1.org/dvdrip/">dvd::rip</a>, which is + a full featured DVD Ripper GUI for Linux, written in + Perl, by Joern Reder. + + + <ul> + <li> <a href="#dvd1"> <FONT FACE="Lucida,Helvetica"> DVD + (PAL)</font></a> <br> + <ul> + <li><a href="#dvd1_43"> <FONT FACE="Lucida,Helvetica"> + aspect ratio 4:3</font></a> + <li><a href="#dvd1_169"> <FONT FACE="Lucida,Helvetica"> + aspect ratio 16:9</font></a> + </ul> + + <br> + + <li> <a href="#dvd2"> <FONT FACE="Lucida,Helvetica"> DVD + (NTSC)</font></a><br> + <ul> + <li><a href="#dvd2_43"> <FONT FACE="Lucida,Helvetica"> + aspect ratio 4:3</font></a> + <li><a href="#dvd2_169"> <FONT FACE="Lucida,Helvetica"> + aspect ratio 16:9</font></a> + </ul> + + <br> + + <li> <a href="#vob"> <FONT FACE="Lucida,Helvetica"> + multiple program stream VOB chunks </font></a> + <br> + + <ul> + <li><a href="#vob_mp3"> <FONT FACE="Lucida,Helvetica"> + encoding audio to MP3</font></a> + <li><a href="#vob_ac3"> <FONT FACE="Lucida,Helvetica"> + AC3 audio pass-through</font></a> + <li><a href="#vob_pcm"> <FONT FACE="Lucida,Helvetica"> + LPCM audio pass-through</font></a> + <li><a href="#vob_mp2"> <FONT FACE="Lucida,Helvetica"> + MP2 to MP3 audio re-encoding</font></a> + </ul> + </ul> + + <ul> + <li> <a href="#tccat"> <FONT FACE="Lucida,Helvetica"> + making a main title DVD backup with + <i>tccat</i></font></a><br> + </ul> + <p> + + </td> + </tr> +</table> +</table> + +<a name=dvd1></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>PAL DVD ---> DivX 4.0 / DivX ;-)</font> + </tr> + <tr> + <td> + + Here is a 3 step guide to convert a PAL DVD to an AVI + DivX movie with <FONT color=blue> MP3 </font> (default) sound under linux using + <i>transcode</i>: + + <ul> + <li> (I) Put the DVD in the drive:<br> + We assume, that /dev/dvd + is a link to the actual device. The disk may be + encrypted and we need <i>libdvdcss</i> as a shared + library in the default library search path for this. + We first do some preprocessing with <i> tcscan </i> + to find out the best encoding bitrate and frame + parameter + to make + the main DVD title fit on 1 or 2 CDs with renormalized + sound. This is done by invoking the helper + programs + <i>tccat</i>, <i>tcextract</i>, <i>tcdecode</i> and + <i>tcscan</i>: <p> + <ul> + <li> bitrate:<br> + + <FONT color=red>tccat -t dvd -T 1,-1 -i /dev/dvd | + tcextract -x ac3 -t vob | tcdecode -x ac3 | tcscan -x pcm</font><p> + + We basically pipe all chapters (use "-1" for the + chapter argument of option "-T") of the main title + (this number may be different on your DVD) through + <i>tcextract</i>, where we have to supply the + filetype option "-t vob". The extracted AC3 stream is + decoded by <i>tcdecode</i> and analyzed by + <i>tcscan</i>. + The output may look like:<p> + <code> + [tcscan] audio frames=167838.40, estimated clip length=6713.54 seconds<br> + [tcscan] (min/max) amplitude=(-0.210/0.224), suggested volume + [tcscan] rescale=4.470 <br> + [tcscan] length: 167838 frames <br> + [tcscan] runtime: 6713 sec @ 25.000 fps <br> + [tcscan] MP3 bitrate: 128 kbps <br> + [tcscan] audio: 104.89 MB <br> + [tcscan] disk size: 650 MB | video 545.11 MB | encoder bitrate 681.17 + kbps <br> + [tcscan] disk size: 700 MB | video 595.11 MB | encoder bitrate 743.65 kbps<br> + [tcscan] disk size: 1300 MB | video 1195.11 MB | encoder bitrate 1493.42 kbps<br> + [tcscan] disk size: 1400 MB | video 1295.11 MB | encoder bitrate + 1618.38 kbps<br><br> + </code> + and is a simple estimate for the encoder bitrate, + using the + default values for MP3 sound encoded at 128 kbps. + Invoke <i>tcscan -h</i> to learn about more options. + The main title runtime is about 1h:52m and a high + quality encoded movie deserves a 2 CD burn. + As you can see, the unrealistic high bitrate values + for + the old Win32 dll codecs are no longer valid.<br><br> + + </li> + <li> frame parameter and aspect ratio:<br> + + <FONT color=red>tccat -t dvd -T 1,-1 -i + /dev/dvd | tcscan -x vob</font><p> + + and press "^C" after the MPEG frame parameter + have been displayed. + In this case, the output may look like + <p> + <code> found MPEG-2 video stream [0xe0] <br> + sequence: 720x576 4:3, 25 fps, ... + </code><p> + which means, that we need to rescale the frame + to + obtain the proper aspect ratio "4:3". Another + common aspect ratio is "16:9". We show below + suggested scaling parameter and two + <i>transcode</i> processing + modes for both cases. + + </li> + + </ul> + <p> + + <li> (II) The actual encoding session (parameter grouped + by import/processing/export):<p> + <a name=dvd1_43>Example:</a><FONT color=blue> <bf>DVD title / aspect ratio "4:3" + / letterbox format </bf></font><p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i /dev/dvd/ -x dvd -T 1,-1 -V</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -B 1,0 -Y 76,8 -s 4.47</td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -t 83920,alien -y divx4 -w 1618 </td></tr> + + </table> + <br> + <code> + [transcode] video: import frame | 720 x 576 1.25:1<br> +[transcode] video: new aspect ratio | 720 x 544 1.32:1 (-B) <br> +[transcode] video: clip frame (->) | 704 x 392 + </code><p> + + <ul> + <li> + We use slightly more than 1/2 of the total number of + frames "-t" or simply 1 huge file "-o + alien.avi" to be split in the last step.<br> + <li> + We clip off 76 lines at the top and bottom and 8 + rows on both sides of + the movie "-Y 76,8" before encoding to get rid of the black bars. This is + only recommended for letterbox format.<br> + <li>In order to use the + fast resizing of <i> transcode</i> with option "-B", the + height and width must + be a multiple of 32. Clipping 8 columns on both + sides will do, in most cases they are black anyway. + We will get a 704x392 frame with an aspect ratio of + 1.32:1, which is acceptable.<br> + <li> + Optional: We might try to go for better encoding quality. + In this case, it is recommended to use the + multi-pass encoding feature found in DivX 4.0 with option "-R 1". + However, you need a second run with + identical transcode options, except "-R 2", instead of "-R 1". The first run produces a logfile, + which is analyzed to estimate optimal encoding parameter and to + achieve an average encoding bitrate, that is close to the supplied + value of "-w" and will fit the result onto 2 + CD's.<br> + <li>Optional: Use the high-quality zoom option "-Z 720x544" + instead of "-B 1,0".<br> + <li> The option "-V" consumes less CPU/PCI + bandwidth and gives a big performance increase. + </ul> + + <p> + + + <a name=dvd1_169>Example:</a> <FONT color=blue> <bf>DVD chapter mode / + aspect ratio "16:9" / letterbox format </bf></font><p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i /dev/dvd/ -x dvd -V</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -j 16,0 -B 5,0 -Y 40,8 -s 4.47</td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -U alien -y divx4 -w 1618 </td></tr> + + </table> + + <br> + + <code> + [transcode] video: import frame | 720 x 576 + 1.25:1 <br> + [transcode] video: clip frame (<-) | 720 x 544<br> +[transcode] video: new aspect ratio | 720 x 384 1.77:1 (-B) <br> +[transcode] video: clip frame (->) | 704 x 304<br> +</code><p> +<ul> +<li> We clip off 16 lines at the top and the bottom of + the movie to use the fast resizing of <i> + transcode</i> to an almost ideal aspect ratio of 1.77:1. + + Clipping 8 columns on both + sides and 40 rows at the top and the bottom removes + the remaining black bars prior to encoding. + <br> +<li> + In the chapter mode "-U", the output is split into separate + files labeled alien-ch00.avi, alien-ch01.avi, ... which contain the + DVD chapters, that are known from the DVD player menu.<br> +</ul> + +<p> + +Example: <FONT color=blue> <bf>DVD chapter #25 / +aspect ratio "16:9"</bf></font><p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i /dev/dvd/ -x dvd -T 1,25 -V</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -j 0,8 -B 6,1 -Y 40,8 -s 4.47</td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -o alien-ch25.avi -y divx4 -w 1618 </td></tr> + + </table> + + <br> + + <code> + [transcode] video: import frame | 720 x 576 + 1.25:1 <br> + [transcode] video: clip frame (<-) | 704 x 576<br> +[transcode] video: new aspect ratio | 672 x 384 1.79:1 (-B) <br> +</code><p> +<ul> + <li> We clip off 8 columns on both + sides of the movie to use the fast resizing of <i> + transcode</i> + to an almost ideal aspect ratio of 1.79:1. No further + clipping necessary for the final frame size of 672x384. + <br> + <li> The encoding stops after the selected chapter 25 is done. + +</ul> + +<p> + + <li> (III) It's almost done: + + <br> The <i> avisplit </i> utility allows to split + the + AVI file(s) produced by transcode. The utility may not + work for other AVI files. If you have one big file, + use + <br><br> + <FONT color=red> avisplit -i alien.avi -s 700</font><br> + <br> to break a huge file (AVI files have a 2 GB + limit) into the pieces alien.avi-0 + and alien.avi-1 with no more than 700 MB each. + + <p> + For the second example above, we now have quite a lot of files, each containing a chapter of the movie. Distribute the files, preserving + the order, onto one ore more subdirectories ./CD-N, + N=1,2,..., each containing no more than 650 or 700 + MB, depending on your choice of CD. Now invoke + <i>avimerge</i> for each subdirectory <br><br> + + <FONT color=red> avimerge -o movie-disk-N.avi -i ./CD_N/*.avi</font><br><br> + This will glue all the small + files to one big AVI file named movie-disk-N.avi, + where N is the number of the CD. + <i> avimerge</i> supports wildcards and is very + careful + in not trashing + your + existing AVI files. + Try to play the big files with + <i>mplayer</i> + and seek around. The audio/video synchronization + should be acceptable. If everything seems fine, go ahead + and burn your CDs.<p> + + <p> + </ul> + </ul> +</table> +</table> + + +<a name=dvd2></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>NTSC DVD ---> DivX </font> + </tr> + <tr> + <td> + + Here is a 3 step guide to convert a NTSC DVD to an AVI + DivX movie with <FONT color=blue> MP3 </font> (default) sound under linux using + <i>transcode</i>: + + <ul> + <li> (I) Put the DVD in the drive:<br> + Follow step (I) for the PAL DVD, with option "-f + 23.976024" for <i>tcscan</i>. + + <p> + + <li> (II) The actual encoding session (parameter grouped + by import/processing/export) :<p> + <a name=dvd2_43>Example:</a> <FONT color=blue> <bf> DVD title / aspect ratio "4:3" + / letterbox format </bf></font><p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i /dev/dvd/ -x dvd -T 1,-1 -g 720x480 -M 2 -V</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -X 2,0 -Y 80,8 -s 4.47</td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -t 83920,alien -y divx4 -w 1618 -f 23.976024</td></tr> + + </table> + + <br> + + <code> + [transcode] video: import frame | 720 x 480 1.50:1<br> +[transcode] video: new aspect ratio | 720 x 544 1.32:1 (-X) <br> +[transcode] video: clip frame (->) | 704 x 384 + </code><p> + + <ul> + <li> + We use slightly more than 1/2 of the total number of + frames "-t" or simply 1 huge file to be split in the last step.<br> + <li> + We clip off 80 lines at the top and bottom and 8 + rows on both sides of + the movie "-Y 80,8" before encoding to get rid of the black bars. This is + only recommended for letterbox format.<br> + <li>In order to use the + fast resizing of <i> transcode</i> with option "-X", the + height and width must + be a multiple of 32. Clipping 8 columns on both + sides will do, in most cases they are black anyway. + We will get a 704x384 frame with an aspect ratio of + 1.32:1, which is acceptable.<br> + <li> We must provide the frame parameter "-g + 720x480", the frame rate "-f 23.976024" and the + demuxer option "-M 2" to obtain a clean stream + at a constant frame rate. + </ul> + + <p> + + + <a name=dvd2_169>Example:</a> <FONT color=blue> <bf>DVD chapter mode / + aspect ratio "16:9" / letterbox format </bf></font><p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i /dev/dvd/ -x dvd -g 720x480 -M 2 -V</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -j 16,0 -B 2,0 -Y 32,8 -s 4.47</td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -U alien -y divx4 -w 1618 -f 23.976024</td></tr> + + </table> + + <br> + + <code> + [transcode] video: import frame | 720 x 480 + 1.50:1 <br> + [transcode] video: clip frame (<-) | 720 x 448<br> + [transcode] video: new aspect ratio | 720 x 384 1.75:1 (-B) <br> + [transcode] video: clip frame (->) | 704 x 320<br> + </code><p> + <ul> + <li> We clip off 16 lines at the top and the bottom of + the movie to use the fast resizing of <i> + transcode</i> + to an almost ideal aspect ratio of 1.77:1. + + Clipping 8 columns on both + sides and 32 rows at the top and the bottom removes + the remaining black bars prior to encoding. + <br> +<li> + In the chapter mode "-U", the output is split into separate + files labeled alien-ch00.avi, alien-ch01.avi, ... which contain the + DVD chapters, that are known from the DVD player menu.<br> +</ul> + +<p> + + Example: <FONT color=blue> <bf>DVD chapter #10 / + aspect ratio "16:9" / viewing angle #2</bf></font><p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i /dev/dvd/ -x dvd -T 1,10,2 -g 720x480 -M 2 -V</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -j 0,8 -B 3,1 -s 4.47</td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -o alien-ch10-2.avi -y divx4 -w 1618 -f 23.976024</td></tr> + + </table> + + <br> + + <code> + [transcode] video: import frame | 720 x 480 + 1.50:1 <br> + [transcode] video: clip frame (<-) | 704 x 480<br> + [transcode] video: new aspect ratio | 672 x 384 1.79:1 (-B) <br> + </code><p> + <ul> + <li> We clip off 8 columns on both + sides of the movie to use the fast resizing of <i> + transcode</i> + to an almost ideal aspect ratio of 1.79:1. No further + clipping necessary for the final frame size of 672x384. + <br> + <li> The encoding stops after the selected chapter 10 is + done. + Here, we choose a second camera angle, if the DVD has + this feature. + </ul> + +<p> + <li> (III) It's almost done:<br> + + Follow step (III) of the PAL DVD example. + <p> + </ul> + </ul> + + + </table> +</table> + + +<a name=vob></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> +<font>Multiple MPEG + program stream chunks (VOB) ---> DivX</font> + </tr> + <tr> + <td> + + Here is a 3 step guide to rip a DVD and convert the multiple VOB + chunks, or only a single file, using <i>transcode</i>: + + <ul> + <li> We rip the DVD and put all VOB chunks, that make up the + actual movie into a subdirectory, denoted + here as + "my_movie/". For an encrypted DVD, we will need + <i>libdvdcss</i> under linux to do this, but this may + not be legal. + <br> + If you do not need DVD navigation or multiple angle + features, + the ripping is done by:<br><br> + + <FONT color=red> + tccat -i /dev/dvd -T 1,-1 | split -b 1024m - my_movie/movie- + </font><p> + + I assume, "/dev/dvd" is a link to the DVD + device and the main title is 1. + The DVD does not have to be mounted, just + put it in the drive. After some time, + we chunks named: movie-aa, movie-ab, ..., + which are, but the last, exactly 1GB.<br><br> + The following is also valid, if we have used other + programs to copy the DVD title VOBs onto the + harddisk. + + <br> + It's a good idea, to let <i>tcprobe</i> take a look + at the files you want to encode. This is done + by typing:<br><br> + + <FONT color=red> + tcprobe -i my_movie/ + </font><p> + + assuming that "my_movie/" is a directory in your + present work directory. + The output may look like<p> + + <code> + [tcprobe] MPEG program stream<br> + [tcprobe] summary for my_movie/, (*) = not default, 0 = not detected<br> + import frame size: -g 720x480 [720x576] (*)<br> + aspect ratio: 16:9 (*)<br> + frame rate: -f 23.976 [25.000] frc=1 (*)<br> + audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000] <br> + detected (6) subtitle(s)<br> + </code><p> + + As you can see, the auto-probing feature has + detected a NTSC program stream with a single AC3 + audio track. In the following, we only need to take + care of the aspect ratio 16:9, but that has already been + explained in the previous section.<p> + + <li> Now we can invoke <i>transcode</i> with the directory + mode, that internally concatenates all VOB + chunks. If + you need more bitrate or audio renormalization + information, + check the DVD section. The default is for MP3 audio + encoding:<p> + + <a name=vob_mp3><h3>AC3->MP3</h3></a> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i my_movie/ -V</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -j 0,8 -B 3,1 </td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -t 10000,movie -y divx4 </td></tr> + + </table> + <p> + + To enable AC3 pass-through, + use "-A" and use "-N 0x2000" + to set the proper codec + in the AVI file and the player. The default audio + track + is 0, which is in most cases the original language. If you + want to have AC3 sound in your AVI-file, use:<p> + + <a name=vob_ac3><h3>AC3->AC3</h3></a> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i my_movie/ -V -A</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -j 0,8 -B 3,1 </td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -t 10000,movie -y divx4 -N 0x2000</td></tr> + + </table> + <p> + + If you own a DVD with uncompressed PCM audio, e.g., audio track 1, + and + want to keep the quality, i.e., pass-through the sound, use: + + <a name=vob_pcm><h3>PCM->PCM</h3></a> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i my_movie/ -V -a 1</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -j 0,8 -B 3,1 </td> + </tr> + +<td></td><td align=left valign="top" bgcolor="#ccffcc"> + -t 10000,movie -y divx4 -N 0x1</td></tr> + +</table> +<p> + + If your DVD has MPEG audio, it's usually MP2 format. This is +automatically +detected and recompression to MP3 audio is performed with the +default settings. However, if you need to resample your sound, here +is an example, using audio track 2: + + <a name=vob_mp2><h3>MP2->MP3</h3></a> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i my_movie/ -V -a 2</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -j 0,8 -B 3,1 -E 44100</td> + </tr> + +<td></td><td align=left valign="top" bgcolor="#ccffcc"> + -t 10000,movie -y divx4</td></tr> + +</table> +<p> + + + The "-t" option + splits the output into separate files labeled movie000.avi, + movie001.avi,..., with exactly + 10000 frames per file. + On my CII 533@800 MHz, I get around 11 fps for the + encoding, using the "-V" mode, which saves alot of + bandwidth. + + This will take some hours, but since we work with linux, + we don't need to care, just wait.<p> + + <ul><li> + If you have to interrupt your session + for some reason, you can always restart with the + help of the "-c" option. You only need to count the + valid files, i.e., with 10000 frames, + already encoded to find out the first + parameter for this option. Drop the last AVI file + for it may be broken, but this is not the case if + you use ^C. Also use some other + basename for the "-t", like "-t 10000,movie1" to make + sure, not to overwrite your old files. Ok, the + braindead seeking implementation takes some time, but this is + rarely used anyway. + </uL> + <p> + +<li> Take a look at the DVD section to learn how to avimerge + the AVI-files. After merging, + try to play the big files with + <i>mplayer</i> + and seek around. The audio/video synchronization + should be acceptable. If everything seems fine, go ahead + and burn your CDs. Note, that AC3 AVI files tend to + be up to 25% larger compared to MP3 audio, which is the + default for transcode.<p> + + </ul> + +</table> +</table> + +<a name=tccat></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>making a main title DVD backup with <i>tccat</i> </font> + </tr> + <tr> + <td> + +Here is a short guide for making a quick "backup" of +your shiny new multi-angle DVD. <br> +NOTE: Please make sure, the DVD explicitly allows you to make a backup copy. + +<p> + <ul> +<li> (0) insert your DVD;-) <p> +<li> (1) switch to a new empty directory $MY_PATH/DVD/ on your hard drive.<p> +<li>(2) if /dev/dvd is a link to your block device, use tccat's new -P + option <p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tccat -i /dev/dvd -P 1 | split -b 1024m - VTS_01_</td> + </tr> +</table> +<p> + This will result in a couple of files named <br> + + VTS_01_aa, VTS_01_ab, ...<br> + + (once LFS is fully working, a single file should be sufficient (???), + i.e., "tccat -i /dev/dvd -P 1 > VTS_01_1.VOB").<p> + +<li>(3) copy the IFO files by hand. For this, you will need to mount the + DVD: <p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + mount /dev/dvd /mnt/dvd + </tr> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + cp /mnt/dvd/VIDEO_TS/VIDEO_TS.IFO . + </tr> + </table> + <p> + + You also need the title IFO file. In this case + cp /mnt/dvd/VIDEO_TS/VTS_01_0.IFO . <p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + umount /mnt/dvd + </tr> + </table> + <p> + + +<li>(4) rename the chunks, first file is VTS_01_1.VOB, not VTS_01_0.VOB. The + latter contains still pictures and the like (?). <p> + + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + mv VTS_01_aa VTS_01_1.VOB + </tr> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + mv VTS_01_ab VTS_01_2.VOB + </tr> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + ... + </tr> + </table> + <p> + + +<li>(5) repeat step (2-4) for other titles, you wish to keep. In most cases, + the main title will do. Note that the Example after you're done: <p> + + $>ls -l .<br> + total 5529180<br> + -r--r--r-- 1 bgates users 26624 Jan 13 10:29 VIDEO_TS.IFO<br> + -r--r--r-- 1 bgates users 124928 Jan 13 10:29 VTS_01_0.IFO<br> + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:05 VTS_01_1.VOB<br> + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:06 VTS_01_2.VOB<br> + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:08 VTS_01_3.VOB<br> + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:10 VTS_01_4.VOB<br> + -rw-r--r-- 1 bgates users 1073741824 Jan 13 18:12 VTS_01_5.VOB<br> + -rw-r--r-- 1 bgates users 287461376 Jan 13 18:12 VTS_01_6.VOB<br> + <p> +<li>(6) test your copy, you need to provide an absolute path to + the backup directory:<p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcprobe -i $MY_PATH/DVD -T 1 + </tr> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tccat -i $MY_PATH/DVD -T 1,C,A | [mplayer | xine | ... ] - + </tr> + + </table> + <p> + + and optionally check other titles, chapters (C) or even viewing angles (A).<p> + +<li>(7) Please note this backup copy is suitable for navigation with import + module "-x dvd". If you prefer the cluster mode, you need to + apply my cluster mini guide to this copy of your DVD or the DVD in your + drive. The program stream contains full navigation and angle information. + These information are not preserved using the -T option with tccat.<p> + -----<br> + Hint: It does not make sense to apply the procedure to all titles + found with tcprobe, since a lot of titles share VTS* files and IFO files. + + + </table> +</table> + + + +<!-- hhmts start --> +Last modified: Thu May 16 12:56:51 CEST 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/export_divx.html b/debian/transcode/transcode-1.1.7/docs/html/export_divx.html new file mode 100644 index 00000000..362825a1 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/export_divx.html @@ -0,0 +1,125 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> export_divx.so</title> +</head> + +<body bgcolor=#CDB5CD> + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9" width=30%> + <FONT FACE="Helvetica" font size=+2> module name: + </td> + + <td align="left" bgcolor="#e9e9e9" width=70%> + <strong> + <FONT FACE="Helvetica" font size=+2> export_divx.so</strong> + </td> + </tr> + + <tr> + <td align="left"> + <FONT FACE="Helvetica" font size=+2> description: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2> + encoder for divx;-) video based on MPEG4 v3 + </td> + </tr> + + <tr> + <td valign="top" > + <FONT FACE="Helvetica" font size=+2>related packages: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <a href="http://freshmeat.net/projects/avifile/"> + <i>avifile-0.53.5</i></a> by Eugene Smith <br> +<a href="http://freshmeat.net/projects/lame/"> + <i>lame-3.87</i></a> by Mike Cheng and Mark Taylor <br> + <i>avilib</i>, included in <i>lavtools-1.2</i> by Rainer Johanni + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + output format: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) MPEG4 v3, (audio) MP2/MP3/PCM/AC3 + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + input format: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) RGB/YUV, (audio) PCM/AC3 + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + AVI + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2"> + v0.2.1 (07/23/2001) + </td> + + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + todo: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + - + </td> + </tr> + + <tr> + <td valign="top" > + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + <ul> + <li>watch movies with mplayer or aviplay + <li>illegal instruction: upgrade to linux 2.4 + </td> + </tr> +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/export_divx4.php b/debian/transcode/transcode-1.1.7/docs/html/export_divx4.php new file mode 100644 index 00000000..b0a43f7f --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/export_divx4.php @@ -0,0 +1,36 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<?php + + +$mod = "export_divx4.so / export_divx4raw.so"; +$des = "encoder frontend for DivX 4.xx video"; +$aut = "ThOe<br> 2-pass encoding (-R 1/2) by Christoph Lampert<br> -R 3 (constant quantizer mode) added by Gerhard Monzel"; +$ver = "0.5.0-pre1"; +$pac = "<a href=http://www.divx.com/divx/maclinux.php>DivX 4.xx</a> codec binary for linux (latest linux version is 4.02)"; +$format[0] = "DivX 4.xx (FourCC=DIVX)"; +$format[1] = "MP3/AC3/PCM"; +$file = "AVI or raw bitstream with \"-y divx4raw\""; +$c[0] = "option -r does not work correctly for PAL (720x576) videos. <br> The frame must be cropped and the following combinations work: -r2 or -r4 with -j 0,8 and -r8 -j 32,40"; +$c[1] = "raw audio export with -m"; +$c[2] = "-y divx4raw requires audio export to separate file with -m"; + +?> +<!-- /////////////////////////////////////// --> + + +<html> <head> +<title><?php echo("$mod"); ?></title> +</head> + +<body> + +<?php +include("table.php"); +?> + +<hr> +<address></address> +<!-- hhmts start --> +Last modified: Tue Feb 5 15:06:07 CET 2002 +<!-- hhmts end --> +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/export_divx5.php b/debian/transcode/transcode-1.1.7/docs/html/export_divx5.php new file mode 100644 index 00000000..7a9fbc59 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/export_divx5.php @@ -0,0 +1,35 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<?php + + +$mod = "export_divx5.so"; +$des = "encoder frontend for DivX 5.xx video"; +$aut = "ThOe<br> 2-pass encoding (-R 1/2) by Christoph Lampert<br> -R 3 (constant quantizer mode) added by Gerhard Monzel"; +$ver = "0.6.0-pre5"; +$pac = "<a href=http://www.divx.com/divx/maclinux.php>DivX 5.xx</a> codec binary for linux (latest linux version is 5.01)"; +$format[0] = "DivX 5.xx (FourCC=DIVX)"; +$format[1] = "MP3/AC3/PCM"; +$file = "AVI"; +$c[0] = "option -r does not work correctly for PAL (720x576) videos. <br> The frame must be cropped and the following combinations work: -r2 or -r4 with -j 0,8 and -r8 -j 32,40"; +$c[1] = "raw audio export with -m"; + +?> +<!-- /////////////////////////////////////// --> + + +<html> <head> +<title><?php echo("$mod"); ?></title> +</head> + +<body> + +<?php +include("table.php"); +?> + +<hr> +<address></address> +<!-- hhmts start --> +Last modified: Tue Feb 5 15:06:07 CET 2002 +<!-- hhmts end --> +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/export_fame.php b/debian/transcode/transcode-1.1.7/docs/html/export_fame.php new file mode 100644 index 00000000..82e64a05 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/export_fame.php @@ -0,0 +1,38 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<?php + + +$mod = "export_fame.so"; +$des = "encoder frontend for MPEG-4 codec provided by <i>libfame</i>"; +$aut = "Yannick Vignon <[email protected]>"; +$ver = "0.6.0-pre3"; +$pac = "Open-Source library <a href=http://sourceforge.net/projects/fame>project homepage</a>"; +$format[0] = "DivX (FourCC=DIVX)"; +$format[1] = "MP3/AC3/PCM"; +$file = "AVI"; +$c[0] = "<i>libfame</i> CVS version 0.8.10 required.<br> +Alexander Gloeckner has made some packages available <a href=http://www-user.tu-chemnitz.de/~alg/rpms/>here</a>."; +$c[1] = "only YUV mode -V supported"; +$c[2] = "option -r does not work correctly for PAL (720x576) videos. <br> The frame must be cropped and the following combinations work: -r2 or -r4 with -j 0,8 and -r8 -j 32,40"; +$c[3] = "raw audio export with -m"; + +?> +<!-- /////////////////////////////////////// --> + + +<html> <head> +<title><?php echo("$mod"); ?></title> +</head> + +<body> + +<?php +include("table.php"); +?> + +<hr> +<address></address> +<!-- hhmts start --> +Last modified: Tue Feb 5 15:06:07 CET 2002 +<!-- hhmts end --> +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/export_ogg.php b/debian/transcode/transcode-1.1.7/docs/html/export_ogg.php new file mode 100644 index 00000000..f3e990c7 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/export_ogg.php @@ -0,0 +1,36 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<?php + + +$mod = "export_ogg.so"; +$des = "encoder frontend for OSS Ogg Vorbis audio"; +$aut = "Tilmann Bitterberg"; +$ver = "0.6.0rc4"; +$pac = "Open-Source available from the <a href=http://www.xiph.org/ogg/vorbis/>Ogg Vorbis CODEC project</a>."; +$format[0] = "-------"; +$format[1] = "Ogg Vorbis"; +$file = "Ogg bitstream (*.ogg)"; +$c[0] = "raw audio export with -m <filename>."; +$c[1] = "needs <i>oggenc</i>."; +$c[2] = "you need <i>oggmerge</i> part of <a href=http://www.bunkus.org/videotools/ogmtools/>ogmtools</a> by Moritz Bunkus to build an Ogg compliant Video/Audio stream."; + +?> +<!-- /////////////////////////////////////// --> + + +<html> <head> +<title><?php echo("$mod"); ?></title> +</head> + +<body> + +<?php +include("table.php"); +?> + +<hr> +<address></address> +<!-- hhmts start --> +Last modified: Tue Feb 5 15:06:07 CET 2002 +<!-- hhmts end --> +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/export_opendivx.php b/debian/transcode/transcode-1.1.7/docs/html/export_opendivx.php new file mode 100644 index 00000000..59e77505 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/export_opendivx.php @@ -0,0 +1,36 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<?php + + +$mod = "export_opendivx.so"; +$des = "encoder frontend for OpenDivX video based on MPEG4 v2"; +$aut = "ThOe"; +$ver = "0.2.0"; +$pac = "-"; +$format[0] = "OpenDivX (FourCC=DIVX)"; +$format[1] = "MP3/AC3/PCM"; +$file = "AVI"; +$c[0] = "obsolete"; +$c[1] = "option -r does not work correctly for PAL (720x576) videos. <br> The frame must be cropped and the following combinations work: -r2 or -r4 with -j 0,8 and -r8 -j 32,40"; +$c[2] = "raw audio export with -m"; + +?> +<!-- /////////////////////////////////////// --> + + +<html> <head> +<title><?php echo("$mod"); ?></title> +</head> + +<body> + +<?php +include("table.php"); +?> + +<hr> +<address></address> +<!-- hhmts start --> +Last modified: Tue Feb 5 15:06:07 CET 2002 +<!-- hhmts end --> +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/export_xvid.php b/debian/transcode/transcode-1.1.7/docs/html/export_xvid.php new file mode 100644 index 00000000..f9d999d8 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/export_xvid.php @@ -0,0 +1,40 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<?php + + +$mod = "export_xvid.so / export_xvidcvs.so / export_xvidraw.so"; +$des = "encoder frontend for XviD video"; +$aut = "ThOe<br> 2-pass encoding (-R 1/2) by Christoph Lampert<br> -R 3 (constant quantizer mode) added by Gerhard Monzel"; +$ver = "0.5.1"; +$pac = "Open-Source available from the <a href=http://www.videocoding.de/index.php?section=Download> XviD project page</a>"; +$format[0] = "XviD (FourCC=DIVX)"; +$format[1] = "MP3/AC3/PCM"; +$file = "AVI / raw bitstream"; +$c[0] = "superseeds OpenDivX codec."; +$c[1] = "video frame size parameter should be multiple of 16."; +$c[2] = "option -r does not work correctly for PAL (720x576) videos. <br> The frame must be cropped and the following combinations work: -r2 or -r4 with -j 0,8 and -r8 -j 32,40."; +$c[3] = "raw audio export with -m <filename>."; +$c[4] = "use \"-y xvid\" with codec snapshot of 2002-04-12."; +$c[5] = "<i>export_xvidcvs.so</i> tries to follow latest CVS development."; +$c[6] = "<i>export_xvidraw.so</i> writes raw bitstream for post-processing."; + +?> +<!-- /////////////////////////////////////// --> + + +<html> <head> +<title><?php echo("$mod"); ?></title> +</head> + +<body> + +<?php +include("table.php"); +?> + +<hr> +<address></address> +<!-- hhmts start --> +Last modified: Tue Feb 5 15:06:07 CET 2002 +<!-- hhmts end --> +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_avi.html b/debian/transcode/transcode-1.1.7/docs/html/import_avi.html new file mode 100644 index 00000000..f4d133fb --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_avi.html @@ -0,0 +1,107 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_avi.so</title> +</head> + +<body bgcolor=#CDB5CD> + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9" width=30%> + <FONT FACE="Helvetica" font size=+2> module name: + </td> + + <td align="left" bgcolor="#e9e9e9" width=70%> + <strong> + <FONT FACE="Helvetica" font size=+2>import_avi.so</strong> + </td> + </tr> + + <tr> + <td align="left"> + <FONT FACE="Helvetica" font size=+2> description: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2> + extracts raw video/audio frames from RIFF AVI video files + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>required executables: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <i>tcextract</i> + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>related packages: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <i>avilib</i>, included in <i>lavtools-1.2</i> by Rainer Johanni + </td> + </tr> + + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + input formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) RGB, (audio) PCM + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + AVI + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2"> + v0.2.1 (07/16/01) + </td> + + </tr> + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + will be extended to extract other codecs from AVI files + </td> + </tr> +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_dv.html b/debian/transcode/transcode-1.1.7/docs/html/import_dv.html new file mode 100644 index 00000000..ac3c615f --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_dv.html @@ -0,0 +1,114 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_dv.so</title> +</head> + +<body bgcolor=#CDB5CD> + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9" width=30%> + <FONT FACE="Helvetica" font size=+2> module name: + </td> + + <td align="left" bgcolor="#e9e9e9" width=70%> + <strong> + <FONT FACE="Helvetica" font size=+2>import_dv.so</strong> + </td> + </tr> + + <tr> + <td align="left" valign="top" > + <FONT FACE="Helvetica" font size=+2> description: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2> + extracts/decodes + video/audio tracks from raw DV or AVI files + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>required executables: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <i>tcextract, tcdecode</i> + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>related packages: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> +<a href="http://freshmeat.net/projects/libdv/"> + <i> libdv-0.8</i></a> by Charles 'Buck' Krasic and Erik Walthinsen + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + input formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) DV, (audio) PCM + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + AVI, raw streams + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2"> + v0.2.1 (07/16/01) + </td> + + </tr> + <tr> + <td valign="top" > + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + sound extracting in <i>libdv</i> seems broken (noisy), use + <i>dvgrab</i> to write DV to AVI files and use + <i>import_raw.so</i> for sound, i.e., option '-x dv,raw'. + No workaround for raw DV streams yet. + </td> + </tr> + + + +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_dvd.html b/debian/transcode/transcode-1.1.7/docs/html/import_dvd.html new file mode 100644 index 00000000..fb778b29 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_dvd.html @@ -0,0 +1,128 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_dvd.so</title> +</head> + +<body bgcolor=#CDB5CD> + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9" width=30%> + <FONT FACE="Helvetica" font size=+2> module name: + </td> + + <td align="left" bgcolor="#e9e9e9" width=70%> + <strong> + <FONT FACE="Helvetica" font size=+2>import_dvd.so</strong> + </td> + </tr> + + <tr> + <td align="left" valign="top" > + <FONT FACE="Helvetica" font size=+2> description: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2> + on-the-fly DVD transcoding (experimental) + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>required executables: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <i>tcextract, tcdecode</i> + </td> + </tr> + + <tr> + <td valign=top> + <FONT FACE="Helvetica" font size=+2>related packages: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <a href="http://www.dtek.chalmers.se/~dvd/"> <i> + libdvdread-0.8.0</i></a> + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + input formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + DVD device + </td> + </tr> + + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + output formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) RGB/YUV, (audio) AC3/PCM + </td> + </tr> + + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + absolute path to block device + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2"> + v0.1 (08/08/01) + </td> + + </tr> + <tr> + <td valign="top" > + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2" valign="top" > + <ul> + <li>convenience module for DVD encoding. + <li>currently works only if you provide the absolute + path to your DVD block device for option "-i". + <li>the mountpoint or the top directory of + a DVD copy will stop transcoding at VOB chunk boundaries. + <li>you need <i>libcss</i> in your default library + search path at runtime. + </ul> + </td> + </tr> +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_mp3.html b/debian/transcode/transcode-1.1.7/docs/html/import_mp3.html new file mode 100644 index 00000000..3f2051a8 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_mp3.html @@ -0,0 +1,119 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_mp3.so</title> +</head> + +<body bgcolor=#CDB5CD> + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9" width=30%> + <FONT FACE="Helvetica" font size=+2> module name: + </td> + + <td align="left" bgcolor="#e9e9e9" width=70%> + <strong> + <FONT FACE="Helvetica" font size=+2>import_mp3.so</strong> + </td> + </tr> + + <tr> + <td align="left" valign="top" > + <FONT FACE="Helvetica" font size=+2> description: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2> + extracts/decodes MPEG audio tracks from + MPEG program streams and raw audio streams + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>required executables: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <i>tcextract</i>, <i>tcdecode</i> + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>required packages: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> +<a href="http://freshmeat.net/projects/lame/"> + <i>lame-3.89</i></a> by Mike Cheng and Mark Taylor <br> + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + input format: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (audio) MP3 + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + VOB, raw streams + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + output format: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (audio) PCM + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2"> + v0.1 (09/18/01) + </td> + + </tr> + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + tries to autodetect file type, falls back to raw stream + </td> + </tr> +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_mpeg2.html b/debian/transcode/transcode-1.1.7/docs/html/import_mpeg2.html new file mode 100644 index 00000000..6dc7e2fa --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_mpeg2.html @@ -0,0 +1,121 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_mpeg2.so</title> +</head> + +<body bgcolor=#CDB5CD> + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9" width=30%> + <FONT FACE="Helvetica" font size=+2> module name: + </td> + + <td align="left" bgcolor="#e9e9e9" width=70%> + <strong> + <FONT FACE="Helvetica" font size=+2>import_mpeg2.so</strong> + </td> + </tr> + + <tr> + <td align="left" valign="top" > + <FONT FACE="Helvetica" font size=+2> description: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2> + extracts/decodes video tracks from MPEG program streams + and raw MPEG video streams + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>required executables: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <i>tcextract</i>, <i>tcdecode</i> + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>related packages: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <a href="http://freshmeat.net/projects/mpeg2dec/"> <i> + mpeg2dec-0.2.0</i></a> by Michel Lespinasse and Aaron Holtzman + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + input formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) MPEG + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + output formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) RGB/YUV + </td> + </tr> + + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + VOB, raw streams + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2"> + v0.2.1 (07/16/01) + </td> + + </tr> + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + tries to autodetect file type, falls back to raw stream + </td> + </tr> + +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_mpeg3.html b/debian/transcode/transcode-1.1.7/docs/html/import_mpeg3.html new file mode 100644 index 00000000..f6e45026 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_mpeg3.html @@ -0,0 +1,93 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_mpeg3.so</title> +</head> + +<body bgcolor=#CDB5CD> + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9" width=30%> + <FONT FACE="Helvetica" font size=+2> module name: + </td> + + <td align="left" bgcolor="#e9e9e9" width=70%> + <strong> + <FONT FACE="Helvetica" font size=+2>import_mpeg3.so</strong> + </td> + </tr> + + <tr> + <td align="left" valign="top" > + <FONT FACE="Helvetica" font size=+2> description: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2> + extracts video tracks from MPEG program streams + </td> + </tr> + + <tr> + <td valign="top" > + <FONT FACE="Helvetica" font size=+2>related packages: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <a href="http://freshmeat.net/projects/libmpeg3"><i>libmpeg3</i></a> by Adam Williams + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + input formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) MPEG + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + VOB, raw streams + </td> + </tr> + + <tr> + <td valign="top" > + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <ul> + <li> <i>libmpeg3</i> must be installed. + <li>use configure + option + "--with-libmpeg3" and optionally provide a path to the + library and include files. + <li>provides an alternative video extraction method based + on libmpeg3 + <li>replaces old <i>import_mpeg3cat.so</i> + </td> + </tr> + +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_null.html b/debian/transcode/transcode-1.1.7/docs/html/import_null.html new file mode 100644 index 00000000..52913b93 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_null.html @@ -0,0 +1,98 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_null.so</title> +</head> + +<body bgcolor=#CDB5CD> + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9" width=30%> + <FONT FACE="Helvetica" font size=+2> module name: + </td> + + <td align="left" bgcolor="#e9e9e9" width=70%> + <strong> + <FONT FACE="Helvetica" font size=+2>import_null.so</strong> + </td> + </tr> + + <tr> + <td align="left" valign="top"> + <FONT FACE="Helvetica" font size=+2> description: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2> + dummy import module for + reading video/audio frames from <i>/dev/zero</i> + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>required executables: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <i>tcextract</i> + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + import formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + - + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + - + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2"> + v0.1.1 (07/16/01) + </td> + + </tr> + <tr> + <td valign="top" > + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + this module is useful for the audio portion, if video only streams are processed + </td> + </tr> + +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_nuv.html b/debian/transcode/transcode-1.1.7/docs/html/import_nuv.html new file mode 100644 index 00000000..bb165bd8 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_nuv.html @@ -0,0 +1,96 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_yuv4mpeg.so</title> +</head> + +<body bgcolor=#CDB5CD> + + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9"width=30%> + <FONT FACE="Helvetica" font size=+2>module name: + </td> + <td align="left" bgcolor="#e9e9e9"width=70%> + <strong><FONT FACE="Helvetica" font size=+2>import_yuv4mpeg.so</strong> + </td> + </tr> + <tr> + <td align="left" valign="top"> + <FONT FACE="Helvetica" font size=+2>description: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + extracts/decodes YUV video streams and PCM + audio streams generated by MJPEG-tools + </td> + </tr> + + <tr><td> + <FONT FACE="Helvetica" font size=+2>requires: + </td> + <td> + <FONT FACE="Helvetica" font size=+2><i>tcextract</i>,<i>tcdecode</i> + </td> + </tr> + + </tr> + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>related packages: + </td> + <td><FONT FACE="Helvetica" font size=+2> + <a href="http://mjpeg.sourceforge.net/"><i>Mjpeg + tools</i></a> + </td> + </tr> + + + <tr> + <td><FONT FACE="Helvetica" font size=+2>input formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) YUV4MPEG, (audio) PCM + </td></tr> + + <tr> + <td><FONT FACE="Helvetica" font size=+2>file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + WAV, raw streams + </td></tr> + + <tr><td> + <FONT FACE="Helvetica" font size=+2>version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2">v0.1.2 (07/16/01) + </td> + </tr> + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + + </td> + </tr> + +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_ogg.php b/debian/transcode/transcode-1.1.7/docs/html/import_ogg.php new file mode 100644 index 00000000..616d0b71 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_ogg.php @@ -0,0 +1,35 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<?php + + +$mod = "import_ogg.so"; +$des = "decoder frontend for OSS Ogg Vorbis audio"; +$aut = "ThOe"; +$ver = "0.6.0rc4"; +$pac = "Open-Source available from the <a href=http://www.xiph.org/ogg/vorbis/>Ogg Vorbis CODEC project</a>."; +$format[0] = "-------"; +$format[1] = "Ogg Vorbis"; +$file = "Ogg bitstream (*.ogg)"; +$c[0] = "raw audio import with -p <filename> or auto-probing"; +$c[1] = "needs <i>oggdec</i>."; + +?> +<!-- /////////////////////////////////////// --> + + +<html> <head> +<title><?php echo("$mod"); ?></title> +</head> + +<body> + +<?php +include("table.php"); +?> + +<hr> +<address></address> +<!-- hhmts start --> +Last modified: Tue Feb 5 15:06:07 CET 2002 +<!-- hhmts end --> +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_raw.html b/debian/transcode/transcode-1.1.7/docs/html/import_raw.html new file mode 100644 index 00000000..ae1bb0f0 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_raw.html @@ -0,0 +1,84 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_raw.so</title> +</head> + +<body bgcolor=#CDB5CD> + + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9"width=30%> + <FONT FACE="Helvetica" font size=+2>module name: + </td> + <td align="left" bgcolor="#e9e9e9"width=70%> + <strong><FONT FACE="Helvetica" font size=+2>import_raw.so</strong> + </td> + </tr> + <tr> + <td align="left" valign="top"> + <FONT FACE="Helvetica" font size=+2>description: + </td> +<td> + <FONT FACE="Helvetica" font size=+2> + extracts audio/video frames from RIFF AVI/WAVE files and + raw RGB/PCM streams + </td> + </tr> + + <tr><td> + <FONT FACE="Helvetica" font size=+2>requires: + </td> + <td> + <FONT FACE="Helvetica" font size=+2><i>tcextract</i> + </td> + </tr> + + <tr> + <td><FONT FACE="Helvetica" font size=+2>input formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) RGB, (audio) PCM + </td></tr> + + <tr> + <td><FONT FACE="Helvetica" font size=+2>file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + AVI, WAV, RAW + </td></tr> + + <tr><td> + <FONT FACE="Helvetica" font size=+2>version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2">v0.1.2 (07/16/01) + </td> + </tr> + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + tries to autodetect file type, falls back to raw stream + </td> + </tr> + +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_vob.html b/debian/transcode/transcode-1.1.7/docs/html/import_vob.html new file mode 100644 index 00000000..27485bb9 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_vob.html @@ -0,0 +1,125 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_vob.so</title> +</head> + +<body bgcolor=#CDB5CD> + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9" width=30%> + <FONT FACE="Helvetica" font size=+2> module name: + </td> + + <td align="left" bgcolor="#e9e9e9" width=70%> + <strong> + <FONT FACE="Helvetica" font size=+2>import_vob.so</strong> + </td> + </tr> + + <tr> + <td align="left" valign="top" > + <FONT FACE="Helvetica" font size=+2> description: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2> + extracts video/audio tracks from MPEG program streams + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>required executables: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <i>tcextract, tcdecode</i> + </td> + </tr> + + <tr> + <td valign=top> + <FONT FACE="Helvetica" font size=+2>related packages: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + <a href="http://freshmeat.net/projects/mpeg2dec/"> <i> + mpeg2dec-0.2.0</i></a> by Michel Lespinasse and Aaron + Holtzman + and <a href="http://freshmeat.net/projects/ac3dec/"> + <i>ac3dec-0.6.1</i></a> by Aaron + Holtzman + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + input formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) MPEG, (audio) AC3 + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + output formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) RGB/YUV, (audio) AC3/PCM + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + VOB + </td> + </tr> + + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2"> + v0.1.2 (07/16/01) + </td> + + </tr> + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + <ul> + <li>module for program stream encoding + <li>no deCSS feature yet + </ul> + </td> + </tr> +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/import_yuv4mpeg.html b/debian/transcode/transcode-1.1.7/docs/html/import_yuv4mpeg.html new file mode 100644 index 00000000..bb165bd8 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/import_yuv4mpeg.html @@ -0,0 +1,96 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title> import_yuv4mpeg.so</title> +</head> + +<body bgcolor=#CDB5CD> + + +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + + <tr> + + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + + <tr> + <td align="left" bgcolor="#e9e9e9"width=30%> + <FONT FACE="Helvetica" font size=+2>module name: + </td> + <td align="left" bgcolor="#e9e9e9"width=70%> + <strong><FONT FACE="Helvetica" font size=+2>import_yuv4mpeg.so</strong> + </td> + </tr> + <tr> + <td align="left" valign="top"> + <FONT FACE="Helvetica" font size=+2>description: + </td> + <td> + <FONT FACE="Helvetica" font size=+2> + extracts/decodes YUV video streams and PCM + audio streams generated by MJPEG-tools + </td> + </tr> + + <tr><td> + <FONT FACE="Helvetica" font size=+2>requires: + </td> + <td> + <FONT FACE="Helvetica" font size=+2><i>tcextract</i>,<i>tcdecode</i> + </td> + </tr> + + </tr> + <tr> + <td> + <FONT FACE="Helvetica" font size=+2>related packages: + </td> + <td><FONT FACE="Helvetica" font size=+2> + <a href="http://mjpeg.sourceforge.net/"><i>Mjpeg + tools</i></a> + </td> + </tr> + + + <tr> + <td><FONT FACE="Helvetica" font size=+2>input formats: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + (video) YUV4MPEG, (audio) PCM + </td></tr> + + <tr> + <td><FONT FACE="Helvetica" font size=+2>file type: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + WAV, raw streams + </td></tr> + + <tr><td> + <FONT FACE="Helvetica" font size=+2>version: + </td> + + <td> + <FONT FACE="Helvetica" font size=+2">v0.1.2 (07/16/01) + </td> + </tr> + <tr> + <td> + <FONT FACE="Helvetica" font size=+2> + comments: + </td> + <td> + <FONT FACE="Helvetica" font size=+2"> + + </td> + </tr> + +</table> +</td> +</table> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/index.html b/debian/transcode/transcode-1.1.7/docs/html/index.html new file mode 100644 index 00000000..df955754 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/index.html @@ -0,0 +1,212 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica"> <font>Example <i>transcode</i> sessions: </font> + </tr> + <tr> + + <td> + + + <table width=100% border="0" cellpadding="10" cellspacing="3"> + + <tr> + <td align=left valign="top" bgcolor="#e9e9e9" width=50%> + <font size=+2 color=blue><a href=intro.html>Introduction</a></font> + <ul> + <li> Overview + <li> Command line options + <li> Import/export/filter plug-ins + </ul> + + + + </td> + <td align=left valign="top" bgcolor="#e9e9e9" width=50%> + <font size=+2 color=blue><a href=pre.html>Pre-Processing</a></font> + <ul> + <li> <i>tcprobe</i> + <li> <i>tcscan</i> + </ul> + + + + +</td> + + </tr> + +<tr> + + <td align=left valign="top" bgcolor="#e9e9e9"> + <font size=+2 color=blue><a href=core.html>Basic + Transcoder Modes</a></font> + <ul> + <li> directory mode + <li> DVD chapter mode + <li> VOB cluster encoding batch mode + <li> VOB program stream units (PSU) mode + </ul> + +</td> + + <td align=left valign="top" bgcolor="#e9e9e9"> + <font size=+2 color=blue><a href=anim.html>Picture + Sequences</a></font> + + <ul> + <li> making animations + <li> movie to video frame conversion + </ul> + + + </td> + +</tr> + + + + +<tr> + <td align=left valign="top" bgcolor="#e9e9e9"> + <font size=+2 color=blue><a href=dvd.html>DVD to + MPEG-4</a></font> + + <ul> + <li> 2-pass encoding + <li> DVD backup with <i>tccat</i> + </ul> + + + +</td> + + <td align=left valign="top" bgcolor="#e9e9e9"> + <font size=+2 color=blue><a href=dv.html>Digital + Video</a></font> + + <ul> + <li> choosing a decoder + <li> pass-through options + <li> de-interlacing / anti-aliasing guide + </ul> + + +</td> +</tr> + +<tr> + <td align=left valign="top" bgcolor="#e9e9e9"> + <font size=+2 color=blue><a + href=mpeg.html>VCD/(S)VCD/DVD</a></font> + + + <ul> + <li> NTSC / PAL examples + <li> changing the aspect ratio + </ul> + + + </td> + + + <td align=left valign="top" bgcolor="#e9e9e9"> + <font size=+2 color=blue><a + href=subtitles.html>Subtitles</a></font> + + <ul> + <li> DVD subtitle overlay + <li> generating subtitle files + <li> adding custom subtitles + </ul> + + +</td> + + + + + + </tr> + + <tr> + <td align=left valign="top" bgcolor="#e9e9e9"> + <font size=+2 color=blue><a href=other.html>Other Supported + Formats</a></font> + + <ul> + <li> Quicktime4linux + <li> Video4linux + <li> NuppelVideo + <li> YUV4MPEG + </ul> + +</td> + + + <td align=left valign="top" bgcolor="#e9e9e9"> + <font size=+2 color=blue><a + href=misc.html>Miscellaneous</a></font> + + <ul> + <li> clipping / resizing guide + <li> multi-audio AVI-files + <li> pass-through options + <li> audio only processing + </ul> + +</td> + +</tr> + + + <tr> + <td align=left valign="top" bgcolor="#e9e9e9" width=50%> + <font size=+2 color=blue><a href=post.html>Post-Processing</a></font> + + <ul> + <li> <i>avifix/avisync</i> + <li> <i>avimerge</i> + <li> <i>avisplit</i> + </ul> + + + + </td> + <td align=left valign="top" bgcolor="#e9e9e9" width=50%> +<font size=+2 color=blue><a href=faq.html>References</a></font> + + <ul> + <li> frequently asked questions + <li> acknowledgements + </ul> + +</td> + </tr> + +</table> + +</table> +</table> + + +<!-- hhmts start --> +Last modified: Sun Dec 8 20:11:15 Europe/Berlin 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/intro.html b/debian/transcode/transcode-1.1.7/docs/html/intro.html new file mode 100644 index 00000000..856192ed --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/intro.html @@ -0,0 +1,206 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica">Introduction:</font> + </tr> + <tr> + + <td> + + <ul> + + <li> <a href="#about"> <FONT FACE="Lucida,Helvetica"> + Overview</i></font></a> <p> + + <li> <a href="options.html"> <FONT FACE="Lucida,Helvetica"> + Command-line options</font></a> <p> + + <li> <a href="modules.html"> <FONT FACE="Lucida,Helvetica"> + Import/export/filter plug-ins</font></a> <p> + + </ul> + + </td> + </tr> +</table> +</table> + +<a name=about></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica">Overview: + </tr> + <tr> + <td> + + <FONT color=red><i> transcode </i> </font> +is a linux text-console utility for video stream processing, +running on a platform that supports shared libraries and threads. +Decoding and encoding is done by loading modules that are responsible +for feeding transcode with raw video/audio streams (import modules) +and encoding the frames (export modules). It supports elementary video +and audio frame transformations, including de-interlacing +or fast resizing of video frames and loading of external filters. +A number of modules are included to enable import of DVDs on-the-fly, +MPEG elementary (ES) or program streams (VOB), MPEG video, +Digital Video (DV), +YUV4MPEG streams, NuppelVideo file format and raw or compressed (pass-through) video frames +and export modules for writing DivX;-), OpenDivX, DivX 4.xx or +uncompressed AVI files with MPEG, AC3 (pass-through) or PCM audio. +Additional export modules to write single frames (PPM) or +YUV4MPEG streams are available, as well as an interface import module + to the <i>avifile</i> library. +It's modular concept is intended to provide flexibility and easy user +extensibility to include other video/audio codecs or file types. +A set of tools is included to demux (<FONT color=red><i>tcdemux</i></font>), extract (<FONT color=red><i>tcextract</i></font>) and decode + (<FONT color=red><i>tcdecode</i></font>) the sources +into raw video/audio streams for import, probing (<FONT + color=red><i>tcprobe</i></font>) and scanning (<FONT + color=red><i>tcscan</i></font>) your sources and to enable post-processing +of AVI files, fixing AVI file header information (<FONT + color=red><i>avifix</i></font>), merging multiple files (<FONT color=red><i>avimerge</i></font>) or splitting +large AVI files (<FONT color=red><i>avisplit</i></font>) to fit on a CD. +<p><p> + + + <b><i>transcode</i></b> plug-in architecture overview:<p> + <i>transcode</i> loads shared library modules that are responsible for feeding it with raw streams and encoding the frames. + <ul> + <li> The <b>import modules</b> for audio/video decoding are loaded with + <i>dlopen</i> system call and are + responsible for starting the video and audio streams (directly or via the + <i>popen</i> system call) and have a single function interface to the main program. + The import is handled by a thread that buffers the video/audio frames.<p> + <li> The main program <b><i>transcode</i></b> currently performs + a number of video/audio frame manipulations (in + this order) or allows simple pass-through of raw frame data: + <p> + + <font size=+2 color=blue>Video:</font> + <ul> + + <li> cut out arbitrary frame region before processing + + <li> de-interlace video frame + + <li> fast enlarging of video width/height by a + multiple of 8/16/32 rows/columns up to 1024x768 + + <li> fast reduction of video width/height by a multiple of 8/16/32 rows/columns + + <li> high-quality resizing with different filtering + + <li> cut out arbitrary frame region for encoding + + <li> fast rescale (down-sample) video width/height by a power of 2 + + <li> flip video frame upside down + + <li> mirror image of video frame + + <li> swap <i>red</i> and <i>blue</i> bytes or chroma + components in video frame + + <li> transform to b/w video frame + + <li> apply gamma correction + + <li> anti-alias video frame + + <li> DVD subtitle overlay (plug-in) + + </ul> + + <p> + <font size=+2 color=blue>Audio:</font> + <ul> + <li> swap byte order in audio stream + <li> change the volume of the audio stream + <li> re-sample audio stream (plug-in) + <li> down-sample to mono + <li> down-sample to 8-bit unsigned byte stream + <li> sync video with audio frames (V=0|A=N, V=1|A=N+1,...) + </ul> + <p> + + <font size=+2 color=blue>Filter Plug-Ins:</font> + <ul> <li>Additional effects are available via <a href=filter.html>external filter plug-ins</a> loaded with option "-J". + </ul><p> + + + <li> The <b>export modules</b> for audio/video encoding + are loaded via the <i>dlopen</i> system call and the + encoder loop is started for the selected frames. In + most cases audio and video are handled by the same + module. + </ul> + + <p> + <b><i>transcode</i></b> supported formats and codecs overview:<p> + + <table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=center> + <img src="tc.png"> + </td> + </tr> + + <tr><td align=center> + (ES=elementary stream, including + concatenated frames, PES=packetized elementary stream, + including program streams)</tr> + + </table> +<p> + Colored boxes are supported without additional packages. However, most + capabilities are only available in the <i>0.6.0</i> pre-releases. +Unconnected boxes not yet implemented, but <i>0.6.0</i> (final) will + have a symmetrical butterfly structure. + OpenDivX + (obsolete) support included, but much newer and faster DIVX + encoding/decoding requires additional codecs available for linux. + Picture import supported by newer versions of <i>ImageMagick</i> + (0.5.x). Additional optional audio/video import codecs supported by using the + <i>avifile</i> library. Quicktime movie with limited codec + support is available via + the <i>quicktime4linux</i> library. You need <i>libdv</i> + installed to enable Digital Video decoding/encoding. <p> + + + +</tr> + + + + </tr> +</table> +</table> + + + + + + + +<!-- hhmts start --> +Last modified: Fri Nov 29 15:45:16 Europe/Berlin 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/mes0-00000.png b/debian/transcode/transcode-1.1.7/docs/html/mes0-00000.png Binary files differnew file mode 100644 index 00000000..28198224 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/mes0-00000.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/mes4-00000.png b/debian/transcode/transcode-1.1.7/docs/html/mes4-00000.png Binary files differnew file mode 100644 index 00000000..8d00e65c --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/mes4-00000.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/mes5-00000.png b/debian/transcode/transcode-1.1.7/docs/html/mes5-00000.png Binary files differnew file mode 100644 index 00000000..3b0869a3 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/mes5-00000.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/mes6-00000.png b/debian/transcode/transcode-1.1.7/docs/html/mes6-00000.png Binary files differnew file mode 100644 index 00000000..7745fa12 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/mes6-00000.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/mes7-00000.png b/debian/transcode/transcode-1.1.7/docs/html/mes7-00000.png Binary files differnew file mode 100644 index 00000000..77774ebd --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/mes7-00000.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/misc.html b/debian/transcode/transcode-1.1.7/docs/html/misc.html new file mode 100644 index 00000000..ecef4c42 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/misc.html @@ -0,0 +1,512 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica"> <font>Miscellaneous</font> + </tr> + <tr> + + <td> + + <ul> + <li> <a href="#para"> <FONT FACE="Lucida,Helvetica"> + Overview on the + resizing/clipping options</font></a> <br> + </uL> + + <ul> + <li> <a href="#maudio"> <FONT FACE="Lucida,Helvetica"> + AVI-files with multiple audio tracks</font></a><br> + </ul> + + + + <ul> + <li> <a href="#pass"> <FONT FACE="Lucida,Helvetica"> + pass-through modes </font></a> + + <ul> + <li><a href="#pass_1"> <FONT FACE="Lucida,Helvetica"> + replacing audio</font></a> + <li><a href="#pass_2"> <FONT FACE="Lucida,Helvetica"> + creating music clips</font></a> + <li><a href="#pass_3"> <FONT FACE="Lucida,Helvetica"> + audio recompression</font></a> + <li><a href="#pass_4"> <FONT FACE="Lucida,Helvetica"> + fixing truncated AVI files</font></a> + </ul> + <br> + + + <li> <a href="#audio"> <FONT FACE="Lucida,Helvetica"> + audio only conversion</font></a> + <br> + <ul> + <li><a href="#aud_1"> <FONT FACE="Lucida,Helvetica"> + audio track -> MP3</font></a> + <li><a href="#aud_2"> <FONT FACE="Lucida,Helvetica"> + audio track -> PCM</font></a> + <li><a href="#aud_3"> <FONT FACE="Lucida,Helvetica"> + ASF audio -> MP3</font></a> + </ul> + + </td> + </tr> +</table> +</table> + + +<a name=para></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font> + resizing/clipping options +</font> + </tr> + <tr> + <td> + + <br> by Steffen Klupsch <[email protected]> + +<P> +Boundary Conditions (valid for transcode-0.5.0 and later): +<UL> + <LI> maximum image size is 1024x768 + <LI> The video frame operations ordering is fixed: + "-j -I -X -B -Z -Y -r -z -l -k -K -G -C" + (executed from left to right) + <LI> Shrinking the image with '-B' is not possible + if the image width/height is not a multiple of 32. + <LI> Expanding the image with '-X' is not possible + if the image width/height is not a multiple of 32. + <LI> The final frame width/height should be a multiple of 8. + (to avoid encoding problems with some divx codecs) + + <OL> + <LI> Reducing the video height/width by 2,4,8 + Option '-r factor' can be used to shrink the video image by a + constant factor, this factor can be 2,4 or 8. + + <LI> Clipping and changing the aspect ratio + transcode uses 3 steps to produce the input image for the + export modules + <OL> + <LI> Clipping of the input image. + <LI> Changing the aspect ratio of the 1) output. + <LI> Clipping of the 2) output. + + </OL> + </OL> +</UL> +<P> + Used Options: +<OL> + <LI> The first clipping is defined by the option <br> + '-j top[,left[,bottom[,right]]]' <br> + if you don't specify all parameters, they will be assumed to be + symmetric to the others. +<P> + -j 80 is expanded to -j 80,0,80,0 (top,left,bottom,right)<br> + -j 80,8 is expanded to -j 80,8,80,8<br> + -j 80,8,10 is expanded to -j 80,8,10,8<br><br> + <LI> Changing the aspect ration can be done in 3 ways: + <UL> + <LI> (fast) shrinking the image with option '-B n[,m]' + <LI> (fast) expanding the image with option '-X n,[m]' + <LI> (high quality) resizing with option '-Z wxh' + </UL><br> + <LI> The 2nd clipping is defined by the option +<br> + '-Y top[,left[,bottom[,right]]]'<br> + if you don't specify all parameters, they will be assumed to be + symmetric to the others. + +</OL> +<P> +Examples on Usage: + +<OL> + <LI> Input data '16:9' 'widescreen' DVD data, + output data should have 4:3 aspect ratio without black border. + <br> + Analyze the input data, we assume a black border at the top and + bottom of 66 pixel in a 720x576 pixel frame. +<p> + <OL> + <LI> Using the fast resizing option -B, + shrinking the height to reach a correct aspect ratio: + '-j 32,0 -B 4,0 -Y 24,0' + Final image size: 720x336 Pixel + + <LI> Using the fast resizing options -X and -B, + removing 1% at the left&right border, expanding the image width + to PAL resolution, and shrinking the height to reach a + correct aspect ratio:<br> + '-j 32,8 -X 0,2 -B 3,0 -Y 24,0'<br> + Final image size: 768x368 Pixel + + <LI> Using the fast -X resizing, expanding the image width, + but removing 3% of the image at the left and the right border:<br> + '-j 64,24 -X 0,7'<br> + Final image size: 896x448 Pixel + + <LI> Using the slower -Z resizing, expanding the image width to PAL + resolution:<br> + '-j 68,0 -Z 768x360'<br> + Final image size: 768x360 Pixel + + <LI> Using the slower -Z resizing, 800 Pixel image width:<br> + '-j 66,0 -Z 800x368'<br> + Final image size: 800x368 Pixel + + <LI> Using the slower -Z resizing, expanding the image width:<br> + '-j 64,0 -Z 960x448'<br> + Final image size: 960x448 Pixel + + </OL> +<p> + <LI> Input data '16:9' DVD data without black borders, + output data should have 4:3 aspect ratio. +<p> + <OL> + <LI> Using the fast resizing option -B, <br> + shrinking the height to reach correct aspect ratio: + '-B 4,0'<br> + Final image size: 720x448 Pixel + + <LI> Using the fast -X resizing, expanding the image width, + but removing 3% of the image at the left and the right border:<br> + '-j 0,24 -X 0,7'<br> + Final image size: 896x576 Pixel + + <LI> Using the slower -Z resizing, expanding the image width + to PAL resolution:<br> + '-Z 768x472'<br> + Final image size: 768x472 Pixel + + <LI> Using the slower -Z resizing, 800 Pixel image width:<br> + '-Z 800x480'<br> + Final image size: 800x480 Pixel + + <LI> Using the slower -Z resizing, expanding the image width:<br> + '-Z 960x576'<br> + Final image size: 960x576 Pixel + + </OL> +</OL> +<P> + + </table> +</table> + + +<a name=pass></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>pass-through modes</font> + </tr> + <tr> + <td> + This section is devoted to the pass-through modes + available, which maybe useful for some, not so common + situations as outlined below. + + <a name=pass_1><h3>replacing audio</h3></a> + <a name=pass_2><h3>creating video clips</h3></a> + Suppose you have mastered a couple of DV clips, + concatenated to a well defined playtime "clip1.avi" that + accidently + correspond to the length of your favorite music clip "clip2.mp3" + in MP3 format. We want to keep the quality of the video + and simply replace the PCM audio track. This is done by + the following command: + <p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i clip.avi -p clip.mp3</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -P 1 </td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -o new_clip.avi -y raw</td></tr> + + </table> + + <br> + + Note: The MP3 stream must be identified by <i>tcprobe</i>. + If this fails, we need to supply the import module options + "-x dv,mp3" to make sure, the audio is decoded properly. + The "-y raw" export module simply writes the video chunks + as is together with the re-encoded audio. MP3 pass-through, + similar + to AC3 pass-through with options "-A -N 0x2000" is not yet available. + + <a name=pass_3><h3>audio recompression</h3></a> + + The following situation is not uncommon. Suppose your single + AVI-file "movie128.avi" is about 2x700MB+15MB, i.e., too large to fit + on 2 CD's. Fortunately, the audio is MP3 with a bitrate of + 128kbps, which is the default. + We recompress the audio to 96kbps to reduce the filesize + below 2x700MB. Let's also double the volume of the sound, + if possible, or use the recommended value given by <i>tcscan</i>. + + <p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i movie128.avi</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -P 1 -b 96 -s 2.0</td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -o movie96.avi -y raw</td></tr> + + </table> + + <br> + + This is reasonable fast since video is only passed through + and the audio quality is still ok. + After you are done, use avisplit to split the file + into 2 chunks. + <a name=pass_4><h3>fixing truncated AVI files</h3></a> + + The AVI file header is updated (written to disk), whenever video/audio + parameter are set. If transcode or hardware crashes, the truncated file + is in most cases playable for advanced players. + Repairing the AVI-file index is also possible via pass-through option "-P3". +<p> + <table> + <tr> + <td align=left valign=center bgcolor="#ccffcc"> + transcode -i crashed.avi -o new.avi -P3 -u X</td> + </td> + </table> + + <br>Option "-u X" with X>>10 enhances pass-through speed. + + + </table> +</table> + + +<a name=audio></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>audio only conversion</font> + </tr> + <tr> + <td> + + Audio only conversion is also possible with + <i>transcode</i>. + Certainly, there are tons of tools out there, doing the + same job, so I will concentrate on useful examples, mainly + DVD ripping and encoding on the fly, using options "-p" + for input and "-m" for output. + + <a name=aud_1><h3>audio track -> MP3</h3></a> + + Some DVDs have a separate AC3 (Dobly Digital) film soundtrack, which + you might want to convert to MP3. Music DVDs have + tracks with uncompressed audio + which is LPCM format (linear PCM), you want to archive. In this + particular case, you might need to add "-d" for audio byte swapping. + You need to check with tcprobe which audio track is the + right one. + We do it in 1 step for + track 2 and write to the file "track.mp3": + + <p> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -p /dev/dvd/ -T 1,-1 -a 2 </td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -y raw -m track.mp3 </td></tr> + + </table> + <p> + + <a name=aud_2><h3>audio track -> PCM</h3></a> + + If you prefer uncompressed PCM data for further processing, add + "-N 0x1" in the command above: + + <p> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -p /dev/dvd/ -T 1,-1 -a 2</td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -y raw -m track.pcm -N 0x1</td></tr> + + </table> + <p> + + + <a name=aud_3><h3>ASF audio -> MP3</h3></a> + + I had this ASF (advanced stream format) Genesis audio file + lying around and tried the <i>avifile</i> import module. Since + no auto-probing is available for ASF streams in the current + version, you must play around with the sample rate. CD quality + is 44100 Hz samplerate: + + <p> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -p carpet_crawler_1999.asf -x null,af6</td> + </tr> + + <tr><td></td> + <td align=left valign="top" bgcolor="#ccffcc"> + -e 44100 -E 44100 -b 112</td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -y null,raw -m carpet_crawler_1999.mp3</td></tr> + + </table> + <p> + + </table> +</table> + +<a name=maudio></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>AVI-files with multiple audio tracks</font> + </tr> + <tr> + <td> + <a name=xvcd><h3>HowTo:</h3></a> + + Before you start, try to find the best bitrate for video + encoding + with multiple audio tracks by using <i>tcprobe</i> with + option "-b n*128", for example, if you want n MP3 audio + tracks with 128kbps bitrate each.<br> + A first session produces the file movie.avi with a single audio + track "-a 0". Now, we use a similar command to extract a second + audio + track from the source. Suppose, we used the example modules + "vmod,amod" + for video and audio extraction.<p> + + + The second session goes as follows. This session will be much + faster, since no video is de/encoded.<p> + + <Ul> + <li> + (1) transcode the second audio track "-a 1" into an AVI + container file named add-on.avi This looks like: + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode -i (...) -x null,amod -g 0x0 -y raw -a 1 + -o add-on.avi -u 50 </tr> + </table> + <p> + + The resulting file is only a temporary file but enables + proper processing with <i>avimerge</i>. The export + module "-y raw" is fine, since it writes proper (0 bytes) + video frames. + Set video import module to "null". If all goes well, + both files should be identical with respect to the number + of frames. Choose the proper audio track with "-a". Try also to + increase the internal buffers "-u" for speedup.<p> + + <li>(2) merge this track into movie.avi + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + avimerge -i movie.avi -o dualaudiomovie.avi -p add-on.avi + </tr> + </table> + <p> + + <li> (3) Repeat steps (1-2) for even more audio tracks, if you + wish. + For best results, I recommend doing this procedure with a single + AVI movie file. All <i>avi*</i> post-processing tools now support + multiple audio tracks.<p> + --- <br> + Note: <i>transcode</i> supports reading from multiple-audio tracks + but only writes (exports) to single audio/video AVI-files. + </table> +</table> + + + +<!-- hhmts start --> +Last modified: Thu May 16 12:59:16 CEST 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/modules.html b/debian/transcode/transcode-1.1.7/docs/html/modules.html new file mode 100644 index 00000000..9daf4527 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/modules.html @@ -0,0 +1,387 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + +<a name=filter></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>Filter plug-ins:</font> + </tr> + <tr> + + <td> + Here is a <a href="filter.html">list</a> of available <b>filter</b> plug-ins. + + +</table> +</table> + +<a name=modules></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica">Import/export modules:</font> + </tr> + <tr> + <td> +Some modules depend on other binaries/packages (marked red). See module pages for details: +<table width=100%> + <tr> + <td align=left valign="top"> +<ul><li><b>import modules</b>: + +<p> +<font size=+2 color=blue>Raw:</font> + + <ul> + <li> <a href="import_null.html">import_null.so</a><br> + dummy module, reads from <i>/dev/zero</i> + + <li> <a href="import_avi.html">import_avi.so</a> <br>RGB/PCM + from RIFF AVI files. + + <li> <a href="import_raw.html">import_raw.so</a><br> + RGB/PCM from RIFF AVI/WAVE files or raw streams. + + <li> <a href="import_yuv4mpeg.html">import_yuv4mpeg.so</a><br> + YUV from video streams produced by <i>mjpegtools</i> (YUV4MPEG) + and RIFF WAVE pcm audio. + + </ul><p> + <font size=+2 color=blue>Quicktime4linux API:</font> + <ul> + + <li> <a href="sorry.html">import_mov.so</a><br> + Quicktime file format, audio/video codecs supported by + <i>quicktime4linux</i>. + + + </ul><p> + <font size=+2 color=blue>FFmpeg API:</font> + <ul> + + <li> <a href="sorry.html">import_ffmpeg.so</a> <br> + interface to <i>ffmpeg</i> library supported video codecs and + file formats. + </ul> + <p> + <font size=+2 color=blue>MPEG-4:</font> + <ul> + + <li> <a href="sorry.html">import_divx.so</a><br> + decoding support for AVI-files with DivX, OpendivX, DivX + 4.xx/5.xx, XviD video using the DivX codec. + + <li> <a href="sorry.html">import_xvid.so</a><br> + decoding support for AVI-files with DivX, OpendivX, DivX + 4.xx/5.xx, XviD video using the XviD codec. + +</ul><p> +<font size=+2 color=blue>MPEG-1/2, AC3:</font> +<ul> + + + <li> <a href="import_ac3.html">import_ac3.so</a> <br> + AC3 audio from MPEG program streams or raw streams. + + <li> <a href="import_mp3.html">import_mp3.so</a><br> + MPEG audio from program streams or raw streams. + + <li> <a href="import_mpeg2.html">import_mpeg2.so</a><br> + video track from MPEG program streams or raw streams, + extracted and decoded by <i>mpeg2dec</i>. + + <li> <a href="import_vob.html">import_vob.so</a><br> + MPEG/AC3 program streams in VOB files (found on unencrypted/ripped DVDs). + + <li> <a href="import_dvd.html">import_dvd.so</a><br> + on-the-fly DVD transcoding + + </ul><p> + <font size=+2 color=blue>NuppelVideo:</font> + <ul> + + + <li> <a href="sorry.html">import_nuv.so</a> <br> + interface to NuppelVideo file format + +</ul><p> +<font size=+2 color=blue>Digital Video:</font> +<ul> + + <li> <a href="import_dv.html">import_dv.so</a> <br> + Digital Video and PCM audio from RIFF AVI-files or raw streams. + +</ul><p> +<font size=+2 color=blue>Images:</font> +<ul> + + <li> <a href="sorry.html">import_im.so</a><br> + interface to <i>ImageMagick</i> library supported picture codecs and + file formats for making animations. Reads images with a + counter pattern. + + <li> <a href="sorry.html">import_imlist.so</a><br> + interface to <i>ImageMagick</i> library supported picture codecs and + file formats for making animations. Reads images from a list. + +</ul> +<p> +<font size=+2 color=blue>XML:</font> + +<ul> + + <li> <a href="sorry.html">import_xml.so</a><br> + interface to XML files with file listing and frame range + produced by <i>kino</i>. + +</ul> + +<p> + <font size=+2 color=blue>Video4linux:</font> + <ul> + <li> <a href="sorry.html">import_v4l.so</a><br> + interface for grabbing sound/video from a v4l device. + + <li> <a href="sorry.html">import_nvrec.so</a><br> + interface to <i>NVrec</i> video recorder program. + <p> + </ul> + + <p> + <font size=+2 color=blue>MPlayer API:</font> +<ul> + + <li> <a href="sorry.html">import_mplayer.so</a> <br> + interface to <i>Mplayer</i> for decoding unsupported codecs, + exotic file formats or more ore less broken sources. +</ul> + + <p> +<font size=+2 color=blue>Ogg Media:</font> + + <ul> + <li> + <table cellspacing="4" cellpadding="0" border="0" width=100%> + <tr> + <td align=left valign="top" width=30% bgcolor=#e9e9e9> + <a href="import_ogg.php"><font size=+0>import_ogg.so</font></a> + </td> + </tr> + <tr> + <td>decodes Ogg Vorbis audio streams. + </td> + </tr> + </table> + +</ul><p> + +<font size=+2 color=blue>Loss-Less compression:</font> + + <ul> + <li> + <table cellspacing="4" cellpadding="0" border="0" width=100%> + <tr> + <td align=left valign="top" width=30% bgcolor=#e9e9e9> + <a href="import_lzo.php"><font size=+0>import_lzo.so</font></a> + </td> + </tr> + <tr> + <td>imports AVI-files with LZO loss-less compression + for video + </td> + </tr> + </table> + +</ul> + + + + + +</td> +<td align=left valign="top"> +<ul><li><b>export modules</b>: + +<p> +<font size=+2 color=blue>Raw:</font> + + <ul> + <li> <a href="export_null.html">export_null.so</a> <br> + benchmark, frame sink, disable audio for AVI file. + + <li> <a href="export_raw.html">export_raw.so</a><br> + uncompressed or raw (compressed) frames, RGB, PCM. + + <li> <a href="sorry.html">export_wav.so</a> + <br>RIFF WAVE data with PCM audio. + + <li> <a href="sorry.html">export_toolame.so</a><br> + MPEG-1 layer-II audio stream, encoded by <i>toolame</i>. + + <li> <a href="sorry.html">export_yuv4mpeg.so</a><br> + exports to YUV4MPEG stream, sound to file with "-m" option. + + <li> <a href="sorry.html">export_pcm.so</a><br> + exports raw, multi-channel PCM audio to separate files. + + </ul><p> + + <font size=+2 color=blue>Quicktime4linux API:</font> + <ul> + + <li> <a href="sorry.html">export_mov.so</a><br> + Quicktime file format, audio/video codecs supported by + <i>quicktime4linux</i>. + + </ul> + <p> + + <font size=+2 color=blue>FFmpeg API:</font> + <ul> + + all modules have MP3/AC3/PCM audio support. + + <li> <a href="sorry.html">export_ffmpeg.so</a><br> + interface to <i>ffmpeg</i> library supported video codecs. + </ul> + <p> + + <font size=+2 color=blue>MPEG-4:</font> +<ul> + + all modules have MP3/AC3/PCM audio support. + + <li> + <table cellspacing="4" cellpadding="0" border="0" width=100%> + <tr> + <td align=left valign="top" width=30% bgcolor=#e9e9e9> + <a href="export_divx5.php"> <font size=+0>export_divx5.so</font></a> + </td> + </tr> + + <tr> + </tr> + <tr> + <td>DivX version 5 codec. + </td> + </tr> + </table> + + <li> + + <table cellspacing="4" cellpadding="0" border="0" width=100%> + <tr> + <td align=left valign="top" width=30% bgcolor=#e9e9e9> + <a href="export_xvid.php"> <font size=+0>export_xvid4.so</font></a> + </td> + </tr> + <tr> + <td>Open-Source XviD codec. + </td> + </tr> + </table> + +</ul><p> +<font size=+2 color=blue>MPEG-1/2:</font> +<ul> + + <li> <a href="sorry.html">export_mpeg2enc.so</a><br> + MPEG-1/2, (S)VCD, frontend for <i>mpeg2enc</i> from + <i>mjpegtools</i>. + + <li> <a href="sorry.html">export_mp2enc.so</a><br> + MPEG layer-2 audio frontend for <i>mp2enc</i> from + <i>mjpegtools</i>. + +</ul><p> +<font size=+2 color=blue>Digital Video:</font> +<ul> + + <li> <a href="sorry.html">export_dv.so</a><br> + Digital Video, MPEG/AC3/PCM audio with AVI-file format. + + <li> <a href="sorry.html">export_dvraw.so</a> <br> + raw Digital Video with interleaved uncompressed PCM audio. + +</ul> +<p> +<font size=+2 color=blue>Images:</font> +<ul> + <li> <a href="sorry.html">export_ppm.so</a><br> + PPM raw video picture sequence, sound to extra file with "-m" option. + + <li> <a href="sorry.html">export_im.so</a><br> + interface to <i>ImageMagick</i> library supported picture codecs and + file formats for generating picture sequences. + + </ul> + +<p> +<font size=+2 color=blue>Ogg Media:</font> + + <ul> + <li> + <table cellspacing="4" cellpadding="0" border="0" width=100%> + <tr> + <td align=left valign="top" width=30% bgcolor=#e9e9e9> + <a href="export_ogg.php"><font size=+0>export_ogg.so</font></a> + </td> + </tr> + <tr> + <td>exports Ogg Vorbis audio stream to Ogg stream file with "-m + <filename>" option. + </td> + </tr> + </table> + +</ul><p> + +<p> +<font size=+2 color=blue>Loss-Less compression:</font> + + <ul> + <li> + <table cellspacing="4" cellpadding="0" border="0" width=100%> + <tr> + <td align=left valign="top" width=30% bgcolor=#e9e9e9> + <a href="export_lzo.php"><font size=+0>export_lzo.so</font></a> + </td> + </tr> + <tr> + <td>exports to AVI-files with LZO loss-less compression + for video + </td> + </tr> + </table> + +</ul><p> + + + + + + + +</ul> +</tr> +</table> + </tr> +</table> +</table> + + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/mpeg.html b/debian/transcode/transcode-1.1.7/docs/html/mpeg.html new file mode 100644 index 00000000..f6289a33 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/mpeg.html @@ -0,0 +1,664 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica"> <font >VCD/(S)VCD/DVD</font> + </tr> + <tr> + + <td> + + <ul> + <li> <a href="mpeg.html#pmpeg"> <FONT FACE="Lucida,Helvetica"> + + encoding to MPEG (PAL)</font></a><br> + <ul> + <li> <a href="mpeg.html#pmpeg1"> <FONT + FACE="Lucida,Helvetica"> VCD </font></a> + <li> <a href="mpeg.html#pvcd"> <FONT FACE="Lucida,Helvetica"> + (S)VCD</font></a> + <li> <a href="mpeg.html#pdvd"> <FONT FACE="Lucida,Helvetica"> + DVD</font></a> + </ul> + <p> + <li> <a href="mpeg.html#nmpeg"> <FONT FACE="Lucida,Helvetica"> + encoding to MPEG (NTSC)</font></a><br> + + <ul> + <li><a href="mpeg.html#nmpeg1"> <FONT FACE="Lucida,Helvetica"> VCD</font></a> + <li> <a href="mpeg.html#nvcd"> <FONT FACE="Lucida,Helvetica"> + (S)VCD</font></a> + <li> <a href="mpeg.html#ndvd"> <FONT FACE="Lucida,Helvetica"> + DVD</font></a> + + </ul> + </td> + </tr> +</table> +</table> + + +<a name=pmpeg></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>encoding to MPEG (PAL)</font> + </tr> + <tr> + <td> + + +Notes: + <ul> + <li> [...] denote import/processing options. + + <li> if the aspect ratio changes after resizing the video frame, + use "--export_asr code" to notify encoder. Possible aspect + ratio codes are: 1=1:1, 2=4:3, 3=16:9, 4=2.21:1. + + <li> muliplex add-on audio track with "-s filename". <i>tcmplex</i> + supports 1 video and 2 audio tracks. + <li> enable <i>sox</i> re-sampling filter with "-J resample" + (optional) instead of export modules resampling feature. + <li> for encoding with <i>mjpeg-tools</i>, the use of <i>mplex</i> is + recommended. + <li> Use <i>tcmplex</i> option "-D" to adjust a possible AV mismatch. + </ul> + + + <a name=pmpeg1><h3>VCD (352x288)</h3></a> + + Video CD's have a restricted format for audio (MP2, 44100 Hz, + 224 kBits/s, stereo) and video (MPEG-1, 352x288, 1152 kBits/s CBR) parameter. + The preset profiles take care of the VCD2.0 specification. + + <ul> + <li> bbmpeg port to linux: <font color=red><bf>audio + downsampling reported BROKEN! Additionally use "-J resample".</b></font> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg -F v,1 -E 44100 -b 224 -o test</td> + </tr> + </table> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcmplex -o test.mpg -i test.m1v -p test.mpa -m v</td> + </tr> + </table> + + <p> + Replace "-F v,1" by "-F v" if you prefer resizing handled + by transcode. Example: reduce 720x576 to + 352x288 with "-B 18,23,16".<br><br> + +<li> mjpeg-tools interface: + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg2enc,mp2enc -F 1 -Z 352x288 -E 44100 -b 224 -o test</td> + </tr> + </table> + + + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + mplex -f 1 -S 680 -o test.mpg test.m1v test.mpa + </tr> + </table> + + <p> + Replace "-Z 352x288" by "-B" if you prefer the fast resizing mode + by transcode. Example: reduce 720x576 to + 352x288 with "-B 18,23,16".<br><br> + +</ul> + + <a name=pvcd><h3>(S)VCD (480x576)</h3></a> + Super Video CD's have a less restricted format for audio (MP2, 44100 Hz, + 32-384 kBits/s, stereo) and video (MPEG-2, 480x576, up to 2600 +kBits/s VBR) parameter. + The preset profiles take care of the SVCD2.0 specification. + + <ul> + <li> bbmpeg port to linux: + + + You may try to increase th bitrate for higher quality (X)SVCD. + Most consumer DVD/(S)VCD player can cope with that. + + This is done with a profile file <i>xsvcd.prof</i>, which contains the + following entries:<p> + + <code> + #(S)VCD profile for improved quality<br> +fixed_vbv_delay = 1 <br> +vbv_buffer_size = 230<br> +cbr = 1<br> +cbr_bitrate = 4000000.0<br> +quant_value = 2<br> +qscale_type = 0<br> +vbr_mux = 0<br> +video_buf_size = 230<br> +use_comp_bitrate = 1<br> + </code> + <p> + + and will bump up the bitrate to 4000 kbps. The additional + profile parameter are passed with the file name as a 3rd argument to "-F". + +<br> + + +<font color=red><bf>audio + downsampling reported BROKEN! Additionally use "-J resample".</b></font> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg -F s,3,xsvcd.prof -E 44100 -b 128 -o test</td> + </tr> + </table> + + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcmplex -o test.mpg -i test.m2v -p test.mpa -m s</td> + </tr> + </table> + +<br> + + <li> mjpeg-tools interface: + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg2enc,mp2enc -F 4 -Z 480x576 -E 44100 -b 128 -o test</td> + </tr> + </table> + + <p> + Replace "-Z 480x576" by <i>transcode</i>'s fast resizing + option "-B" for speed improvements. Example: reduce 720x576 to + 480x576 with "-B 0,15,16". + <br> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + mplex -f 4 -S 680 -o test.mpg test.m2v test.mpa + </tr> + </table> + + +</ul> + + + +<a name=pdvd><h3>DVD compliant format</h3></a> + +Possible frame parameter combination: 720x576, 704x576, 352x576 and 352x288.<br> +For a video frame size of 352x288, resizing can be delegated to the +export module with "-F d,1", all other values require use of transcode's +resize options. + + +<ul> + <li> bbmpeg port to linux: + + <ul><br> + <li> MP2 audio:<font color=red><bf>audio + downsampling reported BROKEN! Additionally use "-J resample".</b></font> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg -F d -E 44100 -b 224 -o test</td> + </tr> + </table> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcmplex -o test.vob -i test.m2v -p test.mpa -m d</td> + </tr> + </table> + + + + <br> + <li> MP3 audio: <font color=red><bf>fixed in 0.6.0rc2</b></font> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg,raw -F d -m test.mp3</td> + </tr> + </table> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcmplex -o test.vob -i test.m2v -p test.mp3 -m d</td> + </tr> + </table> + + + <br> + <li> AC3 pass-through:<br> + + In most cases, you will need to reduce the bitrate for + encoding. This is done with a profile file <i>dvd.prof</i>, which contains the + following entry:<p> + + <code> + #DVD profile with reduced bitrate <br> + max_bitrate=4000000.0 + </code> + <p> + + and will reduce the bitrate to 4000 kbps. The + profile name is passed as a 3rd argument to "-F". + + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg,raw -F d,,dvd.prof -m test.ac3 -A -0x2000</td> + </tr> + </table> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcmplex -o test.vob -i test.m2v -p test.ac3 -m d</td> + </tr> + </table> + <br> + <li> PCM audio: (not yet supported by <i>tcmplex</i>) + + +</ul> + + + + </ul> + + </table> +</table> + + +<a name=nmpeg></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>encoding to MPEG (NTSC)</font> + </tr> + <tr> + <td> + +<p> + For NTSC material, transcode currently generates film mode, i.e., 23.976 fps + (progressive) for most NTSC DVD sources. + For generating NTSC MPEG video, the final result should be played at + 29.97 fps. Therefore the encoder must set the appropriate + flags to force a decoder/player to generate a 3:2 pulldown + (telecine) on demand. + Transcode offers a long option "--pulldown" to encode to MPEG + video with the appropriate flags set and switching the display rate + from 23.976 to 29.97 fps. + <br> + +<p> + +Notes: + <ul> + <li> [...] denote import/processing options. + + <li> if the aspect ratio changes after resizing the video frame, + use "--export_asr code" to notify encoder. Possible aspect + ratio codes are: 1=1:1, 2=4:3, 3=16:9, 4=2.21:1. + <li> 3:2 pulldown flags must be enabled with long option "--pulldown" + <li> muliplex add-on audio track with "-s filename". <i>tcmplex</i> + supports 1 video and 2 audio tracks. + <li> enable <i>sox</i> re-sampling filter with "-J resample" + (optional) instead of export modules resampling feature. + <li> for encoding with <i>mjpeg-tools</i>, the use of <i>mplex</i> is + recommended. + <li> Use <i>tcmplex</i> option "-D" to adjust a possible AV mismatch. + </ul> + + <a name=nmpeg1><h3>VCD (352x240)</h3></a> + + Video CD's have a restricted format for audio (MP2, 44100 Hz, + 224 kBits/s, stereo) and video (MPEG-1, 352x240, 1152 kBits/s CBR) parameter. + The preset profiles take care of the VCD2.0 specification. + + <ul> + <li> bbmpeg port to linux: <font color=red><bf>audio + downsampling reported BROKEN! Additionally use "-J resample".</b></font> + + <ul> <br> + <li> NTSC film encoded @ 23.976 -> VCD @ 23.976 film mode: + <li> NTSC video encoded @ 29.97 -> VCD @ 29.97 video mode: + <br> + <table> + + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg -F v,4 -E 44100 -b 224 -o test</td> + </tr> + </table> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcmplex -o test.mpg -i test.m1v -p test.mpa -m v</td> + </tr> + </table> + + <br> + </ul> + +<p> +<li> mjpeg-tools interface: + + + <ul> <br> + <li> NTSC video encoded @ 29.97 -> VCD @ 29.97 video mode: + <li> NTSC film encoded @ 23.976 -> VCD @ 23.976 + film mode: + + <br> + <table> + + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg2enc,mp2enc -F 1 + -Z 352x240 -E 44100 -b 224 -o test</td> + </tr> + </table> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + mplex -f 1 -S 680 -o test.mpg test.m1v test.mpa</td> + </tr> + </table> + + + <br> + + </ul> + + <p> + Replace "-Z 352x240" by <i>transcode</i>'s fast resizing + option "-B" for speed improvements. Example: reduce 720x480 to + 352x240 with "-B 15,23,16".<br> + +</ul> +<p> + <a name=nvcd><h3>(S)VCD (480x480)</h3></a> + + Super Video CD's have a less restricted format for audio (MP2, 44100 Hz, + 32-384 kBits/s, stereo) and video (MPEG-2, 480x480, up to 2600 + kBits/s VBR) parameter. + The preset profiles take care of the SVCD2.0 specification. + The default profile bitrate is 2376 kbps. + + <ul> + <li> bbmpeg port to linux:<font color=red><bf>audio + downsampling reported BROKEN! Additionally use "-J resample".</b></font> + <br> + <ul><br> + <li> NTSC film encoded @ 23.976 -> (S)VCD @ 23.976 film mode: + <li> NTSC video encoded @ 29.97 -> (S)VCD @ 29.97 video mode: + <br> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg -F s,2 -E 44100 -b 128 -o test</td> + </tr> + </table> + <br> + + + <li> DVD film encoded @ 23.976 --> (S)VCD @ 29.97 with 3:2 pulldown flags enabled:<br> + + + You may try to increase the bitrate for higher quality (X)VCD. + Most consumer DVD/(S)VCD player can cope with that. + + This is done with a profile file <i>xsvcd.prof</i>, which contains the + following entries:<p> + + <code> + #(S)VCD profile for improved quality<br> +fixed_vbv_delay = 1 <br> +vbv_buffer_size = 230<br> +cbr = 1<br> +cbr_bitrate = 4000000.0<br> +quant_value = 2<br> +qscale_type = 0<br> +vbr_mux = 0<br> +video_buf_size = 230<br> +use_comp_bitrate = 1<br> + </code> + <p> + + and will bump up the bitrate to 4000 kbps. The additional + profile parameter are passed with the file name as a 3rd argument to "-F". + +<br> + <font color=red><bf>audio + downsampling reported BROKEN! Additionally use "-J resample".</b></font> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg -F s,2,xsvcd.prof --pulldown -E 44100 -b 128 -o test</td> + </tr> + </table> + </ul> + + <br> + Multiplexing the files: + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcmplex -o test.mpg -i test.m2v -p test.mpa -m s</td> + </tr> + </table> + +<p> +<li> mjpeg-tools interface: + + <br> + <ul><br> + <li> NTSC film encoded @ 23.976 -> (S)VCD @ 23.976 film mode: + <li> NTSC video encoded @ 29.97 -> (S)VCD @ 29.97 video mode: + <br> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg2enc,mp2enc -F 4 -Z 480x480 + -E 44100 -b 128 -o test</td> + </tr> + </table> + <br> + + You may try to increase the bitrate for higher quality (X)VCD. + Most consumer DVD/(S)VCD player can cope with that. You can + pass more options to "mpeg2enc" as a 2nd argument to "-F". In this + case you must use profile "-F 5". + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg2enc,mp2enc -F 5,"-b 4000" -Z 480x480 -E 44100 -b 128 -o test</td> + </tr> +</table> + + +</ul> + + +<p> +Replace "-Z 480x480" by <i>transcode</i>'s fast resizing +option "-B" for speed improvements. Example: reduce 720x480 to +480x480 with "-B 0,15,16". +<br> +Multiplexing the files: + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + mplex -f 4 -S 680 -o test.mpg test.m2v test.mpa</td> + </tr> + </table> + + <br> or for "-F 5" profile with increased bitrate + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + mplex -f 5 -S 680 -o test.mpg test.m2v test.mpa</td> + </tr> +</table> + +<br> +See the <i>mplex</i> manpage for more options. + + </ul> +<br> + + +<a name=ndvd><h3>DVD compliant format</h3></a> + + Possible frame parameter combination: 720x480, 704x480, 352x480 and 352x240.<br> + For a video frame size of 352x240, resizing can be delegated to the + export module with "-F d,4", but this frame size is currently broken + in the exncoder, all other + values require use of transcode's resize options. The profile default + bitrate is 9800 kbps. + +<ul> + <li> bbmpeg port to linux: + + <ul> <br> + <li> NTSC film encoded @ 23.976 -> DVD @ 23.976 film mode: + <li> NTSC video encoded @ 29.97 -> DVD @ 29.97 video mode: + <br> + + + <ul><br> + <li> MP2 audio:<font color=red><bf>audio + downsampling reported BROKEN! Additionally use "-J resample".</b></font> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg -F d -E 44100 -b 128 -o test</td> + </tr> + </table> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcmplex -o test.vob -i test.m2v -p test.mpa -m d</td> + </tr> + </table> + + + + <br> + <li> MP3 audio:<font color=red><bf>fixed in 0.6.0rc2</b></font> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg,raw -F d -m test.mp3</td> + </tr> + </table> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + tcmplex -o test.vob -i test.m2v -p test.mp3 -m d</td> + </tr> + </table> + +<br> +<li> PCM audio: (not yet supported by <i>tcmplex</i>) + </ul> +<p> + +<li> DVD film encoded @ 23.976 --> DVD @ 29.97 with 3:2 pulldown flags enabled:<br> + + In most cases, you will also wish to reduce the bitrate for + encoding. This is done with a profile file <i>dvd.prof</i>, which contains the + following entry:<p> + + <code> + #DVD profile with reduced bitrate <br> + max_bitrate=4000000.0 + </code> + <p> + + and will reduce the bitrate to 4000 kbps. The + profile name is passed as a 3rd argument to "-F". + + <ul><br> + <li> AC3 pass-through: + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -V -y mpeg,raw -F d,,dvd.prof --pulldown -m test.ac3 -A -0x2000</td> + </tr> + </table> + +</ul> + + + +</ul> + +</table> +</table> + + +<!-- hhmts start --> +Last modified: Tue Jun 18 12:57:25 CEST 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/new.png b/debian/transcode/transcode-1.1.7/docs/html/new.png Binary files differnew file mode 100644 index 00000000..b744cc78 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/new.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/other.html b/debian/transcode/transcode-1.1.7/docs/html/other.html new file mode 100644 index 00000000..462e90bc --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/other.html @@ -0,0 +1,218 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica"> <font>Other supported codecs and file formats</font> + </tr> + <tr> + + <td> + <ul> + <li><a href="#o_mpeg1"> <FONT FACE="Lucida,Helvetica"> + MPEG video</font></a><p> + <ul> + <li><a href="#o_mpeg1"> <FONT FACE="Lucida,Helvetica"> + MPEG-1 </font></a> + <li><a href="#o_es"> <FONT FACE="Lucida,Helvetica"> + MPEG elementary streams (ES)</font></a> + <li><a href="#o_es"> <FONT FACE="Lucida,Helvetica"> + MPEG packetized streams (PES)</font></a><p> + + </ul> + + <li><a href="#o_nuv"> <FONT FACE="Lucida,Helvetica"> + NuppelVideo</font></a><p> + <li><a href="#o_yuv4mpeg"> <FONT FACE="Lucida,Helvetica"> + YUV4MPEG</font></a><p> + <li><a href="#o_mov"> <FONT FACE="Lucida,Helvetica"> + Quicktime4linux</font></a><p> + <li><a href="#o_v4l"> <FONT FACE="Lucida,Helvetica"> + Video4linux</font></a><p> + </ul> + </ul> + </td> + </tr> +</table> +</table> + + +<a name=other></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>other supported file formats </font> + </tr> + <tr> + <td> + + The following file formats are auto-detected and supported. + Some MPEG 1 videos may fail. The basic <i>transcode</i> + session + needs at least the options "-i" for input, "-o" for output + and "-y" with your choice of export module. The following + are example outputs:<p> + + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode</td> + + <td align=left valign="top" bgcolor="#ccffcc"> + -i test.X </td> + </tr> + + <td></td><td align=left valign="top" bgcolor="#ccffcc"> + -o test_divx4mp3.avi -y divx4</td></tr> + + </table> + + <br> + + <a name=o_mpeg1> + <table> + <tr> + <td align=left valign=center bgcolor="#00ffff"> + MPEG 1 video: </td><td> X=mpg</td> + </td> + </table> + </a> + + <p> + <code> + + transcode v0.5.0-20011105 (C) 2001 Thomas Oestreich <br> + [transcode] auto-probing source test.mpg (ok) <br> + [transcode] V: import format | MPEG1 (V=mpeg2|A=mp3) <br> + [transcode] V: import frame | 320 x 240 1.33:1 encoded @ 1:1 <br> + [transcode] V: encoding fps | 24.000 <br> + [transcode] A: import format | 0x55 MPEG layer-3 [48000,16,2] <br> +[transcode] A: export format | 0x55 MPEG layer-3 [48000,16,2] 128 kbps <br> +[transcode] A: bytes per frame | 8000 (8000.000000) <br> +[transcode] A: adjustment | 0@1000 <br> + </code> + + <p> + <ul> + <li> + Y'CrCb colorspace processing also available. + + <li> The import module <i>import_mpeg2.so</i> might read + program streams, that fail with <i>import_vob.so</i> + </ul> + <p> + + <a name=o_es> + <table> + <tr> + <td align=left valign=center bgcolor="#00ffff"> + MPEG elementary streams (ES): </td><td> X=m2v</td> + </td> + </table> + </a> + + <p> + <code> + transcode v0.5.0-20011105 (C) 2001 Thomas Oestreich<br> + [transcode] auto-probing source test.m2v (ok)<br> + [transcode] V: import format | MPEG (V=mpeg2|A=null)<br> + [transcode] V: import frame | 720 x 576 1.25:1 encoded @ 4:3<br> + [transcode] V: encoding fps | 25.000<br> + [transcode] A: import | disabled<br> + [transcode] A: export | disabled<br> + [transcode] A: bytes per frame | 7680 (7680.000000)<br> + [transcode] A: adjustment | 0@1000<br> + </code> + + <p> + <ul> + <li> + Y'CrCb colorspace processing also available. + </ul> + <p> + + <a name=o_nuv> + <table> + <tr> + <td align=left valign=center bgcolor="#00ffff"> + NuppelVideo: </td><td> X=nuv</td> + </td> + </table> + </a> + + + <p> + + <code> +transcode v0.5.0-20011105 (C) 2001 Thomas Oestreich<br> +[transcode] auto-probing source test.nuv (ok)<br> +[transcode] V: import format | RTjpeg NuppelVideo (V=nuv|A=nuv)<br> +[transcode] V: import frame | 352 x 288 1.22:1 <br> +[transcode] V: encoding fps | 25.000<br> +[transcode] V: Y'CbCr | YV12/I420<br> +[transcode] A: import format | 0x1 PCM [41000,16,2]<br> +[transcode] A: export format | 0x55 MPEG layer-3 [41000,16,2] 128 kbps<br> +[transcode] A: bytes per frame | 6560 (6560.000000)<br> +[transcode] A: adjustment | 0@1000<br> + + </code> + <p> + + <ul><li> Only Y'CrCb colorspace processing available. + </ul> + <p> + +<a name=o_yuv4mpeg> + <table> + <tr> + <td align=left valign=center bgcolor="#00ffff"> + YUV4MPEG: </td><td> X=yuv4mpeg</td> + </td> + </table> + </a> + +<p> +<code> + +transcode v0.5.0-20011105 (C) 2001 Thomas Oestreich <br> +[transcode] auto-probing source test.yuv4mpeg (ok)<br> +[transcode] V: import format | YV12/I420 YUV4MPEG (V=yuv4mpeg|A=null)<br> +[transcode] V: import frame | 720 x 576 1.25:1 <br> +[transcode] V: encoding fps | 25.000<br> +[transcode] V: Y'CbCr | YV12/I420<br> +[transcode] A: import | disabled<br> +[transcode] A: export | disabled<br> +[transcode] A: bytes per frame | 7680 (7680.000000)<br> +[transcode] A: adjustment | 0@1000<br> + </code> + + <p> + <ul> <li>If you have the corresponding audio track in PCM WAV format, add + "-p sound.wav" to the command line. + </ul><p> + </table> +</table> + + +<!-- hhmts start --> +Last modified: Thu May 16 12:59:51 CEST 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/post.html b/debian/transcode/transcode-1.1.7/docs/html/post.html new file mode 100644 index 00000000..993470e9 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/post.html @@ -0,0 +1,128 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica"> <font>Post-processing</font> + </tr> + <tr> + + <td> + + After hours of encoding time it's time to check if + the result is worth to be burnt on CD. <i>transcode</i> + comes with a couple of helper tools that allow for limited + editing of AVI-files. + + <ul> + + <li> <a href="#avisplit"> <FONT FACE="Lucida,Helvetica">avisplit</font></a><br> + Split an AVI-file into chunks.<p> + + <li> <a href="#avimerge"> <FONT FACE="Lucida,Helvetica">avimerge</font></a><br> + Merge AVI-files into a single AVI-file or add audio + tracks.<p> + + <li> <a href="#avisync"> <FONT FACE="Lucida,Helvetica">avisync</font></a><br> + Limited audio/video synchronization adjustments for + AVI-files.<p> + + <li> <a href="#avifix"> <FONT FACE="Lucida,Helvetica">avifix</font></a><br> + Manipulate header information in AVI-files.<p> + + </ul> + + + + </td> + </tr> +</table> +</table> + + +<a name=avisplit></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>avisplit</font> + </tr> + <tr> + <td> + + +</table> +</table> + + +<a name=avimerge></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>avimerge</font> + </tr> + <tr> + <td> + +</table> +</table> + + + +<a name=avisync></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>avisync</font> + </tr> + <tr> + <td> + +</table> +</table> + + + +<a name=avifix></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>avifix</font> + </tr> + <tr> + <td> + +</table> +</table> + + + +<!-- hhmts start --> +Last modified: Thu May 16 12:55:47 CEST 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/pre.html b/debian/transcode/transcode-1.1.7/docs/html/pre.html new file mode 100644 index 00000000..873b22b2 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/pre.html @@ -0,0 +1,89 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica"> <font>Pre-Processing:</font> + </tr> + <tr> + + <td> + + Before you start wasting hours of encoding time please take + a break to examine your source you intend to + transcode into another video/audio format. <i>transcode</i> + comes with two helper tools that list some options when + invoked without arguments. + + + <ul> + + <li> <a href="#tcprobe"> <FONT FACE="Lucida,Helvetica"> tcprobe</font></a><br> + Display summary information on file type, video format, audio + tracks and more.<p> + + <li> <a href="#tcscan"> <FONT FACE="Lucida,Helvetica"> tcscan</font></a><br> + Scan the source and gather some global statistics. <p> + + </ul> + + + + </td> + </tr> +</table> +</table> + + +<a name=tcprobe></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>tcprobe</font> + </tr> + <tr> + <td> + + +</table> +</table> + + +<a name=tcscan></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>tcscan</font> + </tr> + <tr> + <td> + +</table> +</table> + + + +<!-- hhmts start --> +Last modified: Thu May 16 12:49:44 CEST 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/smart.html b/debian/transcode/transcode-1.1.7/docs/html/smart.html new file mode 100644 index 00000000..6516de9f --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/smart.html @@ -0,0 +1,278 @@ +<!-- saved from url=(0022)http://internet.e-mail --> +<html> +<head> +<title>Smart Deinterlacing Filter</title> +</head> +<body><font face=verdana> +<center><h2>Smart Deinterlacing Filter<br><small>(Version 2.6)</small></h2></center> +<small>[Place this HTML file in the VirtualDub plugins directory to +make it available via the Help button on the filter configuration +dialog box. The computer must have an HTML browser, such as Internet +Explorer or Netscape, +available in its search path.]</small> +<p> +This filter provides a smart, motion-based deinterlacing capability. In static +picture areas, interlacing artifacts do not appear, so data from both fields is +used to provide full detail. In moving areas, deinterlacing is performed. Also, +some clips derived from telecined material can appear to be interlaced when in fact +they only require field shift and/or swaps to recover progressive (noninterlaced) +frames. The filter provides advanced processing options to deal with these clips. +<p> +The following options are available: +<p> +<h3>Motion Processing</h3> + +<b><i>Frame-only differencing</i></b>: When this option is checked (default), only inter-frame +comparisons are made to detect motion. If a pixel differs from the corresponding +pixel in the previous frame, the pixel is considered to be moving. +<p> +<b><i>Field-only differencing</i></b>: When this option is checked, only inter-field +comparisons are made to detect motion. If a pixel differs from the corresponding +pixels in the previous and following fields (the lines above and below the current +line), the pixel is considered to be moving. +<p> +<b><i>Frame-and-field differencing</i></b>: When this option is checked, both inter-frame and +inter-field comparisons are made to detect motion. If a pixel differs from the +corresponding pixel in both the previous field and the previous frame, the pixel +is considered to be moving. +<p> +The correct choice for differencing depends on the input video; each mode has problems +with some kinds of clips. Field-only differencing alone may tend to overestimate motion. +Frame-only and frame-and-field differencing may tend to underestimate it. +Also to be considered is execution time; frame-only will be the +fastest, followed by field-only, followed by frame-and-field. +<p> +In my experience, good results with a wide range of clips are obtained with frame-only +differencing at a threshold of 15, and so these are +the filter defaults. Motion map denoising is helpful with field-only differencing +as it reduces the amount of picture detail that is erroneously detected as motion. +<p> +<b><i>Compare color channels instead of luma</i></b>: When comparing pixels, if this box is unchecked +(default), the lumanance values are compared. When this box is checked, the individual +color channels (red, green, and blue) are compared. Luma comparison is good for general +video and especially where static alpha-blended logos appear (because video noise can +cause subtle color changes that would be detected by color channel compares). Color +channel comparisons are good for cartoons and other clips with large solid color areas. +<p> +<b><i>Show motion areas only</i></b>: When selected, only the moving areas of the image +are displayed; static areas are black. This option can be used to assess the +suitability of the choice of option settings and threshold. +<p> +<b><i>Blend instead of interpolate in motion areas</i></b>: If this checkbox is not selected (default), +then, in motion areas, the filter will discard one field's data and recreate it +by interpolating new lines from the retained field's lines. In static areas, both +field's data is used. If this checkbox is checked, then, in motion areas, instead +of interpolating, the filter blends each line with the lines above and below. This +has the effect of blending the fields, which tends to blur out the interlacing +artifacts. The choice of interpolation versus blending depends on the nature of +the input video and your own esthetic preferences. The interpolate mode avoids +the halos you can get with the blend mode, but it introduces some small amount +of stairstepping, and may tend to emphasize any video noise that is present. Try +both ways and see which you prefer for a given video clip. +<p> +<b><i>Use cubic for interpolation</i></b>: When doing line interpolation (not blending), if +this option is not selected, a linear interpolation using two lines is used. If this option is +selected, a cubic interpolation using 4 lines is used. Cubic interpolation is better but +slower. +<p> +<b><i>Motion map denoising</i></b>: A dilemma for users of the filter is that to get the best deinterlacing, +we like a low threshold, such as 10-15. A low threshold ensures that residual interlacing +artifacts don't sneak through. But if we set the threshold too low, video noise gets +detected as motion. This causes two undesirable results. First, the motion noise causes +a random sprinkling of deinterlaced areas in what should be static areas. This often +manifests as a kind of sparkling, which is objectionable. Second, any extra false +motion that is detected reduces the picture area that is passed through from both fields, +reducing the perceived resolution of the overall picture. So, what we want is a low threshold +but without the effects of video noise. When this checkbox is checked, extra +filtering is added in the motion detection pipeline (not in the main video pipeline, so the +ouput video is not compromised) that does a good job of suppressing false motion noise. +The downside is that the filter runs slower. Use the "Show motion areas only" option to +tweak the threshold fairly low without introducing false motion noise. This +option is especially helpful with field-only differencing. +<p> +<b><i>Motion Threshold</i></b>: This value determines the difference between a pixel and its corresponding +value in the previous field or frame that must be exceeded for the pixel to be considered +moving. A threshold that is too high will allow interlacing artifacts to slip through. A +threshold that is too low will cause too much of the image to be treated as moving, +reducing the perceived resolution. A too-low threshold will also tend to emphasize noise. +Without motion map denoising (see above), a threshold of 15-25 is good. +With denoising, 10-20 is good. You can view the effect of threshold on motion detection +by selecting the "Show motion areas only" checkbox. +<p> +<b><i>Scene Change Threshold</i></b>: Sometimes when a scene change occurs between the fields of +a frame, the result is not satisfactory. This option permits you to set a threshold of change such +that if the threshold is exceeded, the entire frame will be treated as moving, i.e., the +entire frame will be interpolated or blended. The value to be specified is the percentage of +moving area detected; for example, with the default value of 30, if 30 percent or more of +the frame is detected to be moving, the entire frame will be treated as moving. Note that +the percentage calculation is made prior to motion-map denoising (if enabled). + +<h3>Advanced Processing</h3> + +Advanced Processing is most often used for "deinterlacing" captured PAL video originally +made from films. If you have movies that seem to be interlaced, it is worth trying +the advanced processing first, because it may allow you to recover the original progressive +frames without quality loss. Because the processing is sufficient to recover the original +progressive frames, full motion processing is usually disabled when Advanced Processing is +enabled. But some capture cards do weird things when they capture, and if you are +unlucky enough to have such a card, you may need to enable one or more of the Advanced +Processing options and perform Motion Processing. Hopefully, the analysis below will help +you to determine if you are so affected. +<p> +Before proceeding into the analysis, please note that, due to +the way that this filter buffers frames internally, it may appear to not work correctly when +scrubbing the time line or when single stepping backward. But single stepping forward will +always work and, of course, saved processed video will always be correct. It is always advisable +to hit the rewind button before starting processing. + +<h4>Technical Explanation</h4> + +I give the technical explanation first, then I explain what the options do. The former is +necessary to understand the latter. +<p> +First, it is necessary to understand how capture cards might vary. Let us assume that the +source material is simply a stream of bottom and top fields, as follows: +<p> +b1t1b2t2b3t3b4t4... +<p> +The symbol 'b' indicates a bottom field and 't' indicates a top field. +The number indicates the frame number of the original progressive frame. Thus, fields +b1 and t1 are both from frame 1 and contain information from the same temporal moment. +<p> +The capture card will capture this stream in memory, varying in two ways. First, it might +start capturing on a bottom field or a top field. Second, it might place either the bottom field +or the top field first in memory. This leads to 4 ways in which the stream may be captured, +as follows: +<p> +1) b1t1-b2t2-b3t3-b4t4...<br> +2) t1b1-t2b2-t3b3-t4b4...<br> +3) t1b2-t2b3-t3b4-t4b5...<br> +4) b2t1-b3t2-b4t3-b5t4... +<p> +where the '-' character indicates a frame boundary. A given capture card will be characterised +by which of these capture patterns it uses. Note that if capture pattern 1 is used, no filtering +is needed to re-create the original progressive frames. +<p> +It might seem that all we need to do now is to define the operations that the filter must +perform to change each of the above capture patterns to the desired deinterlaced end result +b1t1-b2t2-b3t3-b4t4. That would only tell half the story. The problem is that there is an +alternative form for the input stream! Consider these two ways in which the original material +may be telecined: +<p> +1) b1t1b2t2b3t3b4t4... (as before)<br> +2) b1t2b2t3b3t4b4t5... ('perverse' telecining) +<p> +Note that both will appear fine when displayed on an interlaced display, but a capture of +telecine type 2 with capture pattern 1 will no longer give deinterlaced output +on a progressive display without filtering! This means that we must now consider 8 patterns, +i.e., 4 capture patterns times 2 telecining types. For each type, we will have a specific operation +that will need to be done to re-create the original progressive frames. We see below that by +combining 3 building blocks we can cover all the possibilities. The building blocks are applied +in order and each one is optional: +<p> +swap fields on input --> shift field phase by one --> swap fields on output +<p> +A phase shift by one means that a stream b1t1-b2t2-b3t3... becomes xxb1-t1b2-t2b3-t3b4... +<p> +Following are all 8 possibilities together with the processing required for each: +<p> +<b><i>Case 1</i></b>: Telecine 1, capture 1 gives after capture: +<p> +b1t1-b2t2-b3t3... +<p> +Required action: none. +<p> +<b><i>Case 2</i></b>: Telecine 1, capture 2, gives after capture: +<p> +t1b1-t2b2-t3b3... +<p> +Required action: swap on input. +<p> +<b><i>Case 3</i></b>: Telecine 1, capture 3, gives after capture: +<p> +t1b2-t2b3-t3b4... +<p> +Required action: phase shift. +<p> +<b><i>Case 4</i></b>: Telecine 1, capture 4, gives after capture: +<p> +b2t1-b3t2-b4t3... +<p> +Required action: swap on input, followed by phase shift. +<p> +<b><i>Case 5</i></b>: Telecine 2, capture 1, gives after capture: +<p> +b1t2-b2t3-b3t4... +<p> +Required action: phase shift, followed by swap on output. +<p> +<b><i>Case 6</i></b>: Telecine 2, capture 2, gives after capture: +<p> +t2b1-t3b2-t4b3... +<p> +Required action: swap on input, followed by phase shift, followed by swap on output. +<p> +<b><i>Case 7</i></b>: Telecine 2, capture 3, gives after capture: +<p> +t2b2-t3b3-t4b4... +<p> +Required action: swap on input. +<p> +<b><i>Case 8</i></b>: Telecine 2, capture 4, gives after capture: +<p> +b2t2-b3t3-b4t4... +<p> +Required action: none. +<p> +Unfortunately, it is not a trivial matter to determine which correction to apply. +If one is sure that the material is telecined from progressive material, one can try +all possibilities. When the correct one is found, one then knows for the future what the +capture pattern must be for the capture card used. Thereafter, only two corrections +need be tried to allow for the two possible telecine patterns. I wish things were simpler, +but, alas, it is not so. +<p> +Note also that the telecining method can change in mid-clip. This filter does not adapt to +such changes. A different filter, Telecide, is available that can adapt to such changes +and output a continuous stream of progressive frames. +<p> +<h4>Advanced Processing Settings</h4> + +The advanced processing settings allow the possible 8 corrections to be applied. Simply check +a given building block if you want it enabled. +<p> +<b><i>Field swap before phase shift</i></b>: Swaps the fields of the frames before an optional phase shift. +<p> +<b><i>Phase shift</i></b>: Shifts the field phase by one, i.e., b1t1-b2t2-b3t3... becomes +xxb1-t1b2-t2b3-t3b4... +<p> +<b><i>Field swap after phase shift</i></b>: Swaps the fields of the frames after an optional phase shift. +<p> +<b><i>Disable motion processing</i></b>: When checked the filter will perform only the Advanced Processing and +will not follow it with normal motion processing. This is useful for getting only a shift and/or +swap when that is sufficient for processing telecined material. When this is unchecked the +Advanced Processing will be performed first and then full motion processing will be performed. + +<h3>Note on 3:2 Pulldown, Etc.</h3> + +Some video streams are created from progressive video by a process called pulldown. +This results in a mixture of progressive and interlaced frames, from which it is theoretically +possible to recreate the original progressive frames without doing motion-adaptive deinterlacing. +It is technically very challenging to write a filter that will recreate the original +frames for all types of pulldown and in the presence of video edits, etc. I have created +a filter that performs this function reasonably well (Telecide) and you may find that +it meets all your needs. As an alternative, motion-adaptive deinterlacing will function quite +acceptably for the majority of these video streams. Finally, some people use Telecide followed +by Smart Deinterlacer in field-only mode to catch any interlaced frames that slip through +Telecide. +<p> +For additional information, version updates, and other filters, please go to the following web site: +<p> +Filters for VirtualDub<br> +<a href=http://sauron.mordor.net/dgraft/index.html> +http://sauron.mordor.net/dgraft/index.html</a> +<p> +Donald Graft<br> +August 6, 2001<br> +(C) Copyright 1999-2001, All Rights Reserved +</body> +</html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/sorry.html b/debian/transcode/transcode-1.1.7/docs/html/sorry.html new file mode 100644 index 00000000..f3428a88 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/sorry.html @@ -0,0 +1,38 @@ +<html> <head> +<title></title> +</head> + +<body> + + +<BODY bgcolor=lavender +TEXT="blue" LINK="red" ALINK=red3 VLINK=blue> + +<FONT COLOR="blue" SIZE=7> + +<h1> <center> This page is not yet finished + +</h1> +</FONT> + +<hr> + + +<center> +<h2> + <img src=/~ostreich/images/biglook.gif align=botton> +<FONT COLOR="red" SIZE=7><Strong> + Sorry! +</STRONG></FONT> +</center> +</h2> +<hr> + +<!--<A HREF=/~ostreich/welcome.html> Return to homepage </A> --> + +<address>maintained by <A +HREF="mailto:[email protected]">ThOe</a> </address> +<!-- hhmts start --> +Last modified: Tue Jul 3 16:18:09 CEST 2001 +<!-- hhmts end --> +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/sub0-00000.png b/debian/transcode/transcode-1.1.7/docs/html/sub0-00000.png Binary files differnew file mode 100644 index 00000000..b8f68b44 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/sub0-00000.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/sub1-00000.png b/debian/transcode/transcode-1.1.7/docs/html/sub1-00000.png Binary files differnew file mode 100644 index 00000000..e27ec852 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/sub1-00000.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/sub2-00000.png b/debian/transcode/transcode-1.1.7/docs/html/sub2-00000.png Binary files differnew file mode 100644 index 00000000..c1d7375b --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/sub2-00000.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/sub3-00000.png b/debian/transcode/transcode-1.1.7/docs/html/sub3-00000.png Binary files differnew file mode 100644 index 00000000..165f884a --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/sub3-00000.png diff --git a/debian/transcode/transcode-1.1.7/docs/html/subtitles.html b/debian/transcode/transcode-1.1.7/docs/html/subtitles.html new file mode 100644 index 00000000..3510f937 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/subtitles.html @@ -0,0 +1,332 @@ +<html> +<head> +<title> Linux Video Stream Processing Tool - Examples</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="keywords" content="DVD, digital video, DV, encoder, divx, +DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3, +program stream, video, audio, transcode, decoder, stream, YV12"> +</head> + +<body bgcolor=#CDB5CD> + + +<a name=top></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> <FONT + FACE="Lucida,Helvetica"> <font>Subtitles: + </font> + </tr> + <tr> + + <td> + + This chapter gives a short introduction on handling and + processing subtitles with transcode and related programs. + + <ul> + <li> <a href="#extsub"> <FONT FACE="Lucida,Helvetica"> + DVD subtitle overlay mode with <i> -J extsub</i></font></a> <p> + <li> <a href="#subrip"><FONT FACE="Lucida,Helvetica"> + generating subtitle files with <i>subrip</i></font></a><p> + <li> <a href="#subtitler"><FONT FACE="Lucida,Helvetica"> + adding custom subtitles with <i> -J subtitler</i></font></a><p> + + </ul> + </td> + </tr> +</table> +</table> + + + +<a name=extsub></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font> DVD subtitle overlay mode </font> + </tr> + <tr> + <td> + + transcode provides a filter plugin <i> filter_extsub.so</i> for elementary DVD + subtitle rendering in connection with <i>-x vob</i>. Use it with<p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + transcode [...] -J extsub=<options></td> + </tr> + </table><p> + + The option string looks as follows (all options default to 0): <p> + + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + s:h:t:f:w:a:b:p:q + </tr> + </table><p> + + <ul> + + <li> s subtitle track id (0-31)<br> + + Use <i>tcprobe -H N</i> with N>1 to find out + if subtitle any packs are available in the program stream.<p> + + + <li> h offset of subtitle with respect to bottom + of frame in rows.<br> + + Subtitles are placed at the bottom of the + frame. Try this option to shift them up or down.<p> + + <li> t global display start time correction + in msec.<br> + If you feel, subtitles are displayed not timely, + adjust it with this option. This will affect all subtitles.<p> + + + <li> f fast rendering, i.e., no anti-aliasing (0=off,1=on).<br> + Anti-aliasing of the font is performed by + default. Switch it of (1) if your font is tiny + and messed up by this feature.<p> + + + <li> w render on post-processing (0=off, + 1=on).<br> + Setting this option to 1 will render the + subtitle on post-processing instead of pre-processing. + This may improve subtitle quality but makes no + sense after extensive resizing of the frame.<p> + + <li> a graylevel value a (0-255). + <li> b graylevel value b (0-255).<br> + Make another subtitle color visible with full + intensity equal to 255. May lead to fatter fonts.<p> + + <li> p assign subtitle color p [0-3] to + graylevel value a. + <li> q assign subtitle color q [0-3] to graylevel value b.<br> + Shuffle the color assignment by choosing another + subtitle color between 0 and 3. Useful for black fonts on white background.<p> + + </ul> + <p> + + Example (1) changing color assignment: + + <ul> + + <li> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + -J extsub + </tr> + </table> + + this one looks not as expected without any further options. + + <p> + + <img align="top" src="mes0-00000.png"> <p> + + + + <li> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + -J extsub=0:0:0:0:0:0:0:1:2 + </tr> + </table> + + shuffle the font color assignment + using 1:2 looks like this, but has an ugly 3D effect. + + <p> + + <img align="top" src="mes4-00000.png"> <p> + + <li> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + -J extsub=0:0:0:0:0:0:0:1:3 + </tr> + </table> + + shuffle the color assignment using 1:3 looks better, + but shows white shadows that make the font fatter but blurry + + <p> + + <img align="top" src="mes5-00000.png"> <p> + + + <li> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + -J extsub=0:0:0:0:0:0:0:2:3 + </tr> + </table> + + shuffle the color assignment using 2:3 seems to be perfect. + Nice and smooth looking letters. + <p> + + <img align="top" src="mes6-00000.png"> <p> + + + <li> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + -J extsub=0:0:0:1:0:0:0:2:3 + </tr> + </table> + + for comparison, we switch off anti-aliasing, see the difference? + + <p> + + <img align="top" src="mes7-00000.png"> <p> + + + </ul> + + Example (2) adding another white color: + + <ul> + + <li> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + -J extsub + </tr> + </table> + + this one looks already perfect without any options. + + <p> + + <img align="top" src="sub0-00000.png"> <p> + + + <li> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + -J extsub=0:0:0:1 + </tr> + </table> + + same as above with-out ant-aliasing. + + <p> + + <img align="top" src="sub1-00000.png"> <p> + + + <li> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + -J extsub=0:0:0:0:0:0:255 + </tr> + </table> + + We make switch another color to full intensity (white) to + make the subtitle appear fatter, maybe too much. + + <p> + + <img align="top" src="sub2-00000.png"> <p> + + + <li> + <table> + <tr> + <td align=left valign="top" bgcolor="#ccffcc"> + -J extsub=0:0:0:1:0:0:255 + </tr> + </table> + + The above fat one without anti-aliasing. + + <p> + + <img align="top" src="sub3-00000.png"> <p> + + + + + + </ul> + + + </table> +</table> + + +<a name=subrip></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font>generating subtitle files</font> + </tr> + <tr> + <td> + + + Please find some documentation on Arne Driescher's + <i>subrip</i> program in the <code>contrib/subrip/</code> directory + or visit the <a + href=http://subtitleripper.sourceforge.net/>project page</a> + for more information. +</table> +</table> + + + +<a name=subtitler></a> +<table cellspacing="10" cellpadding="0" border="0" width="100%"> + <tr> + <td align=left valign="top" width=30% bgcolor="#a0a0a0"> + <table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%> + <td align="left" bgcolor="#e9e9e9"> + + <font> generating custom subtitles</font> + </tr> + <tr> + <td> + + + Please find some documentation on Jan Panteltje's + <i>subtitler</i> plugin in the <code>filter/subtitler/</code> directory + or visit the <a + href=http://www.home.zonnet.nl/panteltje/subtitles/> + project page</a> + for more information. + +</table> +</table> + + +<!-- hhmts start --> +Last modified: Thu May 16 12:52:34 CEST 2002 +<!-- hhmts end --> + +</body> </html> diff --git a/debian/transcode/transcode-1.1.7/docs/html/table.php b/debian/transcode/transcode-1.1.7/docs/html/table.php new file mode 100644 index 00000000..9f431e0f --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/table.php @@ -0,0 +1,131 @@ +<body bgcolor=#CDB5CD> + +<?php + +$MOD = "module name:"; +$DES = "description:"; +$AUT = "author(s):"; +$PAC = "required packages:"; +$AFORM = "audio format:"; +$VFORM = "video format:"; +$FILE = "file type:"; +$COM = "comments:"; +$VER = "included since:"; + + +echo "<table cellspacing=10 cellpadding=0 border=0 width=100%>"; + +echo "<tr>"; +echo "<td align=left valign=top width=30% bgcolor=#a0a0a0>"; + +echo "<table border=0 cellpadding=10 cellspacing=3 font size=+2 bgcolor=#ffffff width=100%>"; + +echo "<tr>"; +echo "<td align=left bgcolor=#e9e9e9 width=30%>"; +echo "<FONT FACE=Helvetica font size=+2> $MOD"; +echo "</td>"; +echo "<td align=left bgcolor=#e9e9e9 width=70%>"; +echo "<strong>"; +echo "<FONT FACE=Helvetica font size=+2> $mod</strong>"; +echo "</td>"; +echo "</tr>"; + +echo "<tr>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $DES"; +echo "</td>"; +echo "<td align=left>"; +echo "<FONT FACE=Helvetica font size=+2> $des"; +echo "</td>"; +echo "</tr>"; + + +echo "<tr>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $AUT"; +echo "</td>"; +echo "<td align=left>"; +echo "<FONT FACE=Helvetica font size=+2> $aut"; +echo "</td>"; +echo "</tr>"; + +echo "<tr>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $VER"; +echo "</td>"; +echo "<td align=left>"; +echo "<FONT FACE=Helvetica font size=+2> $ver"; +echo "</td>"; +echo "</tr>"; + + +echo "<tr>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $PAC"; +echo "</td>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $pac"; +echo "</td>"; +echo "</tr>"; + + + +echo "<tr>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $VFORM"; +echo "</td>"; +echo "<td align=leftvalign=top >"; +echo "<FONT FACE=Helvetica font size=+2> $format[0]"; +echo "</td>"; +echo "</tr>"; + +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $AFORM"; +echo "</td>"; +echo "<td align=leftvalign=top >"; +echo "<FONT FACE=Helvetica font size=+2> $format[1]"; +echo "</td>"; + +echo "</tr>"; + + + +echo "<tr>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $FILE"; +echo "</td>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $file"; +echo "</td>"; +echo "</tr>"; + +echo "<tr>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2> $COM"; +echo "</td>"; +echo "<td align=left valign=top>"; +echo "<FONT FACE=Helvetica font size=+2>"; +echo "<ul>"; + +$i=0; + +while ($i<count($c)) { + echo "<li>"; + echo "$c[$i]"; + echo "</li>"; + ++$i; +} + +echo "</ul>"; +echo "</td>"; +echo "</tr>"; + + + + +echo "</table>"; +echo "</table>"; +?> + + + diff --git a/debian/transcode/transcode-1.1.7/docs/html/tc.png b/debian/transcode/transcode-1.1.7/docs/html/tc.png Binary files differnew file mode 100644 index 00000000..0e095f85 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/html/tc.png diff --git a/debian/transcode/transcode-1.1.7/docs/import-mods.txt b/debian/transcode/transcode-1.1.7/docs/import-mods.txt new file mode 100644 index 00000000..dc2424b7 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/import-mods.txt @@ -0,0 +1,207 @@ +M=Nodule +D=Description +C=compile time dependend +R=runtime dependend +I=Info +S=Status +P=processing modes + +M: import_ac3.c +D: (audio) AC3 +C: none +R: none +S: + +I: decodes AC3 audio from MPEG program streams or raw streams. +P: audio - PCM AC3, video - none + +M: import_avi.c +D: (video) * | (audio) * +C: none +R: none +S: + +I: RGB/PCM from RIFF AVI files. +P: audio - RAW (pass-through) PCM, video - RAW (pass-through) RGB YUV YUV420 + +M: import_bktr.c +D: (video) bktr +C: none +R: none +S: + +I: grabs video frames from bktr(4) devices on BSD systems +P: audio - none, video - RGB YUV YUV420 + +M: import_dv.c +D: (video) DV | (audio) PCM +C: none +R: none +S: + +I: Digital Video and PCM audio from RIFF AVI-files or raw streams. +P: audio - PCM, video - RAW (pass-through) RGB YUV DV YUV420 + +M: import_dvd.c +D: (video) DVD | (audio) MPEG/AC3/PCM +C: libdvdread +R: none +S: + +I: on-the-fly DVD transcoding. +P: audio - PCM AC3, video - RGB YUV + +M: import_ffmpeg.c +D: (video) FFmpeg: MSMPEG/MPEG/MJPEG +C: none +R: none +S: + +I: interface to ffmpeg library supported video codecs and file formats +P: audio - none, video - RAW (pass-through) RGB YUV + +M: import_im.c +D: (video) RGB +C: ImageMagick +R: ImageMagick +S: o +I: interface to ImageMagick library supported picture codecs and file formats for making animations. Reads images with a counter pattern. +P: audio - none, video - RAW (pass-through) RGB + +M: import_imlist.c +D: (video) RGB +C: ImageMagick +R: ImageMagick +S: o +I: interface to ImageMagick library supported picture codecs and file formats for making animations. Reads images from a list. +P: audio - RAW (pass-through), video - RAW (pass-through) RGB + +M: import_lve.c +D: (video/audio) MPEG/VOB/LVE +C: liblve +R: none +S: o +I: imports video from an LVE edit list +P: audio - PCM, video - YUV + +M: import_lzo.c +D: (video) LZO +C: lzo +R: none +S: + +I: imports AVI-files with LZO loss-less compression for video. +P: audio - RAW (pass-through) PCM, video - RAW (pass-through) RGB YUV + +M: import_mov.c +D: (video) * | (audio) * +C: libquicktime +R: none +S: + +I: Quicktime file format, audio/video codecs supported by quicktime4linux. +P: audio - PCM, video - RAW (pass-through) RGB YUV + +M: import_mp3.c +D: (audio) MPEG +C: none +R: none +S: + +I: MPEG audio from program streams or raw streams. +P: audio - PCM, video - none + +M: import_mpeg2.c +D: (video) MPEG2 +C: none +R: none +S: + +I: video track from MPEG program streams or raw streams, extracted and decoded by mpeg2dec. +P: audio - none, video - RAW (pass-through) RGB YUV + +M: import_mplayer.c +D: (video) rendered by mplayer | (audio) rendered by mplayer +C: none +R: mplayer +S: o +I: interface to Mplayer for decoding unsupported codecs, exotic file formats or more ore less broken sources. +P: audio - PCM, video - RAW (pass-through) RGB YUV + +M: import_null.c +D: (video) null | (audio) null +C: none +R: none +S: o +I: dummy module, reads from /dev/zero. +P: audio - none, video - none + +M: import_nuv.c +D: (video) YUV | (audio) PCM +C: liblzo +R: none +S: o +I: interface to NuppelVideo file format. +P: audio - PCM, video - YUV + +M: import_ogg.c +D: (video) all | (audio) Ogg Vorbis +C: none +R: none +S: + +I: decodes Ogg Vorbis audio streams. +P: audio - RAW (pass-through) PCM, video - RAW (pass-through) RGB YUV + +M: import_raw.c +D: (video) RGB/YUV | (audio) PCM +C: none +R: none +S: o +I: RGB/PCM from RIFF AVI/WAVE files or raw streams. +P: audio - PCM, video - RGB YUV YUV420 + +M: import_sunau.c +D: (audio) pcm +C: none +R: none +S: + +I: grabs raw PCM audio from audio(4) devices on some BSD systems +P: audio - PCM, video - none + +M: import_v4l.c +D: (video) v4l | (audio) PCM +C: none +R: none +S: o +I: interface for grabbing sound/video from v4l devices on linux systems. +P: audio - PCM, video - RGB YUV + +M: import_v4l2.c +D: (video) v4l2 | (audio) pcm +C: none +R: none +S: + +I: interface for grabbing sound/video from v4l2 devices on linux systems. prefered over import_v4l. +P: audio - PCM, video - RGB YUV YUV420 + +M: import_vnc.c +D: (video) VNC +C: none +R: vncrec +S: o +I: imports video from the vncrec program. +P: audio - none, video - RAW (pass-through) RGB YUV + +M: import_vob.c +D: (video) MPEG-2 | (audio) MPEG/AC3/PCM | (subtitle) +C: none +R: none +S: + +I: MPEG/AC3 program streams in VOB files (found on unencrypted/ripped DVDs). +P: audio - PCM AC3, video - RAW (pass-through) RGB YUV + +M: import_xml.c +D: (video) * | (audio) * +C: libxml2 +R: libxml2 +S: o +I: interface to XML files with file listing and frame range produced by kino. +P: audio - RAW (pass-through) PCM, video - RAW (pass-through) RGB YUV DV + +M: import_yuv4mpeg.c +D: (video) YUV4MPEGx | (audio) WAVE +C: none +R: none +S: + +I: YUV from video streams produced by mjpegtools (YUV4MPEG) and RIFF WAVE pcm audio. +P: audio - PCM, video - RGB YUV diff --git a/debian/transcode/transcode-1.1.7/docs/import-xml.txt b/debian/transcode/transcode-1.1.7/docs/import-xml.txt new file mode 100644 index 00000000..24e286b9 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/import-xml.txt @@ -0,0 +1,322 @@ +Import_xml Documentation + +Last update 2003/06/27 Marzio Malanchini <[email protected]> + +--------------- +* Index +--------------- + - Overview + - Schema + - Usage + - Requierements + - Examples + - SMIL extract + - Changelog + - Todo + + + +--------------- +* Overview +--------------- + +The import_xml module is based on a SMIL2 directive (http://www.w3.org/2001/SMIL20/Language) and it was initially designed to manage the smil file produced by kino (http://www.schirmacher.de/arne/kino) . +Now it has some features (not supported by kino) that enable transcode to work in a different mode respect to the basic use: for example it's possible to force transcode to work with different sources in the same session (for instance only with dv, avi, mov (all mov supported by import_mov plus quicktime_dv generated by kino) or manage video sources with different height and width (for example a PAL with NTSC). + + +--------------- +* Schema +--------------- + + + /---------\ /---------\ + | | | load | + |transcode |--> autoprobe xml-------> | import | + | | | xml | + \---------/ \---------/ + | + | det. source + \ / + | + ____________|________________ + | | | + | | | + /---------\ /---------\ /---------\ + |video.dv | | | | | + spec. source processor | + | |video.mov| |video.avi| + |audio.avi| | | | | + \---------/ \---------/ \---------/ + \___________|_______________/ + | + \ / + | + /--------------\ + |internal filter| + /---------\ \--------------/ + |transcode | | + | filter |_____________________________/ + | module | + \---------/ + | + | + /---------\ + | normal | + |transcode | + | flow | + \---------/ + + +--------------- +* Usage +--------------- + +import_xml module gets its options from transcode command line (such as -Q -d etc.) and from the smil file. + +A simply way to use the import_xml module is to build an smil file like this: + +------ start my.smil ---- +<?xml version="1.0"?> +<smil xmlns:smil2="http://www.w3.org/2001/SMIL20/Language"> + <seq> + <video src="/mnt/hd/avi/mare008.avi" clipBegin="0" clipEnd="200"/> + </seq> + <seq> + <video src="/mnt/hd/avi/mare009.avi" clipBegin="smpte=00:00:10" clipEnd="20s"/> + <audio src="/mnt/hd/avi/new-audio.avi" clipBegin="smpte=00:00:10" clipEnd="20s"/> + </seq> +</smil> +------ end my.smil ---- + +and run + +transcode -i my.smil -y ............. + +The smil file is auto probed by transcode (it's possible to force the option -x xml) + +The first 2 lines define the namespace +Each sequences are include in <seq> tag and for instance is possible to define two tag <video> and <audio> . +By default audio track is taken from the <video> file but, if <audio> tag is present the module use this as audio track (the length of audio track must be the same of the video one). +Inside the <audio> and <video> tags it's possible to declare two properties: clipBegin and clipEnd: if clipBegin and/or clipEnd are not defined, all frames are processed by the input module. The metric is conform to SMIL2 directive: see SMIL extract + +All audio track can be override by pass to transcode an other smil file that specify the audio tracks. + +e.g. + +transcode -i my.smil -p my-audio.smil -y ............. + +where my-audio.smil +------ start my-audio.smil ---- +<?xml version="1.0"?> +<smil xmlns:smil2="http://www.w3.org/2001/SMIL20/Language"> + <seq> + <audio src="/mnt/hd/avi/alternative-audio.avi" clipBegin="0" clipEnd="200"/> + </seq> + <seq> + <audio src="/mnt/hd/avi/alternative-audio.avi" clipBegin="201" clipEnd="550"/> + </seq> +</smil> +------ end my-audio.smil---- + + +In each <audio> and <video> tag is possible to define <param> tag and this is useful to override some autoprobe parameter or activate feature + +in-audio-module define the module that will be used by the import_xml module; + only dv,mov and avi are currently supported. + +in-video-module define the module that will be used by the import_xml module; + only dv,mov and avi are currently supported. + +in-audio-codec define the codec that will be used by the import_xml module; + only pcm and mov related are currently supported. + +in-video-codec define the codec that will be used by the import_xml module; + only yuv2 rgb yu12 yuy2 (for --dv_yuy2_mode) and raw are currently supported. + +target-height set the size of target height + +target-width set the size of target width + +resize-filter choose between bell|box|mitchell|hermite|B_spline|triangle|lanczos3 resize filter (default lanczos3) + + +e.g. + +------ start resize.smil ---- +<?xml version="1.0"?> +<smil xmlns:smil2="http://www.w3.org/2001/SMIL20/Language"> + <seq> + <video src="/mnt/hd/avi/mare-ntsc.mov" clipBegin="0" clipEnd="100"> + <param name="in-video-codec" value="rgb"/> + <param name="target-width" value="352"/> + <param name="target-height" value="288"/> + <param name="resize-filter" value="mitchell"/> + </video> + </seq> +</smil> +------ end resize.smil ---- + + +In one smil file it's possible to combine different video sources (PAL,NTSC) with different height and width: in that case it's necessary to declare target-height and/or target-width (or vice versa). +VERY IMPORTANT: any resize option passed from command line are ignored if target-width or target-height parameter is setting in the smil file. + +It's possible to use in the same xml file different file type (i.e. avi, dv, mov...). + + +--------------- +* Requierements +--------------- + +import_xml require libxml2 to be compiled in transcode (if present import_xml is enable by default) + + +--------------- +* Examples +--------------- + +1) Manage different source with the same heigth and width in the same smil file (clipBegin and clipEnd in frames) + +<?xml version="1.0"?> +<smil xmlns:smil2="http://www.w3.org/2001/SMIL20/Language"> + <seq> + <video src="/mnt/hd/avi/mare-01.mov" clipBegin="0" clipEnd="100"/> + </seq> + <seq> + <video src="/mnt/hd/avi/mare-02.avi" clipBegin="0" clipEnd="100"/> + </seq> +</smil> + + +2) Manage different source with different heigth and width in the same smil file (clipBegin and clipEnd in different format) + +<?xml version="1.0"?> +<smil xmlns:smil2="http://www.w3.org/2001/SMIL20/Language"> + <seq> + <video src="/mnt/hd/avi/mare-01.mov" clipBegin="00:00:12" clipEnd="50s"> + <param name="target-width" value="352"/> + <param name="target-height" value="288"/> + <param name="resize-filter" value="bell"/> + </video> + </seq> + <seq> + <video src="/mnt/hd/avi/mare-ntsc.avi" clipBegin="24" clipEnd="10s"> + <param name="resize-filter" value="mitchell"/> + </video> + </seq> +</smil> + + +3) Override autoprobe parameter + +<?xml version="1.0"?> +<smil xmlns:smil2="http://www.w3.org/2001/SMIL20/Language"> + <seq> + <video src="/mnt/hd/avi/mare015.dv" clipBegin="10" clipEnd="60"/> + <video src="/mnt/hd/avi/mare016.dv" clipBegin="10" clipEnd="60"/> + <video src="/mnt/hd/avi/mare014.dv" clipBegin="10" clipEnd="60"> + <param name="in-video-module" value="dv"/> + <param name="in-audio-module" value="dv"/> + <param name="in-video-codec" value="rgb"/> + <param name="in-audio-codec" value="pcm"/> + </video> + </seq> +</smil> + + +--------------- +* SMIL extract +--------------- + + +Taken from SMIL MediaClipping Module ".... + +Values in the clipBegin and clipEnd attribute have the following syntax: +Clip-value-MediaClipping ::= [ Metric "=" ] ( Clock-val | Smpte-val ) +Metric ::= Smpte-type | "npt" +Smpte-type ::= "smpte" | "smpte-30-drop" | "smpte-25" +Smpte-val ::= Hours ":" Minutes ":" Seconds + [ ":" Frames [ "." Subframes ]] +Hours ::= Digit+ +Minutes ::= Digit Digit; range from 00 to 59 +Seconds ::= Digit Digit; range from 00 to 59 + +Frames ::= Digit Digit; smpte range = 00-29, smpte-30-drop range = 00-29, smpte-25 range = 00-24 +Subframes ::= Digit Digit; smpte range = 00-01, smpte-30-drop range = 00-01, smpte-25 range = 00-01 + + + + +SMPTE Timestamp +SMPTE time codes [SMPTE] can be used for frame-level access accuracy. The metric specifier can have the following values: + + smpte + + smpte-30-drop + These values indicate the use of the "SMPTE 30 drop" format (approximately 29.97 frames per second), as defined in the SMPTE specification (also referred to as "NTSC drop frame"). + The "frames" field in the time value can assume the values 0 through 29. The difference between 30 and 29.97 frames per second is handled by dropping the first two frame indices + (values 00 and 01) of every minute, except every tenth minute. + + smpte-25 + The "frames" field in the time specification can assume the values 0 through 24. This corresponds to the PAL standard as noted in [SMPTE] + The time value has the format hours:minutes:seconds:frames.subframes. If the subframe value is zero, it may be omitted. Subframes are measured in one-hundredths of a frame. + Examples: + clipBegin="smpte=10:12:33:20" + +Normal Play Time + + npt + Normal Play Time expresses time in terms of SMIL clock values. The metric specifier is "npt", and the syntax of the time value is identical to the syntax of SMIL clock values. + Examples: + clipBegin="npt=123.45s" + clipBegin="npt=12:05:35.3" + +....." + + +--------------- +* Changelog +--------------- + +2003-07-09 * docs/import-xml.txt import/import_xml.c import/ioxml.c import/af6_decore.cpp import/magic.h +- enable support for all source files readable by avifile (af6). + +2003-06-26 * docs/import-xml.txt /import/import_xml.c import/ioxml.c import/ioxml.h import/Makefile.am import/probe_xml.c import/tcxmlcheck.c src/transcode.c docs/man/tcxmlcheck.1 docs/man/tcdecode.1 docs/man/transcode.1: +- change the evaluation order of audio parameter (priority: -p audio.smil, <audio> tag and then <video> tag) +- review of syncronization time for ntsc and pal +- support for source with different height and width +- adding target-height target-width and resize-filter +- document file rewritten + +2003-05-30 * docs/import-xml.txt import/import_xml.c import/ioxml.c: +- enable support for libdv-yuy2. + +2003-05-13 * docs/import-xml.txt import/decode_mov.c import/import_xml.c import/ioxml.c import/ioxml.h import/Makefile.am import/probe_mov.c import/probe_xml.c import/tcdecode.c import/tc.h: +- manage quicktime (as import_mov) , avi and dv file in the same xml +- manage quicktime_dv format (generated by kino not yet supported by import_mov) +- tcdecode can manage mov input file +- enable new parameters in the PARM option (see file import-xml.txt under docs directory ) ` + +2003-04-18 * import/ioxml.c, docs/import-xml.txt: +- allow ioxml to handle the multiple video and audio elements in the same seq statement + +2003-04-09 +- manage different file type in the same xml (only for dv and avi created with dvgrab/kino) +- add a program to check the consistence of xml file +- enable new parameters in the PARM option (see file import-xml.txt under docs directory ) + +2003-01-09 +- patch for probe_xml.c +2002-06-08 +- patch for import_xml.c +2002-03-27 * docs/import_xml.txt import/import_xml.c +- update for import_xml.c +2002-03-20 * first release of import_xml + + + + +--------------- +* Todo +--------------- + +- autobuild the xml file +- extension to manage mpeg file (mpeg1,mpeg2) diff --git a/debian/transcode/transcode-1.1.7/docs/import_alsa.txt b/debian/transcode/transcode-1.1.7/docs/import_alsa.txt new file mode 100644 index 00000000..92001abf --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/import_alsa.txt @@ -0,0 +1,100 @@ + +Audio capture with transcode using ALSA +====================================================================== + Francesco Romani <fromani at gmail dot com> 12 May 2007 + + +********************************************************************* +*** WARNING: *** +*** import_alsa module is still EXPERIMENTAL! *** +*** It may DON'T work for you or it can deliver BROKEN samples! *** +*** If you experiences strange (= not explained here) behaviour, *** +*** PLEASE drop a note on [email protected] explaining *** +*** your issue. Thanks! *** +********************************************************************* + +1. What is this? +---------------- + +This module allow the user to capture audio streams from an ALSA +device, that is the new default sound architecture for Linux 2.6.x +and beyond. Former OSS API is officially deprecated. +While ALSA API/drivers generally offers some OSS API emulation, +is generally preferable to stay on touch with state of the art and +use the new API directly. + +Audio capture is useful for doing screencasts (see import_x11 or +import_vnc modules), or to analog video capture (see import_v4l(2)), +or to record separate audio tracks, or to do whatever you want. + + +2. Basic usage (gotchas, quirks, limitations) +--------------------------------------------- + +From an user point of view, usage of import_alsa should be +straightforwarded compared with import_oss. Just select the import +module (-x SOMETHING,alsa) setup import audio stream parameters using +-e and have fun. + +A tricky step can be selecting the appropriate audio device to capture. +import_alsa by default reads audio from "default" ALSA card (see ALSA +documentation and/or your local configuration). + +You can specify the card to use using the "device" option of import_alsa: + +$ transcode -x SOMETHING,alsa=device=DEVICE + +You can use the `arecord' program from alsa-utils to list the recognized +capture devices: + +$ arecord -l + +ALSA API strongly encourages applications to access audio through alsalib, +not accessing the device directly. Usage of device file is not really +supported (AFAIK), so import_alsa DOES NOT honours -i nor -p transcode +options. Those values are just ignored, so the only way to change +capture card is to use `device' option as outlined above. + + +3. Known issues +--------------- + +* first and foremost, PLEASE NOTE that some audio capture device DOES NOT + properly report the supported sample rate (and maybe others audio parameters + too). They simply accept everything but without be able to fullfill + the effective requests. SAA7134 devices is a known example of this + behaviour, not being able to deliver sampling rate > 32000Hz. + + This is not a limitation of transcode, nor an easy way exists to + recognize those situations. Please pay attention to this and try + some different audio stream settings. + +* ALSA transparent resampling is not yet supported. + +* probing of audio device is not yet supported + (require transcode core changes). + +* subdevice specification is not yet supported due to a transcode core + limitation. + +* audio resync is still primitive. + +* almost no optimizations (see module version number :) ) + + +4. Internals +------------ + +See technical documentation in docs/tech/html/* and/or the comments +on source code for details. + + +5. Future plans +--------------- + +import_oss will NOT be deprecated in any foreseeable future. +import_alsa will be improved in further versions to address +all known issues above issues. +During next releases, import_alsa will be pushed as preferred +audio capture module over import_oss on Linux platforms. + diff --git a/debian/transcode/transcode-1.1.7/docs/import_nvrec.txt b/debian/transcode/transcode-1.1.7/docs/import_nvrec.txt new file mode 100644 index 00000000..9b8beb97 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/import_nvrec.txt @@ -0,0 +1,245 @@ +Import_nvrec Documentation + +* Index +------- + - Overview + - Schematics + - Usage + - Requierements + - Examples + - Tips + - Changes + +* Overview +---------- + +This import module connects NVrec - a very good v4l1/v4l2 grabber - +and transcode. NVrec is very good, because of its audio/video synch +mechanism which maintains perfect A/V synch over a really long time. +Read more about NVrec at http://www.ee.up.ac.za/~justin/ + +"Isn't this braindead? I though NVrec can write divx/divx4/... files +as well?" You might ask. Yes, this is true, but transcode has much +more features, such as better deinterlacing, video postprocessing, +clipping, etc. + +In order to accomplish the connection between NVrec and transcode I +wrote an "export module" for NVrec called RAWrec (which is now +divx4rec -o raw://) In this mode, divx4rec basically writes its +video data to stdout (where it gets capured from transcode) and the +audio data to a mp3 file in an AVI container. + +Before you get completly confused, here are some usage examples + + $ transcode -V -i /dev/v4l2/capture0 -x nvrec,null -y xvidcvs,null \ + -o video.avi -g 512x384 -u 100 -m audio.avi -H0 + +Since import_nvrec only works in YUV mode '-V' is mandatory. +Use your v4l1/2 device as the input file or transcode will assume +/dev/video. +Write encoded video stream to video.avi. +Write audio stream to audio.avi. +Framesize is 512x384. +Use 100 buffers. + +You now have two AVI files: The video only in video.avi and the +audio only in audio.avi. Use avimerge to multiplex them. + + $ avimerge -i video.avi -p audio.avi -a 0 -o complete.avi + +Easy, eh? + +* Schematics +------------ + /---\ + |YOU| + \---/ + | + \|/ + /--------\ /-----------\ + | | <----- recording parameters <--- | | + |divx4rec| | transcode | + |-o raw: | -----> video stream -----------> | | + \--------/ \-----------/ + | | + \|/ \|/ + /---------\ /---------\ + |audio.avi| |video.avi| + \---------/ \---------/ + \______________________________________________/ + | + avimerge + | + \|/ + /------------\ + |complete.avi| + \------------/ + + +* Usage +---------------- + +divx4rec gets its options from transcode meaning transcode's defaults +apply. + +Audio parameters can be specified through transcodes '-e' option, +the mp3 bitrate is controlled with '-b' , eg + + $ transcode (..) -e 44100,16,2 -b 192 + +Everything should work like you expect it to work. + +If you don't specify the '-m' option, audio will be written to +audio.avi. If you need to pass special options to divx4rec, you can +pass options by supplying a string after the module name, just write +down the divx4rec options. This can be useful if you want to control +NVrecs buffer usage + + $ transcode (..) -x nvrec="-H 90 -L 10 -M 50" + +The divx4rec command to be executed will get printed out, look for +something like + + [import_nvrec.so] divx4rec -o raw://audio.avi -w 512 -h 384 -s -b 16 -r 48000 -ab 128 -aq 5 + + +* Requierements +--------------- + +RAWrec is now integrated into NVrec. Since it was heavily based on divx4rec +anyway it became a special output mode of divx4rec. NVrec lives at +http://nvrec.sf.net + +If you only want divx4rec out of NVrec, configure with + + $ ./configure --without-avifile --without-rte \ + --without-ffmpeg --without-quicktime --without-sdl --without-mad + +and copy divx4rec to some place in your $PATH. + + $ install -m 755 divx4rec /usr/local/bin + +Done + + +* Examples +---------- + +Record video at 512x384 to XviD, audio to mp3 at bitrate 128 + + $ transcode -V -i /dev/video -x nvrec,null -y xvidcvs,null \ + -g 512x384 -u 100 -o video.avi -H0 + +Record video at 512x384 to XviD, audio to mp3 at bitrate 192 with +parameters 44100,16,2 + + $ transcode -V -i /dev/video -x nvrec,null -y xvidcvs,null \ + -g 512x384 -u 100 -o video.avi -b 192 -e44100,16,2 -H0 + +Write audio stream to audio-only.avi + + $ transcode -V -i /dev/video -x nvrec,null -y xvidcvs,null \ + -g 512x384 -u 100 -o video.avi -m audio-only.avi -H0 + +Get audio from /dev/sound/dsp and video from /dev/v4l2/capture0 + + $ transcode -V -i /dev/v4l/capture0 -p /dev/sound/dsp \ + -x nvrec,null -y xvidcvs,null \ + -g 512x384 -u 100 -o video.avi -m audio-only.avi -H0 + +Multiplex the files + + $ avimerge -i video.avi -p audio.avi -a 0 -o complete.avi + + +* Tips +------- + +To squeeze out even more fps you can tell divx4rec to not encode the audio +to mp3 and write a WAV file instead. Sebastian <[email protected]> +writes in http://www.theorie.physik.uni-goettingen.de/ +pipermail/transcode-users/2002-June/002575.html (in one line) +(adjusted by tibit to reflect the new syntax) + + "I use this command line to record from TV (after setting the correct channel +with xawtv): + +transcode --duration 01:00:00 \ + -x nvrec="-wav",null + -i /dev/video0 -V -H0 -u 100 \ + -g 576x432 \ + -y divx5,null -w 1200 -o output-video.avi \ + -e 44100,16,2 \ + -J dilyuvmmx + +This produces the files "output-video.avi" and "audio.avi", which is just a +WAV file. By using this method instead of encoding directly to MP3, I can +archieve a +3 or +4 frame rate and can encoder a higher solution. After +recording, I merge both files: + +transcode -i output-video.avi -p audio.wav -P 1 -b 128,0 \ + -o output-complete.avi -y raw + +The output-complete.avi file is the finished recording, but with ads. I use +'avidemux' to cut out the commercials, which is easy since avidemux has a +"skip to next keyframe" button. Usually at the end of commercials there is a +new keyframe. Use the markers begin/end and the delete option from the +"mark" menu to cut the ads out. Then write a new file with A/V to disk. For +me the smart mode sometimes segfaults, and I do not use it." +--------- +Another Usage scenario is described by Christoph Gaitzsch +<[email protected]> in +http://www.theorie.physik.uni-goettingen.de/pipermail/transcode-users/2002-August/003946.html +(adjusted by tibit to reflect the new syntax) + +"I also use my PC as a video recorder on a Athlon 1G. After +experimenting much with transcode, nvrec, lavrec, etc. I now capture +with transcode via nvrec, save this as yuv4mpeg raw stream to a fast +disk and postprocess later. I found that the quality is much better +when encoding in a separate step than live, even when I have no +framedrops. + +Basically I record with the following commands: + +Pass 1 (recording) + +transcode -V -i /dev/video0 -x nvrec="-N 32",null -y yuv4mpeg,null + -o out_video.yuv4mpeg -g 384x288 -u 100 -m out_audio.avi + -H0 -f 25 + +Pass 2 (encoding) + +nice -19 transcode -i out_video.yuv4mpeg -p out_audio.avi + -g 384x288 -f 25 -x yuv4mpeg,mp3 -y ffmpeg4 -w 3000 + -o out.avi -u 100 -J dnr,yuvdenoise,32detect=force_mode=3 + +The advantage is, that the recording stage needs ~5% CPU time, so I +have no framedrops even when the machine runs updatedb or other, +CPU-consuming cron jobs. It is also possible to record while encoding +(because it's niced). Since I schedule my recordings via at and the +second pass lasts very long (~4fps), it's an issue to record at low +CPU usage. + +The filters used in this way, dnr first, then yuvdenoise give me very +good picture quality. Thanks to Jason Lunz' for his work on filter +comparison." + + + + +* Changes +--------- +(newest last) +- NVrec interface changed based on discussion with Justin. RAWrec is now + divx4rec -o raw:// in raw file mode. +- Use -i ... as input video device. +- Use -H0 to disable conflicting autoprobing with import_v4l +- Added Sebastians tip for encoding to wav +- Justin renamed DIVX4rec to divx4rec +- Syntax changed. Do not use transcode's -F anymore, if you need to pass special + options to nvrec use + -x nvrec="-S2 -N32",null + +Have fun + +08/2002 Tilmann Bitterberg <[email protected]> diff --git a/debian/transcode/transcode-1.1.7/docs/import_v4l2.txt b/debian/transcode/transcode-1.1.7/docs/import_v4l2.txt new file mode 100644 index 00000000..9b7e264a --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/import_v4l2.txt @@ -0,0 +1,97 @@ +--- README --- + +What + +This module captures from v4l2-compatible cards. I made it because the +existing v4l import module uses the v4l-compatibility-layer of most +cards nowadays, which is not what you want. Also the v4l module does not +keep track of audio-to-video synchronisation in any way. This may be +sufficient for some capturing cards, but my own SAA7134-based looses a +frame every now and then so audio and video will become unsynchronised +after a while. + +Who + +Anyone using a capturing card compatible to v4l2 should be able to use +the module, there are some warnings applicable though. First, I can only +test on a SAA7134-based card. I do follow general v4l2 programming +directives, so in theory it should work on any v4l2 compatible card. The +SAA7134 driver does have some quirks though. The module detects SAA7134 +based cards and enables some workarounds. I can imagine that other +drivers that also need workarounds, these are of course not present in +the module. Second, the v4l2 api changes frequently. If you'd like to +compile the module yourself, you may run into all sorts of problems, +including compiling errors and errors during runtime of transcode. +Sometimes these problems can be solved by adding another include file to +the source, but you need to have linux kernel version > 2.4.20 anyway +and also with the latest v4l2 patches applied (see +http://www.bytesex.org). Linux version >= 2.6.0 should work in theory, +but I didn't test on it. + +How + +1) Set v4l2 parameters (station, bright, volume, etc.) using your +favourite tv viewing program or something like v4lctl. I deliberately +did not include any setting of parameters in the module as these +external programs are much better at it anyway ;-) + +2) Try!!! You should be able to record from v4l2 now with transcode +using "-x v4l2". You may have to use "-D" to correct any static (!) +difference between audio and video, this depends on your card etc. You +should also use -V, because the SAA7134 driver seems to have a problem +with RGB capturing, which crashed my computer, so I disabled the +capture-in-RGB mode for the moment. Most encoders work much better and +faster with YUV anyway. + +For SAA7134 cards, you may choose to record audio from the card directly +(using direct PCI transfers, not using sound cards etc.) To enable this +mode, add "oss=1" to the saa7134 driver module parameters. You now +should have another dsp device (mostly /dev/dsp1, sometimes /dev/dsp2). +To use this device for capturing, pass it to transcode with the -p +flag. Keep in mind that this device can only capture at 32 Khz, although +it will happily accept any other rate. You may have to use the resample +filter. + +3) If your cpu can hardly keep up it is advisable to boost up the number +of internal transcode buffers to e.g. 128 (-u 128). You may run into +this situation if you're encoding to mpeg2 in real time. If that's not +enough, you cpu is simply too slow for what you want :-( You'll have to +tweak. Sometimes, if you're also using filters, it helps to change the +number of threads. + +4) If your cpu can cope and also the number of v4l2 buffers is +sufficient (full screen capture should report six buffers) and the +transcode buffers are not overrun (watch the number between +parenthesises), and your audio and video become out-of-sync, then you +should try the force resync mode. Else happy capturing! ;-) + +5) You can enable and tune the resync mode using parameters to +the v4l2 module (-x v4l2="<param>:<param>:etc"). + +Possible parameters: + +resync_margin=x this many frames the audio and video may drift + apart before frame dropping or cloning starts. +resync_interval=x this many frames between each resynchronisation + check +overrun_guard=x set this to 1 if you have a saa7134 and a very old + driver (pre-2004) +crop=wxh+txl use hardware cropping width * height at top / left; + only works on recent saa7134 driver +convert=x specifiy conversion scheme manually. + x is a number, obtained with convert=-1, -2 = auto (default) +format=x specify colour format manually, use format=list + to obtain a list. + +Please note: if you do not need the resync mode, do not enable it! If +your card produces good a/v sync ON AVERAGE (although short variations +may exist) the resync code will do more harm than good. Resyncing works +by cloning and dropping frames and yes, this is visible! On the other +hand, a hickup every now and then may be more acceptable than audio +running before or behind. Your milage may vary ;-) If you determined +that you definitely need the resync mode, then you should tune the +resync parameters. A good start is resync_margin=2,resync_interval=15. +Whenever "info output" is "on" (-q 1) and a frame is cloned or dropped, +transcode will show a line with some parameters, like whether the frame +is dropped or cloned and the sequence numbers of audio and video. When +finished encoding, a summary is shown. diff --git a/debian/transcode/transcode-1.1.7/docs/import_x11.txt b/debian/transcode/transcode-1.1.7/docs/import_x11.txt new file mode 100644 index 00000000..b39a0d50 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/import_x11.txt @@ -0,0 +1,161 @@ + +ScreenCast with transcode and import_x11 +====================================================================== + Francesco Romani <fromani at gmail dot com> 18 August 2006 + + +********************************************************************* +*** WARNING: *** +*** import_x11 module is still EXPERIMENTAL! *** +*** It may DON'T work for you or it can deliver BROKEN pictures! *** +*** If you experiences strange (= not explained here) behaviour, *** +*** PLEASE drop a note on [email protected] explaining *** +*** your issue. Thanks! *** +********************************************************************* + +1. What is this? +---------------- + +import_x11 is the new (as in transcode 1.1.0 and later) module and +infrastructure designed to allow to capture full-screen images from +a running X-server, in order to partially replace the aging and +not-widely-appreciated import_vnc module. + +import_x11 isn't a drop-in replacement for import_vnc since vnc +runs nicely on more platforms that X11 (i.e.: windows). +Despite this, import_x11 features a much better support and (at +least in intentions) a cleaner design and implementation. + +Please also consider the fact that transcode itself DOES NOT +run on windows/non-posixly platforms, so X11 import module it's +supposed to cover most of use cases of import_vnc. + + +2. Basic usage +-------------- + +transcode's X11 sourcing facilities are accessible via transcode's +main program or via tcprobe support utility. + +tcprobe allows to see the properties of any LOCAL X11 connection. +That is usefull mailny for transcode internal usage to figure out +(pseudo)stream properties, but can be also useful for debug purposes. + +usage is straightforward, just supply the (LOCAL) DISPLAY identifier +as input argument, like following example + + tcprobe -i :0.0 + +that produces, on my box (as for transcode 1.1.0): + + summary for :0.0, <*> = not default, 0 = not detected + stream type: X11 display source + video format: rgb + import frame size: 1024x768 [720x576] (-g) <*> + aspect ratio: 1:1 asr=1 (--import_asr) + frame rate: 10.000 [25.000] frc=11 (-f) <*> + no audio track: (use "null" import module for audio) + +Please note that import frame rate it's just a kind suggestion and +can be overloaded with no theroretical penalty except for performance +ones. + +In order to use X11 source with transcode, a little more is needed. +Input source must be specified in the same format as for tcprobe, +and internal colorspace must be set as RGB24, using (as for transcode +1.1.0) -V rgb24. + +example: + + transcode -i :0.0 -V rgb24 [other options] + + +3. Recording a session +---------------------- + +As outlined in example above, recording a screen cast using transcode +is pretty straightforwarded, since it's matter of selecting a proper +X11 source and change internal image representation to rgb24. + +Anyway, there are some issues that must be understanded to avoid +unpleasent surprises. +As well as much of multimedia processing, there are two main concerns: +processing speed and storage size. + +First of all, take in mind that X11 connections delivers often BIG +(1024x768 or even more larger) pictures that aren't trivial to elaborate +(of course in small amount of times) in plain RGB24 format. +But since most of popular codecs out there works on YUV flavours, +a format conversion is needed. Such conversion take time and CAN +lead to substantial frame rate drop. It's definitively possible +that transcode just can't capture images at rate superior to a certain +rate on your box. +That's partially due to some internal transcode, that are under +investigation and/or under improvement, but that's also caused by X11 +structure and by the nature of the pictures involved on the process. + +On the other hand, NOT compressing the capture stream quickly produces +HUGE files. Example, with a display running at 1024x768: + +one picture (one frame): 1x1024x768x3 = ~2304 KBytes (~2.25 MBytes) + +TWO seconds at PAL fps recording (50 frames total): +~115200 KBytes (~112.5 MBytes) + +TEN seconds at PAL fps recording (250 frames total): +~576000 KBytes (~562.5 MBytes) + +and so on. + +Of course encoding in raw format delivers a very good encoding speed (read: +introduce a very few overhead in process except for bandwith usage), but +it isn't an handy option for space reasons described above. +Using a lightweight encoder like LZO (see documentation of lzo modules) +can be usefull. + +The other problem is recording rate. There a some factors that severely +limit the acquisition rato (so the encoded clip fps rate), notably +the processing power required for each frame, and that is function of +1) frame conversion (EX: RGB24 -> YUV420P) performed +2) filter applied, if any (EX: antialiasing) +3) encoder used (EX: xvid vs lzo) + +The other factor is the efficiency of transcode's X11 bridge module. +The latter factor can be significantly improved, the former can hardly be. + +So, if you want/need high-fps screen recording and transcode seems unable to +achieve this task, try first to perform a two-pass recording before reporting +the problem on ML :) + +first pass: just grab the screencast doing the fewest processing possible, +and using the most lightweight encoder avalaible. +second pass: apply all further processing that you want, offline. + + +4. Known issues +--------------- + +Only 24-bit depth running X servers are supported. That's a pretty +severe and annoying constraint and it will go away in future releases. + +Only LOCAL (not-networked) X connections are supported. That's was +a design choice and isn't likely it will be changed soon. + +Frame timing could be inaccurate or just wrong. We're working on this, +but isn't trivial to solve. Stay tuned. + +Communications with X server is pretty inefficient, yet, since it doesn't +use any of advanced X features like Shared Memory, extensions and so on. +So, communication consume a fair amount of bandwith. +This can lead to issue above and in general to a slowdown of machine. +This will be solved or at least improved in future releases. + + +5. Future plans +--------------- + +import_vnc will not go away soon. It will stay at least for 1.1.0 +release cycle and most likely for 1.2.x/post-1.1.x too. +Neverthless, it's legacy and very poorly mantained (and maintanable) +code, and it will be blasted away in the long shot. + diff --git a/debian/transcode/transcode-1.1.7/docs/import_yuv.txt b/debian/transcode/transcode-1.1.7/docs/import_yuv.txt new file mode 100644 index 00000000..2ca0506b --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/import_yuv.txt @@ -0,0 +1,18 @@ +Module info: +module can read YUV frames from a given dir (-i option) +it start to search the files: +0000.yuv +0001.yuv +... and so on. + +If some frames are missing module try to find a next aviable frame +until it counts MAXFRM (MAXFRM=10000). If You need more - redefine it in +import_yuv.c +Remeber to add the following options to transcode: +-V (only YUV mode is supported) +-g widthxheight (e.g. -g 384x288) +If red is swapped with blue add option: +-k + +Marek Blaszkowski diff --git a/debian/transcode/transcode-1.1.7/docs/make-filter-man.sh b/debian/transcode/transcode-1.1.7/docs/make-filter-man.sh new file mode 100755 index 00000000..35a01221 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/make-filter-man.sh @@ -0,0 +1,213 @@ +#!/bin/sh + +# This scripts generates the FILTERS manpage section for transcode(1) +# It takes no arguments. +# +# If you want a new filter to be automatically documented, add it here to the +# list. +# +# After running the script, replace the FILTERS section in transcode.1 with the +# content of output.1 +# +# (c) 2003 Tilmann Bitterberg +# Mon Sep 8 11:14:10 CEST 2003 + +#config + +helpfile="filter-help.txt" +outfile="output.1" + +# all filters to process +filter_list=" +filter_29to23.so +filter_32detect.so +filter_32drop.so +filter_aclip.so +filter_astat.so +filter_clone.so +filter_compare.so +filter_control.so +filter_cpaudio.so +filter_cshift.so +filter_cut.so +filter_decimate.so +filter_denoise3d.so +filter_detectclipping.so +filter_detectsilence.so +filter_dilyuvmmx.so +filter_divxkey.so +filter_dnr.so +filter_doublefps.so +filter_extsub.so +filter_fieldanalysis.so +filter_fields.so +filter_fps.so +filter_hqdn3d.so +filter_invert.so +filter_ivtc.so +filter_levels.so +filter_logo.so +filter_logoaway.so +filter_lowpass.so +filter_mask.so +filter_modfps.so +filter_msharpen.so +filter_nored.so +filter_normalize.so +filter_null.so +filter_pp.so +filter_preview.so +filter_pv.so +filter_resample.so +filter_skip.so +filter_slowmo.so +filter_smartbob.so +filter_smartdeinter.so +filter_smartyuv.so +filter_smooth.so +filter_subtitler.so +filter_tc_audio.so +filter_tc_video.so +filter_test.so +filter_testframe.so +filter_text.so +filter_tomsmocomp.so +filter_unsharp.so +filter_videocore.so +filter_whitebalance.so +filter_xsharpen.so +filter_yuvdenoise.so +filter_yuvmedian.so +" + +text="" + +get_help_to_filter() { + + name=$1 + + text=`sed -n "/^---------------------->\[ ${name}.help/,/^<----------------------|$/{ + /^---------------------->\[ ${name}.help/d + /^<----------------------|$/d + p; + }" $helpfile` + +} + +>$outfile +for i in $filter_list; +do + name=`echo $i | sed -e 's/[^_]*_//' -e 's/\.so//'` + echo -n "Processing $name .." + # rm -f $name.1 $name.txt + tcmodinfo -i $name 2>&1| sed -n '/^START/,/^END/p' | + sed ' +/START/{ + N + /\nEND/d + s/START\n// + bread +} + +beer + +:read +{ + h + # name comment version author flags + s|"filter_\([^.]*\)\.so", "\([^"]*\)", "\([^"]*\)", "\([^"]*\)", "\([^"]*\)",.*$|.TP 4\ +\\fB\1\\fP - \\fB\2\\fP\ +\\fB\1\\fP was written by \4. The version documented here is \3. | + x + + # extract flags + s/"filter_[^.]*\.so", "[^"]*", "[^"]*", "[^"]*", "\([^"]*\)",.*$/\1/ + s/V.*A/This is a video and audio filter. / + s/A.*V/This is a video and audio filter. / + s/V/This is a video filter. / + s/A/This is a audio filter. / + s/4.*R.*Y/It can handle rgb,yuv and yuv422 mode. / + s/R.*4.*Y/It can handle rgb,yuv and yuv422 mode. / + s/R.*Y.*4/It can handle rgb,yuv and yuv422 mode. / + s/R.*Y/It can handle rgb and yuv mode. / + s/Y.*R/It can handle rgb and yuv mode. / + s/Y.*4/It can handle yuv and yuv422 mode. / + s/4.*Y/It can handle yuv and yuv422 mode. / + s/R/It can handle rgb mode only. / + s/Y/It can handle yuv mode only. / + s/M.*E.*O/It supports multiple instances and can run as a pre and\/or as a post filter. / + s/E.*O.*M/It supports multiple instances and can run as a pre and\/or as a post filter. / + s/O.*M.*E/It supports multiple instances and can run as a pre and\/or as a post filter. / + s/M/It supports multiple instances. / + s/E.*O/It can be used as a pre or as a post filter. / + s/O.*E/It can be used as a pre or as a post filter. / + s/E/It is a pre only filter. / + s/O/It is a post only filter. / + + # fixup + s/rgb/RGB/g + s/yuv/YUV/g + s/pre/pre-processing/g + s/post/post-processing/g + x; + G + s/\(.*\)\n\([^\n]*\)/\1\2/ + s/ *$/\ +.IP\ +.RS/ + p + d +} + +:eer +#now the fields + +# "normal field" + +s|"\([^"]*\)", "\([^"]*\)", "\([^"]*\)", "\([^"]*\)", .*|\\(bu \ +.I \1 \ += \\fI\3\\fP [default \\fI\4\\fP] \ +.RS 3\ +\2\ +.RE| + +# string + +s|"\([^"]*\)", "\([^"]*\)", "\(%s\)", "\([^"]*\)"|\\(bu \ +.I \1 \ += \\fI\3\\fP\ +.RS 3\ +\2\ +.RE| + +# bool + +s|"\([^"]*\)", "\([^"]*\)", "\([^"]*\)", "\([^"]*\)"|\\(bu \ +.I \1 \ +(bool) \ +.RS 3\ +\2\ +.RE| + +/^END/d + '>> $outfile + + get_help_to_filter $name + + if [ ! -z "$text" ]; then + echo ".IP" >> $outfile + echo "$text" >> $outfile 2>/dev/null + fi + echo -e ".RE" >> $outfile + echo " done" + +done + +# empty lines removal +sed ' +/\.IP/{ + N; + N; + /\.IP\n\.RS\n\.RE/d +}' $outfile > $outfile.new +mv $outfile.new $outfile diff --git a/debian/transcode/transcode-1.1.7/docs/make-import-man.sh b/debian/transcode/transcode-1.1.7/docs/make-import-man.sh new file mode 100755 index 00000000..1fa0cc10 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/make-import-man.sh @@ -0,0 +1,111 @@ +#!/bin/bash + +cat << EOF +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" + "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> + +<refentry id='transcode_import'> + + <refentryinfo> + <date>14th July 2008</date> + </refentryinfo> + + <refmeta> + <refentrytitle>transcode_import</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class='date'>15th April 2008</refmiscinfo> + <refmiscinfo class='source'>transcode_import(1)</refmiscinfo> + </refmeta> + + <refnamediv id='name'> + <refname>transcode_import</refname> + <refpurpose>transcode import modules collection</refpurpose> + </refnamediv> + + <!-- body begins here --> + <refsynopsisdiv id='synopsis'> + <cmdsynopsis> + <command>transcode</command> + <arg choice='plain'> + -x <replaceable>name</replaceable> + <arg choice='opt'> + <arg choice='plain'> + <replaceable>,name</replaceable> + </arg> + </arg> + </arg> + <arg choice='opt'> + <replaceable>other options</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + + <refsect1 id='copyright'> + <title>Copyright</title> + <para> + <command>transcode</command> is Copyright (C) 2001-2003 by Thomas Oestreich, 2003-2004 Tilmann Bitterberg, 2004-2010 Transcode Team + </para> + </refsect1> + + <refsect1 id="import_modules"> + <title>import modules</title> + <para> + If no module is specified through the -x option, <command>transcode</command> will autodetect them using internal probing code. + If just one import module is specified, it is used both for video and audio import; if both modules are specified, the first + is used for video import, the second for audio import. + To see what import modules are avalaible for your transcode installation, do a + + <literallayout> + $ ls -1 \$( tcmodinfo -p )/import*.so + </literallayout> + + A complete transcode installation has the following import modules. + </para> + <variablelist> + +EOF +./tcmkmodhelp.py -s ../import/import_*.c ../import/*/import_*.c +cat << EOF + + + + </variablelist> + </refsect1> + + <refsect1 id='authors'> + <title>Authors</title> + <para> + Written by Thomas Oestreich <[email protected]>, + Tilmann Bitterberg and the Transcode-Team + </para> + <para> + See the <emphasis>AUTHORS</emphasis> file for details. + </para> + </refsect1> + + <refsect1 id='see_also'> + <title>See Also</title> + <para> + <citerefentry> + <refentrytitle>transcode</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tcmodinfo</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>transcode_filter</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>transcode_export</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + </para> + <!-- .br --> + </refsect1> + +</refentry> +EOF + diff --git a/debian/transcode/transcode-1.1.7/docs/make-module-man.sed b/debian/transcode/transcode-1.1.7/docs/make-module-man.sed new file mode 100644 index 00000000..cfcfc547 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/make-module-man.sed @@ -0,0 +1,60 @@ +#!/bin/sed -f +# sed -f make-modules-man < export-mods.txt | tbl | groff -S -Wall -mtty-char -mandoc -Tascii | col | less + +/^ *$/d + +# 1i\ +# .TH transcode 1 "1st November 2003" "transcode(1)"\ +# .SH NAME\ +# transcode \- LINUX video stream processing tool\ +# +# start the work +/^M: /{ +s/^M: [ei][xm]port_\([^.]*\)\.cp*/.TP 4\ +\\fB\1\\fP/ +N +s/\nD: / \\- / +s/$/\ +.br/ +} + +/^C: /{ +/none/s/.*/This module has no compile-time dependencies./ +/This/!{ + s/C: // + s/, / and /g + s/^/At compile-time / + s/$/ must be available./ + } +} + +/^R: /{ +/none/s/.*/This module has no run-time dependencies./ +/This/!{ + s/R: // + s/, / and /g + s/^/At run-time / + s/$/ must be present./ + } +} + +/^S: /{ +s/S: -/Support for this module is poor./ +s/S: o/Support for this module is fair./ +s/S: +/Support for this module is good./ +} + +# enhance this to allow multiple lines +/^I: /{ +s/I: /.RS 8\ +/ +s/$/\ +.br/ +} + +/^P: /{ +s/^P: /Supported processing formats: / +s/$/\ +.RE/ +} + diff --git a/debian/transcode/transcode-1.1.7/docs/man/Makefile.am b/debian/transcode/transcode-1.1.7/docs/man/Makefile.am new file mode 100644 index 00000000..92f57eea --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/Makefile.am @@ -0,0 +1,26 @@ +man_MANS = \ + transcode.1 \ + transcode_export.1 \ + transcode_filter.1 \ + transcode_import.1 \ + tccat.1 \ + tcprobe.1 \ + tcdemux.1 \ + tcscan.1 \ + tcexport.1 \ + tcextract.1 \ + tcdecode.1 \ + tcmodinfo.1 \ + tcmodchain.1 \ + tcxmlcheck.1 \ + tcpvmexportd.1 \ + avisplit.1 \ + avimerge.1 \ + avifix.1 \ + aviindex.1 \ + avisync.1 + +EXTRA_DIST = \ + $(man_MANS) \ + transcode.1.xml + transcode_import.1.xml diff --git a/debian/transcode/transcode-1.1.7/docs/man/Makefile.in b/debian/transcode/transcode-1.1.7/docs/man/Makefile.in new file mode 100644 index 00000000..92bdfb3e --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/Makefile.in @@ -0,0 +1,567 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/man +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +man1dir = $(mandir)/man1 +am__installdirs = "$(DESTDIR)$(man1dir)" +NROFF = nroff +MANS = $(man_MANS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +A52_CFLAGS = @A52_CFLAGS@ +A52_LIBS = @A52_LIBS@ +ACLIB_LIBS = @ACLIB_LIBS@ +ACLOCAL = @ACLOCAL@ +ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVILIB_LIBS = @AVILIB_LIBS@ +AWK = @AWK@ +BSDAV_CFLAGS = @BSDAV_CFLAGS@ +BSDAV_LIBS = @BSDAV_LIBS@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXXCPP = @CXXCPP@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLDARWIN_CFLAGS = @DLDARWIN_CFLAGS@ +DLDARWIN_LIBS = @DLDARWIN_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FAAC_CFLAGS = @FAAC_CFLAGS@ +FAAC_LIBS = @FAAC_LIBS@ +FGREP = @FGREP@ +FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ +FREETYPE2_LIBS = @FREETYPE2_LIBS@ +GREP = @GREP@ +IBP_LIBS = @IBP_LIBS@ +ICONV_CFLAGS = @ICONV_CFLAGS@ +ICONV_LIBS = @ICONV_LIBS@ +IMAGEMAGICK_CFLAGS = @IMAGEMAGICK_CFLAGS@ +IMAGEMAGICK_LIBS = @IMAGEMAGICK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAME_CFLAGS = @LAME_CFLAGS@ +LAME_LIBS = @LAME_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBAVCODEC_CFLAGS = @LIBAVCODEC_CFLAGS@ +LIBAVCODEC_LIBS = @LIBAVCODEC_LIBS@ +LIBAVFORMAT_CFLAGS = @LIBAVFORMAT_CFLAGS@ +LIBAVFORMAT_LIBS = @LIBAVFORMAT_LIBS@ +LIBDVDREAD_CFLAGS = @LIBDVDREAD_CFLAGS@ +LIBDVDREAD_LIBS = @LIBDVDREAD_LIBS@ +LIBDV_CFLAGS = @LIBDV_CFLAGS@ +LIBDV_LIBS = @LIBDV_LIBS@ +LIBJPEG_CFLAGS = @LIBJPEG_CFLAGS@ +LIBJPEG_LIBS = @LIBJPEG_LIBS@ +LIBMPEG2CONVERT_CFLAGS = @LIBMPEG2CONVERT_CFLAGS@ +LIBMPEG2CONVERT_LIBS = @LIBMPEG2CONVERT_LIBS@ +LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@ +LIBMPEG2_LIBS = @LIBMPEG2_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBPOSTPROC_CFLAGS = @LIBPOSTPROC_CFLAGS@ +LIBPOSTPROC_LIBS = @LIBPOSTPROC_LIBS@ +LIBQUICKTIME_CFLAGS = @LIBQUICKTIME_CFLAGS@ +LIBQUICKTIME_LIBS = @LIBQUICKTIME_LIBS@ +LIBS = @LIBS@ +LIBTCAUDIO_LIBS = @LIBTCAUDIO_LIBS@ +LIBTCVIDEO_LIBS = @LIBTCVIDEO_LIBS@ +LIBTC_LIBS = @LIBTC_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ +LIBV4L2_LIBS = @LIBV4L2_LIBS@ +LIBV4LCONVERT_CFLAGS = @LIBV4LCONVERT_CFLAGS@ +LIBV4LCONVERT_LIBS = @LIBV4LCONVERT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LZO_CFLAGS = @LZO_CFLAGS@ +LZO_LIBS = @LZO_LIBS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MJPEGTOOLS_CFLAGS = @MJPEGTOOLS_CFLAGS@ +MJPEGTOOLS_LIBS = @MJPEGTOOLS_LIBS@ +MKDIR_P = @MKDIR_P@ +MOD_PATH = @MOD_PATH@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_AWK = @PATH_TO_AWK@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PROF_PATH = @PROF_PATH@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PVM3_CFLAGS = @PVM3_CFLAGS@ +PVM3_LIBS = @PVM3_LIBS@ +PVM3_PVMGS = @PVM3_PVMGS@ +RANLIB = @RANLIB@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIMD_FLAGS = @SIMD_FLAGS@ +STRIP = @STRIP@ +THEORA_CFLAGS = @THEORA_CFLAGS@ +THEORA_LIBS = @THEORA_LIBS@ +USE_DLDARWIN = @USE_DLDARWIN@ +VERSION = @VERSION@ +VORBIS_CFLAGS = @VORBIS_CFLAGS@ +VORBIS_LIBS = @VORBIS_LIBS@ +WAVLIB_LIBS = @WAVLIB_LIBS@ +X264_CFLAGS = @X264_CFLAGS@ +X264_LIBS = @X264_LIBS@ +XIO_CFLAGS = @XIO_CFLAGS@ +XIO_LIBS = @XIO_LIBS@ +XMKMF = @XMKMF@ +XVID_CFLAGS = @XVID_CFLAGS@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +a52_config = @a52_config@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +bsdav_config = @bsdav_config@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +faac_config = @faac_config@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +iconv_config = @iconv_config@ +imagemagick_config = @imagemagick_config@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +lame_config = @lame_config@ +libdir = @libdir@ +libdvdread_config = @libdvdread_config@ +libexecdir = @libexecdir@ +libjpeg_config = @libjpeg_config@ +libjpegmmx_config = @libjpegmmx_config@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lzo_config = @lzo_config@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pvm3_config = @pvm3_config@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xvid_config = @xvid_config@ +man_MANS = \ + transcode.1 \ + transcode_export.1 \ + transcode_filter.1 \ + transcode_import.1 \ + tccat.1 \ + tcprobe.1 \ + tcdemux.1 \ + tcscan.1 \ + tcexport.1 \ + tcextract.1 \ + tcdecode.1 \ + tcmodinfo.1 \ + tcmodchain.1 \ + tcxmlcheck.1 \ + tcpvmexportd.1 \ + avisplit.1 \ + avimerge.1 \ + avifix.1 \ + aviindex.1 \ + avisync.1 + +EXTRA_DIST = \ + $(man_MANS) \ + transcode.1.xml + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/man/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/man/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-man1: $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" + @list=''; test -n "$(man1dir)" || exit 0; \ + { for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + test -z "$$files" || { \ + echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @list='$(MANS)'; if test -n "$$list"; then \ + list=`for p in $$list; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ + if test -n "$$list" && \ + grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ + echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ + grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ + echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ + echo " typically \`make maintainer-clean' will remove them" >&2; \ + exit 1; \ + else :; fi; \ + else :; fi + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(MANS) +installdirs: + for dir in "$(DESTDIR)$(man1dir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-man + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: install-man1 + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-man + +uninstall-man: uninstall-man1 + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-man1 \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-man uninstall-man1 + + transcode_import.1.xml + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/debian/transcode/transcode-1.1.7/docs/man/avifix.1 b/debian/transcode/transcode-1.1.7/docs/man/avifix.1 new file mode 100644 index 00000000..764594a7 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/avifix.1 @@ -0,0 +1,98 @@ +.TH avifix 1 "16th January 2002" "avifix(1)" +.SH NAME +avifix \- fix header of AVI-file +.SH SYNOPSIS +.na +.B avifix +[ +.B -i +.I name +[ +.B -F +.I string +] [ +.B -f +.IB val1 , val2 +] [ +.B -N 0x +.I NN +] [ +.B -b +.I bitrate +] [ +.B -e +.IB rate [, bits [, channels ]] +] [ +.B -a +.I num +] [ +.B -v +] ] +.SH COPYRIGHT +\fBavifix\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B avifix +fixes the header of an AVI-file with the supplied parameters. +.SH OPTIONS +.TP +\fB-i\fP \fIname\fP +Specify the name of the AVI-file. +.TP +\fB-F\fP \fIstring\fP +Specify the video codec as FourCC. +.br +Possible values are \fBRGB\fP, \fBRIFF\fP and \fBTIFF\fP. ??? +.TP +.BI -f " val1,val2" +Use this option to change the frame rate and scale information in the +header of the AVI-file. Both values must not be < 0. +.TP +.BI -N " 0xnn" +Use this option to change the audio format identifier in the header of +the AVI-file. Here are some possible values: + +0x1 PCM uncompressed audio + +0x50 MPEG layer-2 aka MP2 + +0x55 MPEG layer-3 aka MP3 + +0x2000 AC3 audio +.TP +.BI -b " bitrate" +Use this option to change the encoder bitrate in the header of the +AVI-file. \fIbitrate\fP has to be given in units of kbps. +.TP +.BI -e " rate[,bits[,channels]]" +Use this option to change the audio stream parameters of in the header +of the AVI-file. +.TP +.BI -a " num" +Use this option to change the audio stream parameters of audio track number +\fInum\fP in the header of the AVI-file. +.TP +.B -v +Print version information and exit. +.SH EXAMPLES +The command +.PP +.B avifix -i my_file.avi -f 30,1 +.PP +changes the header of the file \fImy_file.avi\fP and sets the frame +rate to 30 fps. +.SH AUTHORS +.B avifix +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR avimerge (1), +.BR avisplit (1), +.BR tccat (1), +.BR tcdecode (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/aviindex.1 b/debian/transcode/transcode-1.1.7/docs/man/aviindex.1 new file mode 100644 index 00000000..5a38fe32 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/aviindex.1 @@ -0,0 +1,215 @@ +.TH aviindex 1 "29th February 2004" "aviindex(1)" +.SH NAME +aviindex \- Write and read text files describing the index of an AVI file +.SH SYNOPSIS +.B aviindex +[ +.B -o +.I ofile +.B -i +.I ifile +.B -f +.B -n +.B -x +.B -v +.B -h +] +.SH COPYRIGHT +\fBaviindex\fP is Copyright (C) 2003,2004 by Tilmann Bitterberg +.SH DESCRIPTION +.B aviindex +writes a text file describing the index of an AVI file. It analyses the +content or index if available of the AVI file and prints this information in a +human readable form. +.PP +An AVI file can have an optional chunk called "idx1" which contains +information about keyframes (syncpoints) and locations of video +frames resp. audio chunks. Though larger AVI files (>2-4GB), so-called +OpenDML AVI or also AVI 2 files, have a more complicated indexing +system, which consists of a superindex referring to (possibly) +several "standard" indexes, the "indexing principle" is the same. +Movie players use such indexes to seek in files. +.PP +\fBaviindex\fP reads the AVI file \fIifile\fP and writes the index +into \fIofile\fP. This can either happen in "dumb" mode where +\fBaviindex\fP looks for an existing index (and trusts this index!) +in the file and dumps this index into a human readable form. The +"dumb" mode is used, when \fI-n\fP is NOT specified or when the +filesize of the input file is smaller than 2 GB. +.PP +In "smart" mode, \fBaviindex\fP scans through the complete AVI file +and searches for chunks (may that video or audio) and reconstructs +the index based on the information found. If an index chunk is found +accidently, \fBaviindex\fP will use the information in this index to +recover the keyframe information, which is important. \fBaviindex\fP +will use smart mode, if given the \fI-n\fP option OR if the AVI file +is larger than 2 GB. If the file is large, the index chunk cannot be +found the usual way so one must use \fI-n\fP but it is possible that +there is an index chunk in this file. Cross fingers. +.PP +Also in smart mode, \fBaviindex\fP analyzes the content of the video frame and +tries to detect keyframes by looking at the data depending on the video codec. +.PP +The generated index file serves different purposes. +.RS +.TP +* +The library which handles AVI files in transcode(1) can read such +index files and use this file to rebuild the index instead of +scanning through the whole AVI file over and over again. Reading the +index from the index file is +.B much +faster than scanning through the +AVI. +.TP +* +It can be used as a seeking file. When given to transcode via the +--nav_seek switch, transcode will use the file to seek directly to +the position you specified via -c. This also works for multiple -c +ranges. +.TP +* +Its nice to have for debugging. +.RE +.SH OPTIONS +.TP +\fB-o\fP \fIofile\fP +Specify the name of the output file. +.TP +\fB-i\fP \fIifile\fP +Specify the name of the input file. +.TP +\fB-f\fP +force the use of the existing index. +.TP +\fB-n\fP +force generating the index by scanning the file. +.TP +\fB-x\fP +(implies -n) don't use any existing index to generate keyframes. +.TP +\fB-v\fP +show version. +.TP +\fB-h\fP +show help text. +.SH MPLAYER +.B aviindex +can convert from and to mplayer-generated index files. Since mplayer-1.0pre3 mplayer has the ability to save the index via +.I \-saveidx +FILE +and load it again through +.I \-loadidx +FILE. +.B aviindex +is able to convert an mplayer index file to a transcode index file and vice +visa. It is not able to directly write an mplayer file, though. Example of a +toolchain +.nf + mplayer -frames 0 -saveidx mpidx broken.avi + aviindex -i mpidx -o tcindex + avimerge -x tcindex -i broken.avi -o fixed.avi +.fi +Or the other way round +.nf + aviindex -i broken.avi -n -o broken.idx + aviindex -i broken.idx -o mpidx + mplayer -loadidx mpidx broken.avi +.fi +The major differences between the two index file formats is that the mplayer +one is a binary format which is an exact copy of an index in the AVI file. +.B aviindex +\'s format is text based. See +.B FORMAT +for details. +.SH EXAMPLES +The command +.PP +.nf + aviindex -i 3GBfile.avi -o 3GB.index +.fi +.PP +generates and index of the large file 3GBfile.avi. You can use the +file 3GB.index to tell transcode to read the index from this file +and not from the avi. This leads to much faster startup time. +.PP +Suppose 3GBfile.avi has DivX video and PCM sound and you want to +encode several ranges. +.PP +.nf +transcode -V -i 3GBfile.avi --nav_seek 3GB.index \\ +\ -x xvid,avi \\ +\ -c 5000-6000,0:20:00-0:21:00,100000-100001 \\ +\ -y xvid --lame_preset standard -o out.avi +.fi +.SH FORMAT +The format of the index file. The first 7 bytes in this file are +"AVIIDX1" for easy detection and a comment of who created the file. +The second line is a comment and describes the fields. Do not delete +it. Each line (except the first 2) consists of exactly 8 fields all +seperated by one space and describing one particular chunk of the AVI +file. +.br +Here is an example of an AVI file with two audio tracks. +.RS + +.nf +AVIIDX1 # Generated by aviindex (transcode-0.6.8) +TAG TYPE CHUNK CHUNK/TYPE POS LEN KEY MS +00db 1 0 0 2048 8335 1 0.00 +01wb 2 1 0 10392 847 1 0.00 +01wb 2 2 1 11248 847 1 0.00 +02wb 3 3 0 12104 847 1 0.00 +02wb 3 4 1 12960 847 1 0.00 +00db 1 5 1 13816 5263 0 0.00 +00db 1 6 2 19088 3435 0 0.00 +01wb 2 7 2 22532 834 1 0.00 +.fi + +.RE +The field \fITAG\fP is the chunk descriptor. Its "00d*" for the video, +"01wb" for the first audio track, "02wb" for the second audio track +and so on. +.PP +The field \fITYPE\fP is the type of the chunk. This is redundant because +the type is also embedded into the TAG field but its a convenient +thing to have. Its 1 for video, 2 for first audio track and 3 +for second audio track. +.PP +The field \fICHUNK\fP is the absolute chunk number in the AVI file. If you +read the CHUNK field in the last line of the index file, you know +how many chunks this AVI file has. +.PP +The field \fICHUNK/TYPE\fP holds information about how many chunks +of this type were previously found in the AVI file. +.PP +The field \fIPOS\fP is the absolute byte position in the AVI file +where this chunk can be found. Note this field can hold really large +numbers if you are dealing with large AVIs. +.PP +The field \fILEN\fP is the length of this chunk. +.PP +The field \fIKEY\fP holds information if this chunk is a keyframe. +In the example above, all audio chunks are key-chunks, but only the +first video frame is a key frame. This field is either 0 or 1. +.PP +The field \fIMS\fP holds information about how many milliseconds +have passed. This field may be 0.00 if unknown. +.SH AUTHORS +.B aviindex +was written by Tilmann Bitterberg <transcode at tibit.org> +.br +and is part of transcode. +.SH SEE ALSO +.BR avifix (1), +.BR avisync (1), +.BR avimerge (1), +.BR avisplit (1), +.BR tccat (1), +.BR tcdecode (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR transcode (1), +.BR mplayer (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/avimerge.1 b/debian/transcode/transcode-1.1.7/docs/man/avimerge.1 new file mode 100644 index 00000000..4f56b255 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/avimerge.1 @@ -0,0 +1,139 @@ +.TH avimerge 1 "26th January 2004" "avimerge(1)" +.SH NAME +avimerge \- merge several AVI-files into one +.SH SYNOPSIS +.na +.B avimerge +.B -o +.I name +.B -i +.IB file1 " [ " file2 " [ " .\|.\|. " ] ] " +[ +.B -p +.IB file +] [ +.B -a +.I num +] [ +.B -A +.I num +] [ +.B -b +.I num +] [ +.B -c +] [ +.B -f +.I commentfile +] [ +.B -x +.I indexfile +] +.SH COPYRIGHT +\fBavimerge\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B avimerge +is a versatile tool. It can contatenate several AVI files into one. It can +also be used to fix an index of a broken file and can also replace audio tracks +or muxes new ones. It can read raw AC3 and MP3 files for multplexing. +.SH OPTIONS +.TP +.BI "\-o " name +Specify the name of the output file. +.TP +.BI "\-i " file +Specify the name(s) of the input file(s) to merge into the output +file. +.TP +.BI "\-p " file +Specify the name of the audio file to multiplex into the output file. The type +of file can be either another AVI file or an MP3 or AC3 file. +.TP +.BI "\-b " num +Specify if avimerge should write an VBR mp3 header into the AVI file. Default +is dependent on the input file (and usually correct). \fInum\fP is either 1 or +0. +.TP +.B \-c +Drop video frames in case audio is missing [off] +.br +Only when merging multiple AVI files. Some AVI files run a little bit (usually +for one or two video frames) short on audio. This means avimerge cannot keep up +sync when concatinating them. The files play fine when played individually but +not when merged because audio from the new file gets played back with video +from the old file. +.B avimerge +will print a message like +.nf + + No audiodata left for track 0->0 (59950.25=59950.25) continuing .. + +.fi +When you turn on the -c option, the video which is too much will be dropped. +.TP +.BI "\-f " commentfile +Read AVI tombstone data for header comments from \fIcommentfile\fP. See +/docs/avi_comments.txt for a sample. +.TP +.BI "\-x " indexfile +Read the AVI index from +.I indexfile. +See aviindex(1) for information on how +to create such a file. +.TP +.BI "\-a " num +Specify the number of the audio track you want to use from the +.I input +file. +.TP +.BI "\-A " num +Specify the number of the audio track you want to use in the +.I output +file. If you specify an existing track number, the track will be replaced. If +omitted, the next free slot will be used. +.SH EXAMPLES +The command + +.nf +.B avimerge -o big.avi -i my_file1.avi my_file2.avi my_file3.avi +.fi + +merges the three input files \fImy_file[123].avi\fP into one big AVI-file +\fIbig.avi\fP. + +.nf +.B avimerge -o out.avi -i in.avi -p audio2.avi -a 1 +.fi + +merges track number 1 form in.avi to the next free track number in out.avi. You can +create audio-only AVI-files using + +.nf +.B transcode -i song.mp3 -x null,mp3 -g 0x0 -y raw -a 1 -o audio2.avi -u 50 +.fi + +The command + +.nf +.B avimerge -o out.avi -i in.avi -p sound.mp3 +.fi + +merges the file sound.mp3 as an additional audio track into out.avi. + +.SH AUTHORS +.B avimerge +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR aviindex (1), +.BR avifix (1), +.BR avisplit (1), +.BR tccat (1), +.BR tcdecode (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/avisplit.1 b/debian/transcode/transcode-1.1.7/docs/man/avisplit.1 new file mode 100644 index 00000000..dec4f2c4 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/avisplit.1 @@ -0,0 +1,143 @@ +.TH avisplit 1 "25th June 2003" "avisplit(1)" +.SH NAME +avisplit \- split AVI-files into chunks of a maximum size +.SH SYNOPSIS +.na +.B avisplit +[ +.B -i +.I file +.B -o +.I base +[ +.B -s +.I size +] [ +.B -H +.I num +] [ +.B -t +.I s1-s2[,s3-s4,..] +.B -c +.B -m +.B -b +.I num +.B -f +.I commentfile +] +] [ +.B -v +] +.SH COPYRIGHT +\fBavisplit\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B avisplit +splits a single AVI-file into chunks of size \fIsize\fP. +.br +Each of the created chunks will be an independent file, i.e. it can +be played without needing any other of the chunk. +.SH OPTIONS +.TP +\fB-i\fP \fIfile\fP +Specify the filename of the file to split into chunks. +.TP +\fB-o\fP \fIbase\fP +Specify the base of the output filename(s) \fBavisplit\fP will then split to +\fBbase-%04d.avi\fP +.TP +\fB-s\fP \fIsize\fP +Use this option to specify the maximum size (in units of MB) of the +chunks \fBavisplit\fP should create. \fI0\fP means dechunk, create as many +files as possible. +.TP +\fB-H\fP \fInum\fP +Create only the first \fInum\fP chunks then exit. +.TP +\fB-t\fP \fIs1-s2[,s3-s4,..]\fP +Split the input file based on time/framecode (hh:mm:ss.ms) +.TP +.B -c +Together with \fB-t\fP. Merge all segments into one AVI-File again instead +generating seperate files. +.TP +.B -m +Together with \fB-t\fP. Force split at upper bondary instead of lower border. +.TP +\fB-b\fP \fInum\fP +Specify if avisplit should write an VBR mp3 header into the AVI file. Default is +1 because it does not hurt. \fInum\fP is either 1 or 0. +.TP +\fB-f\fP \fIcommentfile\fP +Read AVI tombstone data for header comments from \fIcommentfile\fP. See +/docs/avi_comments.txt for a sample. +.TP +.B -v +Print only version information and exit. +.SH EXAMPLES +The command +.PP +.B avisplit -s 700 -i my_file.avi +.PP +will split the file \fImy_file.avi\fP into chunks which's maximum size +will not exceed 700 MB, i.e. they will fit onto a CD, each. The +created chunks will be named my_file.avi-0000, my_file.avi-0001, etc. +.PP +.B avisplit -i my_file.avi -c -o out.avi -t 00:10:00-00:11:00,00:13:00-00:14:00 +.PP +will grab Minutes 10 to 11 and 13 to 14 from my_file.avi and merge it into out.avi +.SH BAD SYNCH +When you split a file with \fBavisplit\fP and the A/V sync for the first file +is OK but the sync on all successive files is bad then have a look at the +output of tcprobe(1) (shortend). + +.br + | V: 25.000 fps, codec=dvsd, frames=250, width=720, height=576 +.br + | A: 48000 Hz, format=0x01, bits=16, channels=2, bitrate=1536 kbps, +.br + | \fI10\fP chunks, 1920000 bytes +.br + +You'll see the AVI file has only 10 Audio chunks but 250 video +chunks. That means one audio chunk spans several video frames. +avisplit can not cut a chunk in half, it only handles complete +chunks. If you do, say, avisplit -s 20, it is possible that the first file will +have 6 audio chunks and the second one only 4 meaning there is too much +audio in the first AVI file. + +The solution is to remux the AVI file with +.RS +.B transcode -i in.avi -P1 -N 0x1 -y raw -o out.avi +.RE +(of course -N 0x1 is not correct for all AVI files). +Now look at tcprobe again + +.br + | V: 25.000 fps, codec=dvsd, frames=250, width=720, height=576 +.br + | A: 48000 Hz, format=0x01, bits=16, channels=2, bitrate=1536 kbps, +.br + | \fI250\fP chunks, 1920000 bytes +.br + +The data in this file is \fIexactly\fP the same (its bit-identical) +as it was in in.avi; the AVI file was just written in a +different way, we do now have 250 audio chunks which makes splitting much +easier and more accurate for avisplit. +.SH AUTHORS +.B avisplit +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR aviindex (1), +.BR avifix (1), +.BR avimerge (1), +.BR tccat (1), +.BR tcdecode (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/avisync.1 b/debian/transcode/transcode-1.1.7/docs/man/avisync.1 new file mode 100644 index 00000000..5d0ac019 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/avisync.1 @@ -0,0 +1,80 @@ +.TH avisync 1 "26th June 2003" "avisync(1)" +.SH NAME +avisync \- adjust audio synchronisation +.SH SYNOPSIS +.na +.B avisync +[ +.B -o +.I file +.B -i +.IB file +.B -q +.B -n +.IB num +.B -b +.IB num +.B -a +.I track +.B -f +.IB commentfile +] +.SH COPYRIGHT +\fBavisync\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B avisync +shift audio on frame basis. +.SH OPTIONS +.TP +\fB-o\fP \fIname\fP +Specify the name of the output file. +.TP +\fB-i\fP \fIfile\fP +Specify the name of the input file. +.TP +\fB-q\fP +be less verbose. +.TP +\fB-n\fP \fIcount\fP +shift audio by \fIcount\fP frames. If \fIcount\fP is positive, audio +starts with audio frame \fIcount\fP at the beginning of the AVI-file. If +\fIcount\fP is negative, audio is prepended \fIcount\fP padding frames. +.TP +\fB-a\fP \fItrack\fP +Specify the number of the audio channel to shift. +.TP +\fB-b\fP \fInum\fP +Specify if avisync should write an VBR mp3 header into the AVI file. Default is +1 because it does not hurt. \fInum\fP is either 1 or 0. +.TP +\fB-f\fP \fIcommentfile\fP +Read AVI tombstone data for header comments from \fIcommentfile\fP. See +/docs/avi_comments.txt for a sample. +.SH EXAMPLES +The command +.PP +.B avisync -i my_file1.avi -o out.avi -n -10 +.PP +puts 10 audio frames at the beginning of the AVI-file. +.PP +E.g. if the audio is delayed about 200 ms (0.2 seconds) and you're working with +a 25 frames per second AVI-File, you need to shift the audio 200/40 = 5 frames +since one frame is 40 ms long. +.SH AUTHORS +.B avisync +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR aviindex (1), +.BR avifix (1), +.BR avimerge (1), +.BR avisplit (1), +.BR tccat (1), +.BR tcdecode (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/tccat.1 b/debian/transcode/transcode-1.1.7/docs/man/tccat.1 new file mode 100644 index 00000000..306bda67 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tccat.1 @@ -0,0 +1,126 @@ +.TH tccat 1 "15th January 2002" "tccat(1)" +.SH NAME +tccat \- concatenate multimedia streams from medium and print on the standard output +.SH SYNOPSIS +.TP +.B tccat +.B -i +.I name +[ +.B -t +.I magic +] [ +.B -T +.I title[,chapter[,angle]] +] [ +.B -L +] [ +.B -S +.I n +] [ +.B -P +] [ +.B -a +] [ +.B -d +.I mode +] [ +.B -v +] +.SH COPYRIGHT +\fBtccat\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B tccat +is part of and usually called by \fBtranscode\fP. +.br +However, it can also be used independently. +.br +\fBtccat\fP reads source (from stdin if not explicitely defined) and +prints on the standard output. Directory contents is concatenated, if +source files have the same format. Multiple AVI-files are also +supported. +.SH OPTIONS +.IP "\fB-i \fIname\fP" +Specify input source. If ommited, \fIstdin\fP is assumed. +.br +You can specify a file, directory, device, mountpoint or host address +as input source. \fBtccat\fP usually handles the different types +correctly. +.IP "\fB-t\fP \fImagic\fP" +Tell \fBtccat\fP about the type of input. Currently only \fBdvd\fP +is supported - any other parameter will be ignored. +.IP "\fB-T \fItitle\fP[\fB,\fIchapter\fR[\fB,\fIangle\fR]]" +Select DVD +.I title +and extract only a single +.I chapter +with selected viewing +.I angle\fP. +Setting the argument +.I chapter +to \fB-1\fP means to process all available chapters on the DVD. +.br +If this option is given, the input type of \fBdvd\fP will also be +assumed (see option \fB-t\fP). +.IP "\fB-L\fP" +This option tells \fBtccat\fP to loop through all chapters starting at +the one given with the option \fB-T\fP. +.IP "\fB-S\fP \fIn\fP" +Seek to program stream (VOB) offset \fIn\fPx2kB before starting output. +.IP "\fB-P\fP" +Stream full DVD title specified by -T. +.IP "\fB-a\fP" +Use this option to dump an AVI-file/socket audio stream. The default +is to extract and concatenate AVI-file video stream. +.IP "\fB-d\fP \fIlevel\fP" +With this option you can specify a bitmask to enable different levels +of verbosity (if supported). You can combine several levels by adding the +corresponding values: + +QUIET 0 + +INFO 1 + +DEBUG 2 + +STATS 4 + +WATCH 8 + +FLIST 16 + +VIDCORE 32 + +SYNC 64 + +COUNTER 128 + +PRIVATE 256 +.IP "\fB-v\fP" +Print version information and exit. +.SH NOTES +\fBtccat\fP is a front end for streaming various source types and is used in \fBtranscode\fP's import modules. +.SH EXAMPLES +The command +.PP +.B tccat -i /dev/dvd -T 1,-1 | mplayer - +.PP +reads all chapters belonging to title \fI1\fP of a DVD (assuming that +/dev/dvd/ is a symbolic link to a real DVD device) and pipes a +MPEG program stream into player. +.SH AUTHORS +.B tccat +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR avifix (1), +.BR avimerge (1), +.BR avisplit (1), +.BR tcdecode (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcdecode.1 b/debian/transcode/transcode-1.1.7/docs/man/tcdecode.1 new file mode 100644 index 00000000..08c40f3f --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcdecode.1 @@ -0,0 +1,179 @@ +.TH tcdecode 1 "23th August 2003" "tcdecode(1)" +.SH NAME +tcdecode \- read multimedia streams from medium, decode to raw format and print to standard output +.SH SYNOPSIS +.TP +.B tcdecode +.B -i +.I name +[ +.B -x +.I codec +] [ +.B -t +.I package +] [ +.B -g +.I WxH +] [ +.B -s +.I c,f,r +] [ +.B -C +.I s-e +] [ +.B -y +.I codec +] [ +.B -Y +] [ +.B -Q +.I mode +] [ +.B -A +.I flag +] [ +.B -d +.I verbosity +] [ +.B -v +] +.SH COPYRIGHT +\fBtcdecode\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B tcdecode +is part of and usually called by \fBtranscode\fP. +.br +However, it can also be used independently. +.br +\fBtcdecode\fP reads source (from stdin if not explicitely defined) and +prints on the standard output. +.SH OPTIONS +.IP "\fB-i \fIname\fP" +Specify input source. If ommited, \fIstdin\fP is assumed. +\fBtcdecode\fP reads streams from file or from stdin. + +.IP "\fB-g \fIWxH\fP" +video frame width and height [720x576] + +.IP "\fB-C \fIs-e\fP" +decode and print out only this frame interval (video) or bytes (audio) [all]. + +.IP "\fB-x \fIcodec\fP" +source codec, if not detected of reading from stdin. This option also specifies video and audio context of the source for decoding. Currently, supported parameter for \fIcodec\fP are + +.RS 8 +.TS +lI c l. +mp3 MPEG audio (lame) +ac3 AC3 audio (liba52) +dv Digital Video DV (libdv) +mpeg2 MPEG video (libmpeg2) +yv12 Y'CbCr YUV +mov Quicktime (libquicktime) +.TE +.RE + +.IP "\fB-t \fIpackage\fP" +Currently only argument supported is "lavc". Use the codec by -x from this package. Available (-x) codecs for \fIlavc\fP are: +mpeg2, divx3, divx, divx4, mp42, mjpg, rv10, svq1, svq3, vp3, 4xm, wmv1, wmv2, hfyu, indeo3, h263p, h263i + + +.IP "\fB-y \fIcodec\fP" +target codec. \fB tcdecode \fP only decodes to raw format suitable for transcode. Valid option parameter for \fIcodec\fP are + +.RS 8 +.TS +lI r. +rgb RGB 24bit +yv12 Y'CbCr YUV +yuy2 4:2:2 YUV +pcm SIGNED LE 16bit PCM +.TE +.RE +.IP "\fB-s\fP \fIc,f,r\fP" +audio gain for AC3 downmixing [1.0,1.0,1.0] + +.IP "\fB-Y\fP" +decoded Digital Video (raw) YUV frame is in YUY2 (packet) format using libdv. Downsample frame to YV12. PAL users should compile libdv with --with-pal-yuv=YV12 to avoid this option [off] + +.IP "\fB-A\fP \fIflag\fP" +audio flag for AC3/A52 decoder [none]. This flag determines the down-mixing +configuration. Valid choices for \fIflag\fP are determined by the following +bits set: + +.RS 8 +.TS +l r. +drc off 1 +demux 2 +dolby off 4 +.TE +.RE + +Add those numbers to turn multiple options on. + +.IP "\fB-Q\fP \fImode\fP" +decoding quality. Certain codecs, e.g., DV with libdv allow for changing +this parameter if speed is prefered over quality. +Valid parameter are 1=fastest-5=best [5]. + +.IP "\fB-d\fP \fIlevel\fP" +With this option you can specify a bitmask to enable different levels +of verbosity (if supported). You can combine several levels by adding the +corresponding values: + +.RS 8 +.TS +l r. +QUIET 0 +INFO 1 +DEBUG 2 +STATS 4 +WATCH 8 +FLIST 16 +VIDCORE 32 +SYNC 64 +COUNTER 128 +PRIVATE 256 +.TE +.RE + +.IP "\fB-v\fP" +Print version information and exit. + +.SH NOTES +\fBtcdecode\fP is a front end for decoding various sources and is used in \fBtranscode(1)\fP's import modules. +.SH EXAMPLES +The command +.nf +\ tcdecode -i foo.mp3 -x mp3 +.fi +decodes an MPEG audio stream and prints raw PCM data to stdout. + +The command +.nf +\ tcextract -i foo.avi -x mp3 | tcdecode -x mp3 +.fi +extracts an MPEG audio track from the AVI-file foo.avi and pipes the frames into the decoder + +.PP +.SH AUTHORS +.B tcdecode +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR avifix (1), +.BR avisync (1), +.BR avimerge (1), +.BR avisplit (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR tccat (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcdecode (1), +.BR transcode (1) +.br diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcdemux.1 b/debian/transcode/transcode-1.1.7/docs/man/tcdemux.1 new file mode 100644 index 00000000..3b155920 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcdemux.1 @@ -0,0 +1,190 @@ +.TH tcdemux 1 "09th January 2003" "tcdemux(1)" +.SH NAME +tcdemux \- demultiplex a program stream +.SH SYNOPSIS +.TP +.B tcdemux +.B -i +.I name +[ +.B -t +.I magic +] [ +.B -x +.I codec +] [ +.B -S +.I unit,[s1-s2] +] [ +.B -a +.I ach,[vch] +] [ +.B -s +.I 0xnn +] [ +.B -M +.I mode +] [ +.B -f +.I fps +] [ +.B -W +] [ +.B -O +] [ +.B -P +.I name +] [ +.B -A +.I n[,m[,...]] +] [ +.B -d +.I verbosity +] [ +.B -v +] +.SH COPYRIGHT +\fBtcdemux\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B tcdemux +is part of and usually called by \fBtranscode\fP. +.br +However, it can also be used independently. +.br +\fBtcdemux\fP reads source (from stdin if not explicitely defined) and +prints on the standard output. +.SH OPTIONS +.IP "\fB-i \fIname\fP" +Specify input source. If ommited, \fIstdin\fP is assumed. +.br +.IP "\fB-x \fIcodec\fP" +Process only packets containing given +.I codec +as payload. +Examples are "mpeg2" for MPEG video or "ac3" for audio packets. +.br +.IP "\fB-t \fImagic\fP" +Specify the input file type +.I magic. +Useful for using +.B tcdemux +in pipelines. This is normally autodetected. +.br +.IP "\fB-a \fIach[,vch]\fP" +Process only packets containing given audio track +.I ach +and video track +.I vch. +Most program stream feature multiple audio tracks but only a single video stream. Default is "-a 0,0". +.br +.IP "\fB-s \fI0xnn\fP" +Select specific multimedia track using the standard identifier +.I 0xnn. +This useful to extract subtitle packets. +.br +.IP "\fB-f \fIfps\fP" +Specify the frame rate +.I fps +for subtitle meta information used by external applications. +.br +.IP "\fB-S \fIunit[,s1-s2]\fP" +Select a program unit +.I unit +and a selected GOP range +.I s1-s2 +for processing. A +.I unit +is usually a set of GOPs that need to be synchronized +at the very beginning. This option can be used to eleminate junk units at the beginning of the main presentation or to select certain episodes of a TV series from a DVD. A GOP is a logical unit to be properly decoded, i.e., decoding can only start at the beginning of a GOP. +.br +.IP "\fB-O" +Do not skip initial sequence. Used internally by transcode. +.br +.IP "\fB-A \fIn[,m[,...]]\fP" +Select packets using an identifier for extracting only selected streams without processing. This is useful for size reduction of your multimedia stream. Example: + +.B tcdemux -i big_dvd.vob -A 0xe0,0x81,0x20 > small_dvd.vob + +extracts all packets for the video stream, AC3 audio track (1) and the +first subtitle stream (0). +.br +.IP "\fB-M \fImode\fP" +Select synchronization strategy +.I mode. +This is how transcode selects the beginning of a video and audio stream to +assure both streams are sychronized for further processing: + +0 no synchronization. Packets are printed directly to \fIstdout\fP. + +1 synchronization based on PTS information found in the packet header. Audio packets are delayed until a suitable starting point is found. Default for PAL videos. + +2 NTSC adapted synchronization mode. Detailed information for each GOP contained in the video stream are piped to a \fIstdout\fP to be processed by +the certain import modules. This enables adjusting the frame rate or inverse telecine, if necessary. + +3 more advanced synchronization mode 1 with msec granular adjustment. Details delegated to transcode. + +4 more advanced synchronization mode 2 with msec granular adjustment for NTSC materail. Details delegated to transcode. + +5-7 undocumented debugging modes for internal use. +.br +.IP "\fB-P \fIfile\fP" +Write GOP meta information to +.I file +instead of \fstdout\fP. +.br +.IP \fB-W +Print a navigation log file for a given video stream to \fIstdout\fP. This is used for transcode's "psu mode" and "cluster mode". +.br +.IP "\fB-d\fP \fIlevel\fP" +With this option you can specify a bitmask to enable different levels +of verbosity (if supported). You can combine several levels by adding the +corresponding values: + +QUIET 0 + +INFO 1 + +DEBUG 2 + +STATS 4 + +WATCH 8 + +FLIST 16 + +VIDCORE 32 + +SYNC 64 + +COUNTER 128 + +PRIVATE 256 +.IP "\fB-v\fP" +Print version information and exit. +.SH NOTES +\fBtcdemux\fP is a front end for de-multiplexing program streams and is used in \fBtranscode\fP's import modules. +.SH EXAMPLES +The command + +.B tcprobe -i movie.vob -x mpeg2 + +extracts only MPEG video packets. Further processing, i.e., extracting the +elementary video stream is done by +.B tcextract. +.PP +.SH AUTHORS +.B tcdemux +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR avifix (1), +.BR avimerge (1), +.BR avisplit (1), +.BR tcdecode (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tccat (1), +.BR tcscan (1), +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcexport.1 b/debian/transcode/transcode-1.1.7/docs/man/tcexport.1 new file mode 100644 index 00000000..d6e8a00f --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcexport.1 @@ -0,0 +1,221 @@ +.TH tcexport 1 "9 April 2006" "tcexport(1)" + +.SH NAME +tcexport \- Simple frontend to transcode's encoding subsystem + +.SH SYNOPSIS +.na +.B tcexport +[ +.B -i +.I video_file +] [ +.B -p +.I audio_file +] [ +.B -o +.I output_file +] [ +.B -c +.I f1-f2[,f3-f4[,...]] +] [ +.B -N +.I fmt,fmt +] [ +.B -R +.I n[,video_log[,audio_log]] +] [ +.B -P +.I profile[,profile] +] [ +.B -y +.I video_mod,audio_mod,mplex_mod +] [ +.B -w +.I bitrate[,keyint[,crisp]] +] [ +.B -b +.I bitrate[,vbr[,quality[,mode]]] +] [ +.B -D +] [ +.B -d +.I verbosity +] [ +.B -m +.I path +] [ +.B -v +] + +.SH COPYRIGHT +\fBtcexport\fP is Copyright (C) by Francesco Romani + +.SH DESCRIPTION +.B tcexport +was designed as a debug tool for transcode's encoding code: it fits +in a very limited range of usage cases; however, it can also be used +independently if you like. +.br +tcexport encodes and multiplexes a raw YUV4MPEG2/WAV V/A stream using given +parameters and transcode encoder components. tecexport provides direct and complete +access to transcode's encoding features and modules, but hasn't any of transcode +import/extracting/decoding/filtering capabilities. Use some other tc* tool +if you need those facilities. +.br +tcexport's options are intentionally made similar, or identical if feasible, +to corresponding transcode's encoding options. + +.SH OPTIONS +.TP +\fB-i\fP \fIvideo_file\fP +Specify the path of video source. Only regular files on filesystem are supported. +\fIvideo_file\fP must be a YUV4MPEG2 stream, nothing else is supported. +.TP +\fB-p\fP \fIaudio_file\fP +Specify the path of audio source. Only regular files on filesystem are supported. +\fIaudio_file\fP must be a WAVE stream, nothing else is supported. +.TP +\fB-o\fP \fIoutput_file\fP +Specify the (base)path of output file. Some multiplexors (es: raw multiplexor) +uses value of this option as an hint to make the final output file(s) (i.e. +appending different extensions for A/V streams). +.TP +.B \-c \fIf1\fP\-\fIf2\fP[,\fIf3\fP\-\fIf4\fP[, ... ] ] +encode only frames \fIf1\-f2\fP [and \fIf3\-f4\fP and so on]. +Default is to encode all available frames. Use this and you will get statistics +about remaining encoding time. +The \fIf[N]\fP parameters may also be timecodes in the HH:MM:SS.FRAME format. Example: +.RS +.nf +\-c 500\-0:5:01,:10:20\-1:18:02.1 +.fi +.IP +Will encode only from frame 500 to 5 minutes and 1 second and from 10 min, +20 sec to 1 hour, 18 min, 2 sec and one frame. +.RE +.IP +Note that tcexport, ad well as transcode, starts counting frames at \fI0\fP and +excludes the last frame specified. +That means that "-c 0-100" will encoded 100 frames starting at frame \fI0\fP up +to frame \fI99\fP +.TP +\fB-N\fP \fIvideo_format,audio_format\fP +Setup the desired \fIencoded\fP video and audio format respectively. You \fImust\fP +always use this option since there is some encoder modules (notably encode_ffmpeg) +that support a lot of codecs, and tcexport nor modules can automatically choose a +sane one not have defaults (yet). +.TP +.B \-R \fIn\fP[\fI,video_log\fP[\fI,audio_log\fP]] +enable multi-pass encoding (0-3) [0,divx4.log,pcm.log]. +.RS +.TP 4 +.I 0\fR Constant bitrate (CBR) encoding. [default] +The codec tries to achieve constant bitrate output. This means, each encoded +frame is mostly the same size. This type of encoding can help in maintaining +constant filling of hardware buffer on set top players or smooth streaming +over networks. By the way, Constant bitrate is often obtained sacrifying +quality during high motion scenes. +.TP +.I 1\fR Variable bitrate encoding: First pass. +In this mode, the codec analyses the complete sequence in order to collect +data that can improve the distribution of bits in a second VBR pass. The +collected data is written to second sub argument (default: divx4.log). This +data is codec dependant and cannot be used across codecs. It is strongly +advised to use the same codec settings for the VBR analysis pass and the +VBR encoding pass if you want predictable results. +.IP +The video output of the first pass is not of much use and can grow very large. +It's a good idea to not save the video output to a file but directly to /dev/null. +Usually the bitrate is ignored during first pass. +Disabling audio export makes sense too, so use -y. +.TP +.I 2\fR Variable bitrate encoding: Second pass. +The first pass allowed the codec collecting data about the complete sequence. +During the second pass, the codec will use that data in order to find an +efficient bit distribution that respects both the desired bitrate and the +natural bitrate curve shape. This ensures a good compromise between quality +and desired bitrate. +.TP +.I 3\fR Constant quantizer encoding. +The quantizer is the "compression level" of the picture. The lower the +quantizer is, the higher is the quality of the picture. This mode can help +in making sure the sequence is encoded at constant quality, but no prediction +can be made on the final bitrate. When using this mode, the \fB-w\fP option +changes its meaning, it now takes the quantizer ranging from 1 to 31. Note +that constant quantizer encoding is not supported with some codecs (notably +mpeg1/2/4 with -y ffmpeg). +.RE +.TP +.B \-P \fIprofile\fP[,\fIprofile\fP] +select export profile(s) to load. An export profile it's just a different, +already tuned, set of basic values for tcexport's options. Even if isn't recomended, +an user can always overwrite profile settings just using standard options. +export profiles are stackable, just requesting to load multiple profiles +separated by commas; if some options are set by more than one profile, the last +profile determine their value. +.TP +.B \-y \fIvideo_mod\fP,\fIaudio_mod\fP,\fImplex_mod\fP +Select export modules: video and audio encoders, and multiplexor module. +You \fIalways must\fP select both the encoders and multiplexor, there isn't +implicit modules. The only exception to this rule is if this option isn't +used at all: in this case tcexport will use \fInull\fP modules. +.TP +.B \-w \fIbitrate\fP[,\fIkeyint\fP[,\fIcrisp\fP]] +encoder bitrate[,keyframes[,crispness]] [(6000 for MPEG 1/2, 1800 for others),250,100]. +.TP +.B \-b \fIbitrate\fP[,\fIvbr\fP[,\fIquality\fP[,\fImode\fP]]] +audio encoder bitrate kBits/s[,vbr[,quality[,mode]]] [128,0,5,0] +.TP +\fB-D\fP +Select dry run mode: tcexport will probe stream, load selected modules then exit, +without doing anything else. +.TP +\fB-d\fP \fIverbosity\fP +Select the verbosity of program, support code and modules. See transcode's +manpage to see supported verbosity levels. Please note that higher verbosity +levels include lower ones, so if You select i.e. TC_DEBUG level you will get +TC_DEBUG messages \fIand\fP TC_INFO messages. Please also note that high verbosity +levels will output \fIa lot\fP of messages. +.TP +\fB-m\fP \fIpath\fP +Look in \fIPath\fP instead of the compiled-in module path for a module. +.TP +.B -v +Print version information and exit. + +.SH RETURN VALUES +.B tcexport +uses following return values: +.br + 0 successfull +.br + 1 bad parameter or command line option +.br + 2 error while reading/writing from/to a file +.br + 3 requested an inexistent (or unreadable) module +.br + 4 a module raised an internal error +.br + 5 error while probing input file(s). Make sure they are of right format. +.br +64 internal error. Please provide a report of what's happened on transcode-devel mailing list +.br + + +.SH AUTHORS +.B tcexport +was written by Francesco Romani +.br +<[email protected]> with contributions from the Transcode Team and +many others. See AUTHORS for details. + +.SH SEE ALSO +.BR tccat (1), +.BR tcdecode (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcprobe (1), +.BR transcode (1) +.BR tcmodinfo (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcextract.1 b/debian/transcode/transcode-1.1.7/docs/man/tcextract.1 new file mode 100644 index 00000000..db0919dc --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcextract.1 @@ -0,0 +1,141 @@ +.TH tcextract 1 "26th November 2002" "tcextract(1)" +.SH NAME +tcextract \- read multimedia file from medium, extract or demultiplex requested stream and print to standard output +.SH SYNOPSIS +.TP +.B tcextract +.B -i +.I name +[ +.B -x +.I codec +] [ +.B -t +.I magic +] [ +.B -a +.I track +] [ +.B -C +.I s-e +] [ +.B -d +.I verbosity +] [ +.B -v +] +.SH COPYRIGHT +\fBtcextract\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B tcextract +is part of and usually called by \fBtranscode\fP. +.br +However, it can also be used independently. +.br +\fBtcextract\fP reads source (from stdin if not explicitely defined) and +prints on the standard output. +.SH OPTIONS +.IP "\fB-i \fIname\fP" +Specify input source. If ommited, \fIstdin\fP is assumed. +\fBtcextract\fP reads streams from file or from stdin. + +.IP "\fB-C \fIs-e\fP" +extract and print out only this frame interval (video) or bytes (audio) [all]. This option is only supported if the source contains proper information to perform a selective extraction. + +.IP "\fB-t \fImagic\fP" +source file magic. This option is used to identify the source file format if reading is performed from stdin or \fItcextract\fP fails to identify the source +file format. Supported formats are labeled with \fImagic\fP: + +avi RIFF AVI-file + +vob MPEG program streams + +m2v MPEG elementary video stream + +vdr MPEG digital video recording + +raw raw bitstream + +wav RIFF WAVE audio + +yuv4mpeg mjpeg-tools stream header format + +.IP "\fB-x \fIcodec\fP" +source pdeudo-codec, if not detected when reading from stdin. Currently, supported parameter for \fIcodec\fP are + +mp3 MPEG audio + +ac3 AC3 audio + +a52 A52 audio + +dv Digital Video DV + +mpeg2 MPEG video + +yv12 Y'CbCr YUV + +rgb RGB 24-bit + +ps1 MPEG private stream (subtitles) + +pcm raw audio stream + +.IP "\fB-a \fItrack\fP" +extract selected audio or video track from source. + +.IP "\fB-d\fP \fIlevel\fP" +With this option you can specify a bitmask to enable different levels +of verbosity (if supported). You can combine several levels by adding the +corresponding values: + +QUIET 0 + +INFO 1 + +DEBUG 2 + +STATS 4 + +WATCH 8 + +FLIST 16 + +VIDCORE 32 + +SYNC 64 + +COUNTER 128 + +PRIVATE 256 +.IP "\fB-v\fP" +Print version information and exit. + + +.SH NOTES +\fBtcextract\fP is a front end for extracting various raw or encoded audio/video tracks from a source and is used in \fBtranscode\fP's import pipeline. + +.SH EXAMPLES +The command +.B tcextract -i foo.avi -x mp3 -a 3 +extracts MPEG audio track 3 from the AVI-file foo.avi and prints the bitstream to stdout. + +.PP +.SH AUTHORS +.B tcextract +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR avifix (1), +.BR avisync (1), +.BR avimerge (1), +.BR avisplit (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR tccat (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcdecode (1), +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcmodchain.1 b/debian/transcode/transcode-1.1.7/docs/man/tcmodchain.1 new file mode 100644 index 00000000..a9752156 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcmodchain.1 @@ -0,0 +1,146 @@ +.TH tcmodchain 1 "5 January 2006" "tcmodchain(1)" +.SH NAME +tcmodchain \- Query compatibily of transcode modules chains. +.SH SYNOPSIS +.na +.B tcmodchain +[ +.B -m +.I path +] [ +.B -C +] [ +.B -L +] [ +.B -d +.I verbosity +] [ +.B -v +] module1 module2 +.SH COPYRIGHT +\fBtcmodchain\fP is Copyright (C) by Transcode Team +.SH DESCRIPTION +.B tcmodchain +allow to inspect transcode(1) modules, as well as it's companion, +tcmodinfo(1). While tcmodinfo(1) focus on single modules, tcmodchain +is intended to help in exploring/experimenting module interactions. +.SH OPTIONS +.TP +\fB-m\fP \fIpath\fP +Look in \fIPath\fP instead of the compiled-in module path while +trying to load a module. +.TP +.B -C +Enable \fIcheck\fP mode. +.br +In check mode tcmodchain expects exactly two +module identifiers. tcmodchain will check compatibilty between two +given modules. Result will be logged out or not depending of +verbosity level. Anyway, if two modules are compatible, tcmodchain +will exit succesfully; otherwise, tcmodchain will exit with error. +.br +see RETURN VALUES below. +.TP +.B -L +Enable \fIlist\fP mode. +.br +In list mode tcmodchain expects exactly two +module identifiers, exactly one of which containing a wildcard. +tcmodchain will inspect all avalaible installed modules matching +the wildcard and will print out module names that are compatible +with the other given one. if at least one compatible module is found, +tcmodchain will exit succesfully; otherwise, tcmodchain will exit +with error. +.br +see RETURN VALUES below. + +.TP +\fB-d\fP \fIverbosity\fP +Specify the verbosiness level to use, like transcode does. Default value +is 1 (TC_INFO verbosiness). +.TP +.B -v +Print version information and exit. +.SH MODULE IDENTIFIERS +.B tcmodchain +identifies modules using a +\fItype:name\fP +naming scheme. Currently, as in transcode 1.1.0, only \fIencode\fP and \fImultiplex\fP +module \fItype\fPs are supported. \fIname\fP can refer to the name of any avalaible +transcode modules, using the same rules of tcmodinfo(1) \fI-i\fP option. +The wildcard character \fI*\fP is supported in the \fIname\fP section of module +identifier. Wildcard meaning is `any of avalaible modules' and is honoured only +when \fIlist\fP mode (-L option) is used. Using wildcard character for \fIboth\fP +module identifiers will lead to an error. + +.SH EXAMPLES +.PP +.B $ tcmodchain -C encode:null multiplex:null -d 1 +.PP +[encode_null.so] v0.0.3 (2005-06-05) null (fake) A/V encoder +.br +[multiplex_null.so] v0.0.2 (2005-12-29) discard each encoded frame +.br +[tcmodchain] encode:null | multiplex:null [OK] +.br +[tcmodchain] module chain OK + +.PP +.B $ tcmodchain -L 'encode:*' multiplex:null +.PP +copy +.br +faac +.br +lame +.br +lzo +.br +null +.br +x264 +.br +xvid + +\fBPLEASE NOTE\fP that output of this example may vary depending of your installation. +.br +At least \fInull\fP and \fIcopy\fP modules will be showed on your output. + +.PP +.B $ tcmodchain -L encode:null 'multiplex:*' +.PP +avi +.br +null +.br +raw +.br +y4m + +.SH RETURN VALUES +.B tcmodchain +uses following return values: +.br + 0 successfull +.br + 1 bad parameter or command line option +.br + 2 error while (un)loading a module +.br + 3 given module pair isn't compatible +.br + 4 error while looking for module(s) +.br + + + +.SH AUTHORS +.B tcmodchain +was written by Francesco Romani +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR transcode (1) +.BR tcmodinfo (1) + diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcmodinfo.1 b/debian/transcode/transcode-1.1.7/docs/man/tcmodinfo.1 new file mode 100644 index 00000000..d2672a91 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcmodinfo.1 @@ -0,0 +1,137 @@ +.TH tcmodinfo 1 "21th January 2003" "tcmodinfo(1)" +.SH NAME +tcmodinfo \- Get and Set information in transcode modules +.SH SYNOPSIS +.na +.B tcmodinfo +[ +.B -i +.I name +] [ +.B -m +.I path +] [ +.B -t +.I type +] [ +.B -M +.I param +] [ +.B -C +.I param +] [ +.B -s +.I socket +] [ +.B -p +] [ +.B -d +.I verbosity +] [ +.B -v +] +.SH COPYRIGHT +\fBtcmodinfo\fP is Copyright (C) by Tilmann Bitterberg/Transcode Team +.SH DESCRIPTION +.B tcmodinfo +loads a supplied transcode(1) module and prints its parameters, or +inquiry about default settings. It can also connect to transcode through +a socket to do runtime configuration of transcode and its filters. +Anyway, this last feature may be moved to some other helper program +in future releases. +.SH OPTIONS +.TP +\fB-i\fP \fIname\fP +Specify the name of the module. \fIName\fP is specified without the prefix +.B (i.e., filter_)_ +and without the suffix +.B \.so +So if you want information about filter_smooth.so, just supply +.B smooth +.TP +\fB-m\fP \fIpath\fP +Look in \fIPath\fP instead of the compiled-in module path for a module. +.TP +\fB-t\fP \fItype\fP +Specify the \fIType\fP of module to load. Default is filter modules. +In current (1.1.0) release, tcmodinfo support 'filter', 'encode' and 'multiplex' +module types. More types will be added in future releases, to cover all +the transcode module range. +.TP +\fB-M\fP \fIparameter\fP +Print out the default setting of given parameter of a given (use -i/-t options +too) module. If parameter isn't known, nothing will be print out. +.br +Caution: -M can't be used together with -C +.TP +\fB-C\fP \fIconfiguration string\fP +Request to configure the module using given configuration string. +Meaning of configuration string is of course module dependent, but format +is always +.br +param1:key1=val1:param2:param3:key2=val2 +.br +This option is used for debug purposes, you usually shouldn't need it. +.br +Caution: -C can't be used together with -M +.TP +\fB-s\fP \fIsocket\fP +Connect to socket \fIsocket\fP. You can use this socket to do runtime +configuration of transcode. For all the boring details about the socket +protocol have a look at /docs/filter\-socket.txt. transcode has to be started +with the \fB\-\-socket\fP option to open the socket. +.TP +\fB-d\fP \fIverbosity\fP +Specify the verbosiness level to use, like transcode does. Default value +is 1 (TC_INFO verbosiness). +.TP +.B -p +Print the compiled-in module path and exit. +.TP +.B -v +Print version information and exit. +.SH EXAMPLES +The command +.PP +.B tcmodinfo \-i smooth +.PP +prints information about the smooth filter. +.PP +.B tcmodinfo \-i levels -t filter +.PP +same as above for levels filter (-t filter it's the default) +.PP +.B tcmodinfo \-i raw -t multiplex +.PP +same as above for raw multiplexor +.PP +.B tcmodinfo \-i xvid -t encode +.PP +same as above for XviD encoder +.PP +.B transcode \-\-socket /tmp/tc\-socket & +.br +.B echo help | tcmodinfo \-s /tmp/tc\-socket +.PP +prints the socket help text and exits. +.PP +.B tcmodinfo \-s /tmp/tc\-socket +.PP +Will drop you into an interactive "shell" where you can talk to the socket. +.SH AUTHORS +.B tcmodinfo +was written by Tilmann Bitterberg +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR avimerge (1), +.BR avisplit (1), +.BR tccat (1), +.BR tcdecode (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR transcode (1) + diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcprobe.1 b/debian/transcode/transcode-1.1.7/docs/man/tcprobe.1 new file mode 100644 index 00000000..eee50eae --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcprobe.1 @@ -0,0 +1,127 @@ +.TH tcprobe 1 "12th October 2003" "tcprobe(1)" +.SH NAME +tcprobe \- probe multimedia streams from medium and print information on the +standard output +.SH SYNOPSIS +.TP +.B tcprobe +.B -i +.I name +[ +.B -B +] [ +.B -M +] [ +.B -T +.I title +] [ +.B -b +.I bitrate +] [ +.B -H +.I n +] [ +.B -f +.I seekfile +] [ +.B -d +.I verbosity +] [ +.B -v +] +.SH COPYRIGHT +\fBtcprobe\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B tcprobe +is part of and usually called by \fBtranscode\fP. +.br +However, it can also be used independently. +.br +\fBtcprobe\fP reads source (from stdin if not explicitely defined) and +prints on the standard output. +.SH OPTIONS +.IP "\fB-i \fIname\fP" +Specify input source. If ommited, \fIstdin\fP is assumed. +.br +You can specify a file, directory, device, mountpoint or host address +as input source. \fBtcprobe\fP usually handles the different types +correctly. +.IP "\fB-B\fP" +Binary output to stdout for use in transcode. +.IP "\fB-M\fP" +Use EXPERIMENTAL mplayer probe, useful for streams that tcprobe doesn't +recognize elsewhere. With this option enabled, tcprobe merely acts as +a frontend for mplayer; of course mplayer binary needs to be installed +and avalaible somewhere in PATH. +.IP "\fB-T \fItitle\fP" +Probe for DVD +.I title +.IP "\fB-H\fP \fIn\fP" +This option tells \fBtcprobe\fP to scan \fIn\fP MB of input data. Default +is to scan 1 MB. To detect all subtitles and audio tracks (if available) it is +highly recommended that this \fIn\fP should be at least increased to 10 or even +higher. Very often only some audio tracks start during the first MB of a VOB or +DVD file so transcode cannot detect them if not called with a higher value. +Please note that transcode(1) has a similar -H option as well which has the +same meaning. +.IP "\fB-s\fP \fIn\fP" +Skip the first \fIn\fP bytes of the input stream. Default is to skip no bytes. +.IP "\fB-b\fP \fIbitrate\fP" +Set audio encoder bitrate to \fIbitrate\fP +.IP "\fB-f \fIseekfile\fP" +Read index/seek information from \fIseekfile\fP. This is especially useful for +AVI files when it takes a long time to probe when there is no index in the AVI +available. Also see aviindex(1). +.IP "\fB-d\fP \fIlevel\fP" +With this option you can specify a bitmask to enable different levels +of verbosity (if supported). You can combine several levels by adding the +corresponding values: + +QUIET 0 + +INFO 1 + +DEBUG 2 + +STATS 4 + +WATCH 8 + +FLIST 16 + +VIDCORE 32 + +SYNC 64 + +COUNTER 128 + +PRIVATE 256 +.IP "\fB-v\fP" +Print version information and exit. +.SH NOTES +\fBtcprobe\fP is a front end for probing various source types and is used in \fBtranscode\fP's import modules. +.SH EXAMPLES +The command +.B tcprobe -i foo.avi +will print interesting information about the AVI file itself and its video and +audio content. +.PP +.SH AUTHORS +.B tcprobe +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR aviindex (1), +.BR avifix (1), +.BR avisync (1), +.BR avimerge (1), +.BR avisplit (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR tccat (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcdecode (1), +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcpvmexportd.1 b/debian/transcode/transcode-1.1.7/docs/man/tcpvmexportd.1 new file mode 100644 index 00000000..2909f2d3 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcpvmexportd.1 @@ -0,0 +1,96 @@ +.TH tcpvmexportd 1 "8th August 2003" "tcpvmexportd(1)" +.SH NAME +tcpvmexportd \- transcode PVM3 export interface +.SH SYNOPSIS +.na +.B tcpvmexportd +.BI -s|-m +[ +.BI options +] +.SH COPYRIGHT +\fBtcpvmexportd\fP is Copyright (C) by Malanchini Marzio +.SH DESCRIPTION +.B tcpvmexportd +This is the frontend for all the activity of export_pvm module: the program is spawned on all cluster hosts and wait to do the encode work. +.SH OPTIONS +.TP +\fB-s\fP +Start tcpvmexportd in slave mode (internal use of export_pvm) [default]. +.TP +\fB Sub Options for slave mode\fP + +\fB-j\fP +Start merger process [off]. + +\fB-L\fP +Create only the merge list [off]. + +\fB-c name\fP +Name of slave function req in slave mode [none]. + +\fB-x parameters\fP +Multiplex parameters [none]. + +\fB-1 param\fP +First parameter to pass to the slave function [null]. + +\fB-2 param\fP +Second parameter to pass to the slave function [null]. + +\fB-3 param\fP +Third parameter to pass to the slave function [null]. + +\fB-t type\fP +Elab video or audio frame (video|audio|system|multisystem) [video]. + +\fB-f name\fP +Out file name [/tmp/my_file_name] + +\fB-p number\fP +Multipass (0,1,2,3) [0]. + +\fB-M \fP +Enable internal multipass [off]. + +.TP +\fB-m\fP +Start tcpvmexportd in master mode [off]. + +.TP +\fB Sub Options for master mode\fP + +\fB-j\fP +Start the batch merge mode [off]. + +\fB-C\fP +Check the config or merge file [off]. + +\fB-f name\fP +Input file name [/tmp/my_file_name] + +.TP +.B -h +Print help. +.TP +.B -v +Print the version. +.SH EXAMPLES +.PP +Command: +.PP +.B tcpvmexportd \-m -j -f mylistfile.lst +.PP +Run tcpvmexportd in batch merge mode. +.PP +.B tcpvmexportd \-m -C -f mylistfile.lst +.PP +Check the config or the merge file. +.PP +.SH AUTHORS +.B tcpvmexportd +was written by Marzio Malanchini +.br +.SH SEE ALSO +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcscan.1 b/debian/transcode/transcode-1.1.7/docs/man/tcscan.1 new file mode 100644 index 00000000..31f67894 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcscan.1 @@ -0,0 +1,107 @@ +.TH tcscan 1 "23th September 2002" "tcscan(1)" +.SH NAME +tcscan \- scan multimedia streams from medium and print information on the +standard output +.SH SYNOPSIS +.TP +.B tcscan +.B -i +.I name +[ +.B -x +.I codec +] [ +.B -e +.I r[,b[,c]] +] [ +.B -b +.I bitrate +] [ +.B -w +.I num +] [ +.B -f +.I rate +] [ +.B -d +.I verbosity +] [ +.B -v +] +.SH COPYRIGHT +\fBtcscan\fP is Copyright (C) by Thomas Oestreich. +.SH DESCRIPTION +.B tcscan +is part of and usually called by \fBtranscode\fP. +.br +However, it can also be used independently. +.br +\fBtcscan\fP reads source (from stdin if not explicitely defined) and +prints on the standard output. +.SH OPTIONS +.IP "\fB-i \fIname\fP" +Specify input source. If ommited, \fIstdin\fP is assumed. +.br +You can specify a file, directory, device, mountpoint or host address +as input source. \fBtcscan\fP usually handles the different types +correctly. +.IP "\fB-d\fP \fIlevel\fP" +With this option you can specify a bitmask to enable different levels +of verbosity (if supported). You can combine several levels by adding the +corresponding values: + +QUIET 0 + +INFO 1 + +DEBUG 2 + +STATS 4 + +WATCH 8 + +FLIST 16 + +VIDCORE 32 + +SYNC 64 + +COUNTER 128 + +PRIVATE 256 +.IP "\fB-v\fP" +Print version information and exit. +.SH NOTES +\fBtcscan\fP is a front end for scaning various source types and is used in \fBtranscode\fP's import modules. +\fBtcscan\fP does a complete scan of the source to gather information. +.SH EXAMPLES +The command +.B tcscan -i foo.avi +prints header information about the AVI-file itself and lists details on the video and audio content, e.g., keyframes, chunk structure. + +The command +.B cat audio.pcm | tcscan -x pcm -e 48000,16,2 +simply determines the playtime lenghth of the raw audio stream. + +The command +.B tcscan -x mp3 -i input.mp3 +will print the number of chunks in the MP3 file and the average bitrate. +.PP +.SH AUTHORS +.B tcscan +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.SH SEE ALSO +.BR avifix (1), +.BR avisync (1), +.BR avimerge (1), +.BR avisplit (1), +.BR tcprobe (1), +.BR tcscan (1), +.BR tccat (1), +.BR tcdemux (1), +.BR tcextract (1), +.BR tcdecode (1), +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/tcxmlcheck.1 b/debian/transcode/transcode-1.1.7/docs/man/tcxmlcheck.1 new file mode 100644 index 00000000..d1703ea7 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/tcxmlcheck.1 @@ -0,0 +1,66 @@ +.TH tcxmlcheck 1 "29th June 2003" "tcxmlcheck(1)" +.SH NAME +tcxmlcheck \- Check information in smil input file +.SH SYNOPSIS +.na +.B tcxmlcheck +[ +.BI options +] [ +.BI - +] +.SH COPYRIGHT +\fBtcxmlcheck\fP is Copyright (C) by Malanchini Marzio +.SH DESCRIPTION +.B tcxmlcheck +Check a smil input file. Most of the options are used by transcode at run time. +.SH OPTIONS +.TP +\fB-i\fP \fIname\fP +Specify the name of the input video/audio smil file [stdin]. +.TP +\fB-p\fP \fIname\fP +Specify the name of the ausiliary audio smil file [none] +.TP +\fB-B\fP +Binary output to stdout (used by transcode) [off] +Force to print to stdout the vob structure of the smil file +.TP +.B -S +Write stdin into shared memory (used by transcode)[off]. +This is used by transcode at run time to store the vob information that will be modified by calling \fBtcxmlcheck\fP with the -V or -A options. +.TP +.B -V +Check only video smil file [off]. +This is used by transcode at run time: it read the smil file to override some information in the vob structure. +.TP +.B -A +Check only ausiliary audio smil file [off]. +This is used by transcode at run time: it read the smil file to override some information in the vob structure. +.TP +.B -v +Print the version +.SH EXAMPLES +.PP +Command: +.PP +.B tcxmlcheck \-i filename.smil +.PP +Return \fB0\fP if the input file is correct, \fB1\fP with an error message in the other cases. +.PP +.B tcxmlcheck -i filename.smil -S -B -V +.PP +Analyze the \fBfilename.smil\fP and store the vob structure into share memory (used only by transcode at run time). +.PP +.PP +.B tcxmlcheck -i filename.smil -B -V +.PP +Retrive the content from the share memory related to \fBfilename.smil\fP (used only by transcode at run time). +.PP +.SH AUTHORS +.B tcxmlcheck +was written by Marzio Malanchini +.br +.SH SEE ALSO +.BR transcode (1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/transcode.1 b/debian/transcode/transcode-1.1.7/docs/man/transcode.1 new file mode 100644 index 00000000..e054d38b --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/transcode.1 @@ -0,0 +1,1660 @@ +.\" Title: transcode +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/> +.\" Date: 14th July 2008 +.\" Manual: 14th July 2008 +.\" Source: transcode(1) +.\" +.TH "TRANSCODE" "1" "14th July 2008" "transcode(1)" "14th July 2008" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +transcode \- LINUX video stream processing tool +.SH "SYNOPSIS" +.HP 10 +\fBtranscode\fR \-i\ \fIname\fR [\-o\ \fIname\fR] [\-y\ \fIvmod,amod\fR] [\-w\ \fIvbitrate\fR\ [\ \fI,vkeyframes\fR\ [\ \fI,vcrispness\fR\ ]\ ]] [\-a\ \fIatrack\fR\ [\ \fI,vtrack\fR\ ]] [\-b\ \fIabitrate\fR\ [\ \fI,is_vbr\fR\ [\ \fI,quality\fR\ [\ \fI,mode\fR\ ]\ ]\ ]] [\-M\ \fIdemuxer_mode\fR] [\-F\ \fIcodec_string\fR] [\fIother\fR\ \fIoptions\fR] +.SH "QUICK SUMMARY" +.PP + +\fBtranscode\fR +supports a huge range of options, as described in detail in further section\&. Only one option is mandatory: +\fB\-i name\fR, for supplying the input main (video) source\&. All other options are discretionary and they can be skipped\&. Most commonly needed options are +\fB\-o\fR, +\fB\-y\fR, +\fB\-w\fR, +\fB\-a\fR, +\fB\-b\fR, +\fB\-M\fR, +\fB\-F\fR +and a fair number of transcode session needs a little more than those\&. See section below for full description of all transcode options\&. To inspect the properties of a module, such as their parameters or the help text, use the \'tcmodinfo\' tool\&. +.SH "DESCRIPTION" +.PP + +\fBtranscode\fR +is a linux text\-console utility for video stream processing, running on a platform that supports shared libraries and threads\&. +.PP +It supports a huge range of options, as described in detail in further section\&. Only one option is mandatory: +\fB\-i name\fR, for supplying the input main (video) source\&. All other options are discretionary and they can be skipped\&. Most commonly needed options are +\fB\-o\fR, +\fB\-y\fR, +\fB\-w\fR, +\fB\-a\fR, +\fB\-b\fR, +\fB\-M\fR, +\fB\-F\fR +and a fair number of transcode session needs a little more than those\&. See section below for full description of all transcode options\&. +.PP +Decoding and encoding is done by loading modules that are responsible for feeding transcode with raw video/audio streams (import modules) and encoding the frames (export modules)\&. +.PP +It supports elementary video and audio frame transformations, including de\-interlacing or fast resizing of video frames and loading of external filters\&. +.PP +A number of modules are included to enable import of DVDs on\-the\-fly, MPEG elementary (ES) or program streams (VOB), MPEG video, Digital Video (DV), YUV4MPEG streams, NuppelVideo file format, AVI based codecs and raw or compressed (pass\-through) video frames and export modules for writing DivX;\-), XviD, DivX 4\&.xx/5\&.xx or uncompressed AVI and raw files with MPEG, AC3 (pass\-through) or PCM audio\&. +.PP +Additional export modules to write single frames (PPM) or YUV4MPEG streams are available, as well as an interface import module to the avifile library\&. +.PP +It\'s modular concept is intended to provide flexibility and easy user extensibility to include other video/audio codecs or filetypes\&. A set of tools is included to demux (tcdemux), extract (tcextract) and decode (tcdecode) the sources into raw video/audio streams for import, probing (tcprobe) and scanning (tcscan) your sources and to enable post\-processing of AVI files, fixing AVI file header information (avifix), merging multiple files (avimerge), splitting large AVI files (avisplit) to fit on a CD and avisync to correct AV\-offsyncs\&. +.SH "OPTIONS" +.PP +\fB\-A \fR +.RS 4 +use AC3 as internal audio codec [off]\&. Only pass\-through supported\&. +.RE +.PP +\fB\-B \fR \fIn[,m[,M]]\fR +.RS 4 +resize to height\-\fIn\fR*\fIM\fR +rows [,width\-\fIm\fR*\fIM\fR] columns [off,32]\&. +\fIM\fR +must be one of 8, 16 or 32\&. It makes no difference which M you use\&. You might look at the +\fIfast\fR +flag of the +\fB\-Z\fR +option if you don not want to calculate +\fIn\fR +and +\fIm\fR +yourself\&. +.RE +.PP +\fB\-C \fR \fImode\fR +.RS 4 +enable anti\-aliasing mode (1\-3) [off]\&. +.PP +1 +.RS 4 +de\-interlace effects only +.RE +.PP +2 +.RS 4 +resize effects only +.RE +.PP +3 +.RS 4 +process full frame (slow) +.RE +.RE +.PP +\fB\-D \fR \fInum\fR +.RS 4 +sync video start with audio frame num [0]\&. +.RE +.PP +\fB\-E \fR \fIr[,b[,c]]\fR +.RS 4 +audio output samplerate [Hz], bits per sample and channels [as input]\&. The option "\-J resample" must be provided for export modules not capable of re\-sampling\&. Samplerate and bits per sample can be specified as 0 to mean "same as input"; this allows converting from stereo to mono while leaving the other parameters alone (\-E 0,0,1)\&. +.RE +.PP +\fB\-F \fR \fIcodec_string\fR +.RS 4 +encoder parameter strings [module dependent]\&. The \-F parameter has different meanings for different export modules\&. Those meanings are documented in +\fItranscode_export(1)\fR +manual page\&. +.RE +.PP +\fB\-G \fR \fIval\fR +.RS 4 +Gamma correction (0\&.0\-10\&.0) [off]\&. A value of 1\&.0 does not change anything\&. A value lower than 1\&.0 will make the picture "brighter", a value above 1\&.0 will make it "darker"\&. +.RE +.PP +\fB\-H \fR \fIn\fR +.RS 4 +auto\-probe +\fIn\fR +MB of source (0=disable) default [1]\&. Use a higher value than the default to detect all subtitles in the VOB\&. +.RE +.PP +\fB\-I \fR \fImode\fR +.RS 4 +enable de\-interlacing mode (1\-5) [off]\&. +.PP +1 +.RS 4 + +\fI"interpolate scanlines"\fR +linear interpolation (takes the average of the surronding even rows to determine the odd rows), and copies the even rows as is\&. +.RE +.PP +2 +.RS 4 + +\fI"handled by encoder"\fR +tells the encoding code to handle the fact that the frames are interlaced\&. Most codecs do not handle this\&. +.RE +.PP +3 +.RS 4 + +\fI"zoom to full frame"\fR +drops to to half size, then zooms out\&. This can cause excessive blurring which is not always unwanted\&. On the other hand results are quite good\&. +.RE +.PP +4 +.RS 4 + +\fI"drop field / half height"\fR +drop every other field and keep half height\&. +.RE +.PP +5 +.RS 4 + +\fI"interpolate scanlines / blend frames"\fR +linear blend (similar to \-vop pp=lb in mplayer) this, like linear blend calculates the odd rows as the average of the surrounding even rows, and also calculates the even rows as an average of the original even rows and also calculates the even rows as an average of the original odd rows and averages the calculated and original rows\&. Something like avg (avg(row1,row3), avg(row2, row4)) +.RE +.RE +.PP +\fB\-J \fR \fIfilter1[,filter2[,\&.\&.\&.]]\fR +.RS 4 +apply external filter plugins [off]\&. The avalaible import modules and their options are documented into the +\fItranscode_filter(1)\fR +manual page\&. +\fINote:\fR +You can specify more than one \-J argument\&. The order of filter arguments specify in which order the filters are applied\&. Note also, for transcode internally it makes no difference whether you do "\-J filter1 \-J filter2" or "\-J filter1,filter2"\&. Use \'tcmodinfo \-i +\fINAME\fR\' to get more information about the filter_\fINAME\fR\&. Not all filters support this but most of them do\&. Some of the filter plugins have additional documentation in the docs/ directory\&. +.RE +.PP +\fB\-L \fR \fIn\fR +.RS 4 +seek to VOB stream offset +\fIn\fRx2kB default [0]\&. This option is usually calculated automatically when giving \-\-nav_seek and \-c\&. +.RE +.PP +\fB\-K \fR +.RS 4 +enable black/white by removing colors mode (grayscale) [off]\&. Please note this does not necessarily lead to a smaller image / better compression\&. For YUV mode, this is done by emptying the chroma planes, for RGB mode a weightend grayscale value is computed\&. +.RE +.PP +\fB\-M \fR \fImode\fR +.RS 4 +demuxer PES AV sync modes (0\-4) [1]\&. +.PP +\fIOverview\fR +.RS 4 +The demuxer takes care that the right video frames go together with the right audio frame\&. This can sometimes be a complex task and transcode tries to aid you as much as possible\&. +\fIWARNING:\fR +It does make a difference if you (the user) specifies a demuxer to use or if transcode resp\&. tcprobe(1) chooses the one which it thinks is right for your material\&. This is done on purpose to avoid mystic side\-effects\&. So think twice, wether you specify a demuxer or let transcode choose one or you might end up with an off\-sync result\&. +.RE +.PP +0 +.RS 4 +Pass\-through\&. Do not mess with the stream, switch off any synchronization/demuxing process\&. +.RE +.PP +1 +.RS 4 +PTS only (default)\&. Synchronize video and audio by inspecting PTS/DTS time stamps of audio and video\&. Preferred mode for PAL VOB streams and DVDs\&. +.RE +.PP +2 +.RS 4 +NTSC VOB stream synchronization feature\&. This mode generates synchronization information for transcode by analyzing the frame display time\&. +.RE +.PP +3 +.RS 4 +(like \-M 1): sync AV at initial PTS, but invokes "\-D/\-\-av_fine_ms" options internally based on "tcprobe" PTS analysis\&. PTS stands for Presentation Time Stamp\&. +.RE +.PP +4 +.RS 4 +(like \-M 2): initial PTS / enforce frame rate, with additional frame rate enforcement (for NTSC)\&. +.RE +.RE +.PP +\fB\-N \fR \fIformat\fR +.RS 4 +select export format\&. Default is mp3 for audio, and module\-dependant format for video\&. This option has two different behaviours and accepts two different set of options, as side\-effect of ongoing export module transition\&. For old\-style modules (current default, as found in 1\&.0\&.x series), argument is audio format ID has hexadecimal value: see below for a list of recognized IDs\&. Default id, so default format for audio exported track, is MP3 (0x55)\&. If you are using, the transcode\'s the new\-style encode/multiplex modules (still under development, see the encode and multiplex directories), argument is a comma\-separated pair of export format names\&. Use tcmodinfo tool to check out what new\-style export module support what formats\&. +.sp +Available format for old\-style behaviour are: +.PP +\fI0x1\fR +.RS 4 +PCM uncompressed audio +.RE +.PP +\fI0x50\fR +.RS 4 +MPEG layer\-2 aka MP2 +.RE +.PP +\fI0x55\fR +.RS 4 +MPEG layer\-3 aka MP3\&. Also have a look at \-\-lame_preset if you intend to do VBR audio\&. +.RE +.PP +\fI0x2000\fR +.RS 4 +AC3 audio +.RE +.PP +\fI0xfffe\fR +.RS 4 +OGG/Vorbis audio +.RE +.RE +.PP +\fB\-O \fR +.RS 4 +skip flushing of buffers at encoder stop [off, do flushing at each stop]\&. +.RE +.PP +\fB\-P \fR \fIflag\fR +.RS 4 +pass\-through flag (0=off|1=V|2=A|3=A+V) [0]\&. Pass\-through for +\fIflag\fR +!= 1 is broken and not a trivial thing to fix\&. +.sp +You can pass\-through DV video, AVI files and MPEG2 video\&. When doing MPEG2 pass\-through (together with the \-y raw module), you can give a requantization factor by using \-w (for example \-w 1\&.5), this will make the MPEG2 stream smaller\&. +.sp +The pass\-through mode is useful for reconstruction of a broken index of an AVI file\&. The \-x ffmpeg import\-module analyzes the compressed bitstream and can detect a keyframe for DIV3, MPEG4 (DivX, XviD, \&.\&.) and other formats\&. It then sets an internal flag which the export module will respect when writing the frame out\&. +.RE +.PP +\fB\-Q \fR \fIn[,m]\fR +.RS 4 +encoding[,decoding] quality (0=fastest\-5=best) [5,5]\&. +.RE +.PP +\fB\-R \fR \fIn[,f1[,f2]]\fR +.RS 4 +enable multi\-pass encoding (0\-3) [0,divx4\&.log,pcm\&.log]\&. +.PP +0 Constant bitrate (CBR) encoding\&. [default] +.RS 4 +The codec tries to achieve constant bitrate output\&. This means, each encoded frame is mostly the same size\&. This type of encoding can help in maintaining constant filling of hardware buffer on set top players or smooth streaming over networks\&. By the way, Constant bitrate is often obtained sacrifying quality during high motion scenes\&. +.RE +.PP +1 Variable bitrate encoding: First pass\&. +.RS 4 +In this mode, the codec analyses the complete sequence in order to collect data that can improve the distribution of bits in a second VBR pass\&. The collected data is written to second sub argument (default: divx4\&.log)\&. This data is codec dependant and cannot be used across codecs\&. It is strongly advised to use the same codec settings for the VBR analysis pass and the VBR encoding pass if you want predictable results\&. +.sp +The video output of the first pass is not of much use and can grow very large\&. It\'s a good idea to not save the video output to a file but directly to /dev/null\&. Usually the bitrate is ignored during first pass\&. +.sp +Disabling audio export makes sense too, so use \-y codec,null\&. It is +\fInot\fR +recommended to disable the audio +\fIimport\fR +because transcode might drop video frames to keep audio and video in sync\&. This is not possible when the audio import is disabled\&. It may lead to the fact that the codec will see a different sequence of frames which effectively renders the log file invalid\&. +.RE +.PP +2 Variable bitrate encoding: Second pass\&. +.RS 4 +The first pass allowed the codec collecting data about the complete sequence\&. During the second pass, the codec will use that data in order to find an efficient bit distribution that respects both the desired bitrate and the natural bitrate curve shape\&. This ensures a good compromise between quality and desired bitrate\&. +.sp +Make sure you activate both sound and video encoding during this pass\&. +.RE +.PP +3 Constant quantizer encoding\&. +.RS 4 +The quantizer is the "compression level" of the picture\&. The lower the quantizer is, the higher is the quality of the picture\&. This mode can help in making sure the sequence is encoded at constant quality, but no prediction can be made on the final bitrate\&. When using this mode, the +\fB\-w\fR +option changes its meaning, it now takes the quantizer ranging from 1 to 31\&. Note that constant quantizer encoding is not supported with some codecs (notably mpeg1/2/4 with \-y ffmpeg)\&. +.RE +.RE +.PP +\fB\-S \fR \fIunit[,s1\-s2]\fR +.RS 4 +process program stream unit[,s1\-s2] sequences [0,all]\&. This option is a bit redundant to \-\-psu*\&. This option lets you specify which units you want to have decoded or skipped\&. At a program stream unit boundary, all (internal) mpeg timers are reset to 0\&. tcprobe will tell you how many units are in one file\&. +.RE +.PP +\fB\-T \fR \fIt[,c[,a]]\fR +.RS 4 +select DVD title[,chapter[,angle]] [1,1,1]\&. Only a single chapter is transcoded\&. Use +\fB\-T\fR +1,\-1 to trancode all chapters in a row\&. You can even specify chapter ranges\&. +.RE +.PP +\fB\-U \fR \fIbase\fR +.RS 4 +process DVD in chapter mode to base\-ch%02d\&.avi [off]\&. +.RE +.PP +\fB\-V \fR \fIformat\fR +.RS 4 +select video layout / colour space for internal processing\&. Possible values for this options are: yuv420p (default), yuv422p, rgb24 +.sp +yuv420p is default because it is most codecs\' internal format so there is no need for conversions\&. Some modules may not support it though: use rgb in that case\&. +.sp +rgb24 is the old (pre\-0\&.6\&.13) transcode internal format\&. Most codecs do not support this format natively and have to convert it to/from YUV first, so only use this option if you\'re really sure or you want to use a module that doesn\'t support YUV\&. +.sp +yuv422p is an experimental feature and a developers playground\&. Not many import, export and filter modules support this colorspace\&. A 4:2:2 colorspace offers much more quality than the consumer oriented 4:2:0 colorspaces like I420/YV12\&. Most equipment in film and video post\-production uses YUV422\&. YUV422 doubles the precision for chroma (color difference) information in the image\&. +.sp +All internal transformations are supported in YUV422 mode (clipping, flipping, zooming, etc)\&. +.RE +.PP +\fB\-W \fR \fIn,m[,nav_file]\fR +.RS 4 +autosplit and process part +\fIn\fR +of +\fIm\fR +(VOB only) [off] +.RE +.PP +\fB\-X \fR \fIn[,m,[M]]\fR +.RS 4 +resize to height+\fIn\fR*\fIM\fR +rows [,width+\fIm\fR*\fIM\fR] columns [off,32]\&. M must be one of 8, 16 or 32\&. It makes no difference which M you use\&. You might look at the +\fIfast\fR +flag of the +\fB\-Z\fR +option if you do not want to calculate +\fIn\fR +and +\fIm\fR +yourself\&. +.RE +.PP +\fB\-Y \fR \fItop[,left[,bottom[,right]]]\fR +.RS 4 +select (encoder) frame region by clipping border\&. Negative values add a border [off]\&. +.RE +.PP +\fB\-Z \fR \fIwidthxheight[,fast|interlaced]\fR +.RS 4 +resize to +\fIwidth\fR +columns, +\fIheight\fR +rows with filtering [off,notfast,notinterlaced]\&. If +\fIfast\fR +is given, transcode will calculate the parameters for +\fB\-X\fR +and/or +\fB\-B\fR\&. The file +\fBfast\fR +can only be used when the import and export geometry of an image is a multiple of 8\&. +.sp +In fast mode, a faster but less precise resizing algorithm will be used resulting in a slightly less good quality\&. Beside this (small) drawback, it is worth a try\&. +.sp +If +\fIinterlaced\fR +is given, transcode will assume the frame is interlaced when resizing, and resize each field independently\&. This will give better results on interlaced video, but is incompatible with fast mode\&. Also, the height (both old and new) must be a multiple of 4\&. +.sp +It is also possible to omit +\fIwidth\fR +OR +\fIheight\fR\&. In this case, transcode will calculate the missing value using the import aspect ratio\&. The new value will be aligned to be a multiple of 8\&. Using an additional +\fIfast\fR +or +\fIinterlaced\fR +is also possible\&. +.sp +Examples (assume input is a 16:9 coded file at 720x576): +.sp +.RS 4 +.nf + \-Z 576x328 uses filtered zoom\&. + \-Z 576x328,fast uses fast zoom\&. + \-Z 576x,fast guess 328 and do fast zoom\&. + \-Z x328,interlaced guess 576 and do interlaced zoom\&. + +.fi +.RE +If you also set +\fB\-\-export_prof\fR, you can use just "fast" to indicate that fast resizing is wanted (likewise with "interlaced")\&. +.RE +.PP +\fB\-a \fR \fIach[,vch]\fR +.RS 4 +extract audio[,video] track for encoding\&. +.RE +.PP +\fB\-b \fR \fIb[,v,[q,[m]]]\fR +.RS 4 +audio encoder bitrate kBits/s[,vbr[,quality[,mode]]] [128,0,5,0] +.sp +The +\fImode\fR +parameter specifies which modus lame should use for encoding\&. Available modes are: +.PP +0 +.RS 4 +Joint Stereo (default) +.RE +.PP +1 +.RS 4 +Full stereo +.RE +.PP +2 +.RS 4 +Mono +.RE +.RE +.PP +\fB\-c \fR \fIf1\-f2[,f3\-f4[, \&.\&.\&. ] ]\fR +.RS 4 +encode only frames +\fIf1\-f2\fR +[and +\fIf3\-f4\fR]\&. Default is to encode all available frames\&. Use this and you\'ll get statistics about remaining encoding time\&. The +\fIf[N]\fR +parameters may also be timecodes in the HH:MM:SS\&.FRAME format\&. Example: +.sp +.RS 4 +.nf + \-c 500\-0:5:01,:10:20\-1:18:02\&.1 + +.fi +.RE +Will encode only from frame 500 to 5 minutes and 1 second and from 10 min, 20 sec to 1 hour, 18 min, 2 sec and one frame\&. +.sp +Note that transcode starts counting frames at +0 +and excludes the last frame specified\&. That means that "\fB\-c\fR +0\-100" will encoded 100 frames starting at frame +0 +up to frame +99 +.RE +.PP +\fB\-d \fR +.RS 4 +swap bytes in audio stream [off]\&. In most cases, DVD PCM audio tracks require swapping of audio bytes +.RE +.PP +\fB\-e \fR \fIr[,b[,c]]\fR +.RS 4 +PCM audio stream parameter\&. Sample rate [Hz], bits per sample and number of channels [48000,16,2]\&. Normally this is autodetected\&. +.RE +.PP +\fB\-f \fR \fIrate[,frc]\fR +.RS 4 +import video frame rate[,frc] [25\&.000,0]\&. If +\fIfrc\fR +(frame rate code) is specified, transcode will calculate the precise frames per second internally\&. Valid values for +\fIfrc\fR +are: +.PP +1 +.RS 4 +23\&.976 (24000/1001\&.0) +.RE +.PP +2 +.RS 4 +24 +.RE +.PP +3 +.RS 4 +25 +.RE +.PP +4 +.RS 4 +29\&.970 (30000/1001\&.0) +.RE +.PP +5 +.RS 4 +30 +.RE +.PP +6 +.RS 4 +50 +.RE +.PP +7 +.RS 4 +59\&.940 (2 * 29\&.970) +.RE +.PP +8 +.RS 4 +60 +.RE +.PP +9 +.RS 4 +1 +.RE +.PP +10 +.RS 4 +5 +.RE +.PP +11 +.RS 4 +10 +.RE +.PP +12 +.RS 4 +12 +.RE +.PP +13 +.RS 4 +15 +.RE +.RE +.PP +\fB\-g \fR \fIWidthxHeight\fR +.RS 4 +video stream frame size [720x576]\&. +.RE +.PP +\fB\-h\fR +.RS 4 +print out usage information\&. +.RE +.PP +\fB\-i \fR \fIname\fR +.RS 4 +input file/directory/device/mountpoint/host name, default is [/dev/zero]\&. +.RE +.PP +\fB\-j \fR \fItop[,left[,bottom[,right]]]\fR +.RS 4 +select frame region by clipping border\&. Negative values add a border [off]\&. +.RE +.PP +\fB\-k \fR +.RS 4 +swap red/blue (Cb/Cr) in video frame [off]\&. Use if people have blue faces\&. +.RE +.PP +\fB\-l \fR +.RS 4 +mirror video frame [off]\&. +.RE +.PP +\fB\-m \fR \fIfile\fR +.RS 4 +write audio stream to separate file [off]\&. +.RE +.PP +\fB\-n \fR \fI0xnn\fR +.RS 4 +import audio format id [0x2000]\&. Normally, this is autodetected\&. +.RE +.PP +\fB\-o \fR \fIfile\fR +.RS 4 +output file name, default is [/dev/null]\&. +.RE +.PP +\fB\-p \fR \fIfile\fR +.RS 4 +read audio stream from separate file [off]\&. +.RE +.PP +\fB\-q \fR \fIdebuglevel\fR +.RS 4 +possible values for debuglevel: +.PP +0 +.RS 4 +QUIET +.RE +.PP +1 +.RS 4 +INFO +.RE +.PP +2 +.RS 4 +DEBUG +.RE +.PP +4 +.RS 4 +STATS +.RE +.PP +8 +.RS 4 +WATCH +.RE +.PP +16 +.RS 4 +FLIST +.RE +.PP +32 +.RS 4 +VIDCORE +.RE +.PP +64 +.RS 4 +SYNC +.RE +.PP +128 +.RS 4 +COUNTER +.RE +.PP +256 +.RS 4 +PRIVATE +.RE +.RE +.PP +\fB\-r \fR \fIn[,m]\fR +.RS 4 +reduce video height/width by n[,m] [off]\&. Example: +\fB\-r\fR +2 will rescale the framesize of a 720x576 file to 360x288\&. +.RE +.PP +\fB\-s \fR \fIgain,[center,[front,[rear]]]\fR +.RS 4 +increase volume of audio stream by gain,[center,front,rear] default [off,1,1,1]\&. +.RE +.PP +\fB\-t \fR \fIn,base\fR +.RS 4 +split output to +\fIbase\fR%03d\&.avi with +\fIn\fR +frames [off]\&. +.RE +.PP +\fB\-u \fR \fIm[,n]\fR +.RS 4 +use +\fIm\fR +framebuffer[,\fIn\fR +threads] for AV processing [10,1]\&. +.RE +.PP +\fB\-v \fR +.RS 4 +print version\&. +.RE +.PP +\fB\-w \fR \fIb[,k[,c]]\fR +.RS 4 +encoder bitrate[,keyframes[,crispness]] [(6000 for MPEG 1/2, 1800 for others),250,100]\&. +.RE +.PP +\fB\-\-video_max_bitrate \fR \fIb\fR +.RS 4 +Use +\fIb\fR +as maximal bitrate (kbps) when encoding variable bitrate streams\&. +.RE +.PP +\fB\-x \fR \fIvmod[,amod]\fR +.RS 4 +video[,audio] import modules [auto,auto]\&. If omitted, transcode will probefor appropriate import modules\&. The avalaible import modules and their options are documented into the +\fItranscode_import(1)\fR +manual page\&. +.RE +.PP +\fB\-y \fR \fIvmod[,amod[,mmod]]\fR +.RS 4 +video[,audio[,multiplex]] export modules [null]\&. If omitted, transcode will encode to the +\fInull\fR +module\&. If a multiplex module is given, transcode will use the new\-style encode/multiplex modules (still under development, see the encode and multiplex directories); if no multiplex module is given, the traditional export modules will be used\&. The avalaible export, encoder and multiplexor modules and their options are documented into the +\fItranscode_export(1)\fR +manual page\&. +.RE +.PP +\fB\-\-accel \fR \fItype\fR +.RS 4 +enforce experimental IA32 acceleration for type [autodetect]\&. +\fItype\fR +may be one of +.PP +\fIC\fR +.RS 4 +No acceleration +.RE +.PP +\fIia32asm\fR +.RS 4 +plain x86 assembly +.RE +.PP +\fImmx\fR +.RS 4 +MMX instruction set +.RE +.PP +\fI3dnow\fR +.RS 4 +3DNow! instruction set +.RE +.PP +\fIsse\fR +.RS 4 +SSE instruction set +.RE +.PP +\fIsse2\fR +.RS 4 +SSE2 instruction set +.RE +.RE +.PP +\fB\-\-avi_limit \fR\fIN\fR +.RS 4 +split/rotate output AVI file after N MB [2048]\&. +.RE +.PP +\fB\-\-avi_comments \fR \fIF\fR +.RS 4 +Read AVI header comments from file +\fIF\fR +[off]\&. The AVI file format supports so\-called tomb\-stone data\&. It can be used to write annotations into the AVI file\&. +.sp +See the file +\fIdocs/avi_comments\&.txt\fR +for a sample input file with all tags\&. When the file is read, empty lines and lines starting with \'#\' are ignored\&. The syntax is: "TAG<space>STRING"\&. The order of the tags does not matter\&. If a tag has no string following it, it is ignored\&. That means, you can use the file docs/avi_comments\&.txt as input and only fill out the fields you want\&. +.sp +A very simple example is: +.sp +.RS 4 +.nf + \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-snip\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- + INAM My 1st Birthday + ISBJ My first steps! + IART My proud family + \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-snip\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- + +.fi +.RE +Keep in mind that there is no endless space in the AVI header, most likely its around 1000 bytes\&. +.RE +.PP +\fB\-\-zoom_filter \fR \fIstring\fR +.RS 4 +use filter string for video resampling +\fB\-Z\fR +[Lanczos3] The following filters are available: +.PP +Bell +.RS 4 +.RE +.PP +Box +.RS 4 +.RE +.PP +Lanczos3 (default) +.RS 4 +.RE +.PP +Mitchell +.RS 4 +.RE +.PP +Hermite +.RS 4 +.RE +.PP +B_spline +.RS 4 +.RE +.PP +Triangle +.RS 4 +.RE +.RE +.PP +\fB\-\-cluster_percentage \fR +.RS 4 +use percentage mode for cluster encoding +\fB\-W\fR> [off] +.RE +.PP +\fB\-\-cluster_chunks \fR \fIa\-b\fR +.RS 4 +process chunk range instead of selected chunk [off] +.RE +.PP +\fB\-\-export_asr \fR \fIC\fR +.RS 4 +set export aspect ratio code +\fIC\fR +[as input] Valid codes for +\fIC\fR +are: +.PP +1 +.RS 4 +1:1 +.RE +.PP +2 +.RS 4 +4:3 +.RE +.PP +3 +.RS 4 +16:9 +.RE +.PP +4 +.RS 4 +2\&.21:1 +.RE +.RE +.PP +\fB\-\-export_prof \fR \fIS\fR +.RS 4 +WARNING: this option will be renamed as +\fB\-\-export_profile\fR +in future releases\&. +.sp +Select an export profile {vcd, svcd, xvcd, dvd} [\-pal|\-ntsc|\-secam]\&. Default is no profile\&. +.sp +If you set this meta option to one of the values below, transcode will adjust some internal paramaters as well as geometry and clipping\&. If no export modules are specified, mpeg2enc for video and mp2enc for audio are used when compiled with mjpegtools support\&. +.sp +Valid values for +\fIS\fR +are e\&.g\&. vcd, vcd\-pal, vcd\-ntsc, svcd, svcd\-pal, \&.\&.\&. +.sp +xvcd profile is equal to svcd except that it allows for up to 9000 Kbps video bitrate (default is 5000) and arbitrary audio samplerate\&. +.sp +When one of the above is used, transcode will calculate the needed clipping and resizing values for you based on the import and export aspect ratio\&. This is especially handy if you want to encode a 16:9 DVD into a 4:3 SVCD for example\&. Transcode internally then sets \-\-pre_clip to add the black bars ("letterboxing")\&. +.sp +If you use "vcd" instead of "vcd\-pal" or "vcd\-ntsc", transcode will make an educated guess if PAL or NTSC vcd is wanted\&. The same is true for the other profiles\&. When the input file has no aspect ratio information at all, transcode guesses it based on the import frame sizes\&. You can set the import aspect ratio by giving +\fB\-\-import_asr\fR +CODE\&. +.sp +Examples (assume input is a 16:9 coded file at 720x576 (PAL)): +.sp +.RS 4 +.nf + \-\-export_prof svcd clip top/bot \-96; resizes to 480x576 + \-\-export_prof vcd\-ntsc clip top/bot \-96; resizes to 352x240 + +.fi +.RE +This enables simpilified commandlines where transcode tries to set sensible values for mpeg export\&. When you don\'t specify an export module with \-y, mpeg2enc will be used\&. +.sp +.RS 4 +.nf + transcode \-i vob/ \-\-export_prof svcd \-Z fast \-o test + +.fi +.RE +The ffmpeg export module `\-y ffmpeg\' does support profiles as well\&. The module tries to be smart and sets internal ffmpeg parameters which are otherwise quite tricky to find out\&. Usage is similar to the above\&. +.sp +.RS 4 +.nf + transcode \-i vob/ \-\-export_prof dvd \-y ffmpeg \-o test \-m test\&.ac3 + tcmplex \-m d \-i test\&.m2v \-p test\&.ac3 \-o test\&.mpg + +.fi +.RE +.RE +.PP +\fB\-\-export_par \fR \fIC[,N]\fR +.RS 4 +set export pixel aspect ratio to +\fIC\fR[,\fIN\fR]\&. To encode anamorphic material, transcode can encode the target pixel aspect ratio into the file\&. This is NOT the actual aspect ratio of the image, but only the amount by which every single pixel is stretched when played with an aspect ratio aware application, like mplayer\&. +.sp +To encode at non standard aspect ratios, set both +\fIC\fR +and +\fIN\fR\&. E\&.g\&. to make every pixel twice as high as it\'s wide (e\&.g\&. to scale back to normal size after deinterlacing by dropping every second line)\&. +.sp +If +\fIC\fR +and +\fIN\fR +are specified, the value set for +\fIC\fR +does give the pixel aspect ratio of the width and +\fIN\fR +the one for the height\&. If only +\fIC\fR +is specified, the table below applies\&. +.sp +Valid codes for +\fIC\fR +are +.PP +1 +.RS 4 +1:1 No stretching +.RE +.PP +2 +.RS 4 +12:11 5:4 image to 4:3 (ex: 720x576 \-> 768x576) +.RE +.PP +3 +.RS 4 +10:11 3:2 image to 4:3 (ex: 720x480 \-> 640x480) +.RE +.PP +4 +.RS 4 +16:11 5:4 image to 16:9 (ex: 720x576 \-> 1024x576) +.RE +.PP +5 +.RS 4 +40:33 3:2 image to 16:9 (ex: 720x480 \-> 872x480) +.RE +.RE +.PP +\fB\-\-import_asr \fR \fIC\fR +.RS 4 +set import aspect ratio code +\fIC\fR +[autoprobed] +.sp +Valid codes for +\fIC\fR +are +.PP +1 +.RS 4 +1:1 +.RE +.PP +2 +.RS 4 +4:3 +.RE +.PP +3 +.RS 4 +16:9 +.RE +.PP +4 +.RS 4 +2\&.21:1 +.RE +.RE +.PP +\fB\-\-keep_asr \fR +.RS 4 +try to keep aspect ratio (only with \-Z) [off] +.sp +The +\fB\-\-keep_asr\fR +options changes the meaning of +\fB\-Z\fR\&. It tries to fit the video into a framesize specified by +\fB\-Z\fR +by keeping the +\fIoriginal\fR +aspect ratio\&. +.sp +.RS 4 +.nf + +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +\-\-\-480\-\-\-\-\-+ + | | | black | + |720x306 = 2\&.35:1| \-> \-Z 480x480 \-\-keep_asr \->|\-\-\-\-\-\-\-\-\-\-\-4 + | | | 480x204 8 + +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ |\-\-\-\-\-\-\-\-\-\-\-0 + | black | + +\-\-\-\-\-\-\-\-\-\-\-+ + +.fi +.RE +Consider +\fB\-\-keep_asr\fR +a wrapper for calculating +\fB\-Y\fR +options and +\fB\-Z\fR +options\&. +.RE +.PP +\fB\-\-mplayer_probe \fR +.RS 4 +use external mplayer binary to probe stream, reset default import modules as mplayer ones [off]\&. Default is to use internal probing code\&. Using this option without mplayer import modules (\fB\-x\fR +mplayer) can lead to unpredictable and possibly wrong results\&. +.RE +.PP +\fB\-\-quantizers \fR \fImin,max\fR +.RS 4 +set encoder min/max quantizer\&. This is meaningfull only for video codecs of MPEG family\&. For other kind of codecs, this options is harmless\&. [2,31] +.RE +.PP +\fB\-\-divx_rc \fR \fIp,rp,rr\fR +.RS 4 +divx encoder rate control parameter [2000,10,20] +.RE +.PP +\fB\-\-divx_vbv_prof \fR \fIN\fR +.RS 4 +divx5 encoder VBV profile (0=free\-5=hiqhq) [3]\&. Sets a predefined profile for the Video Bitrate Verifier\&. If +\fIN\fR +is set to zero, no profile is applied and the user specified values from +\fB\-\-divx_vbv\fR +are used\&. +.sp +Valid profiles +.PP +0 +.RS 4 +Free/No profile ( Use supplied values ) +.RE +.PP +1 +.RS 4 +Handheld ( 320, 16, 3072 ) +.RE +.PP +2 +.RS 4 +Portable ( 1920, 64, 12288 ) +.RE +.PP +3 +.RS 4 +Home Theatre ( 10000, 192, 36864 ) +.RE +.PP +4 +.RS 4 +High Definition ( 20000, 384, 73728 ) +.RE +.RE +.PP +\fB\-\-divx_vbv \fR \fIbr,sz,oc\fR +.RS 4 +divx5 encoder VBV params (bitrate,size,occup\&.) [10000,192,36864] These parameters are normally set through the profile parameter +\fB\-\-divx_vbv_prof\fR\&. Do not mess with theses value unless you are absolutely sure of what you are doing\&. Transcode internally multiplicates vbv_bitrate with 400, vbv_size with 16384 and vbv_occupancy with 64 to ensure the supplied values are multiples of what the encoder library wants\&. +.RE +.PP +\fB\-\-export_fps \fR \fIrate[,frc]\fR +.RS 4 +set export frame rate (and code) [as input]\&.Valid values for +\fIfrc\fR +are +.sp +frc rate +.PP +1 +.RS 4 +23\&.976 (24000/1001\&.0) +.RE +.PP +2 +.RS 4 +24 +.RE +.PP +3 +.RS 4 +25 +.RE +.PP +4 +.RS 4 +29\&.970 (30000/1001\&.0) +.RE +.PP +5 +.RS 4 +30 +.RE +.PP +6 +.RS 4 +50 +.RE +.PP +7 +.RS 4 +59\&.940 (2 * 29\&.970) +.RE +.PP +8 +.RS 4 +60 +.RE +.PP +9 +.RS 4 +1 +.RE +.PP +10 +.RS 4 +5 +.RE +.PP +11 +.RS 4 +10 +.RE +.PP +12 +.RS 4 +12 +.RE +.PP +13 +.RS 4 +15 +.RE +.RE +.PP +\fB\-\-export_frc \fR \fIF\fR +.RS 4 +set export frame rate code +\fIF\fR +[as input]\&. +\fIObsolete\fR, use +\fB\-\-export_fps\fR +0,F +.RE +.PP +\fB\-\-hard_fps \fR +.RS 4 +disable smooth dropping (for variable fps clips) [off]\&. See /docs/framerate\&.txt for more information\&. +.RE +.PP +\fB\-\-pulldown \fR +.RS 4 +set MPEG 3:2 pulldown flags on export [off] +.RE +.PP +\fB\-\-antialias_para \fR \fIw,b\fR +.RS 4 +center pixel weight, xy\-bias [0\&.333,0\&.500] +.RE +.PP +\fB\-\-no_audio_adjust \fR +.RS 4 +disable internal audio frame sample adjustment [off] +.RE +.PP +\fB\-\-no_bitreservoir \fR +.RS 4 +disable lame bitreservoir for MP3 encoding [off] +.RE +.PP +\fB\-\-config_dir \fR \fIdir\fR +.RS 4 +Assume config files are in this +\fIdir\fR\&. This only affects the \-y ffmpeg and \-y xvid4 modules\&. It gives the path where the modules search for their configuration\&. +.RE +.PP +\fB\-\-lame_preset \fR \fIname[,fast]\fR +.RS 4 +use lame preset with +\fIname\fR +[off]\&. Lame features some built\-in presets\&. Those presets are designed to provide the highest possible quality\&. They have for the most part been subject to and tuned via rigorous listening tests to verify and achieve this objective\&. These are continually updated to coincide with the latest developments that occur and as a result should provide you with nearly the best quality currently possible from LAME\&. Any of those VBR presets can also be used in fast mode, using the new vbr algorithm\&. This mode is faster, but its quality could be a little lower\&. To enable the fast mode, append "\fI,fast\fR" +.PP +\fI<N kbps>\fR +.RS 4 +Using this preset will usually give you good quality at a specified bitrate\&. Depending on the bitrate entered, this preset will determine the optimal settings for that particular situation\&. While this approach works, it is not nearly as flexible as VBR, and usually will not reach the same quality level as VBR at higher bitrates\&. ABR\&. +.RE +.PP +\fImedium\fR +.RS 4 +This preset should provide near transparency to most people on most music\&. The resulting bitrate should be in the 150\-180kbps range, according to music complexity\&. VBR\&. +.RE +.PP +\fIstandard\fR +.RS 4 +This preset should generally be transparent to most people on most music and is already quite high in quality\&. The resulting bitrate should be in the 170\-210kbps range, according to music complexity\&. VBR\&. +.RE +.PP +\fIextreme\fR +.RS 4 +If you have extremely good hearing and similar equipment, this preset will provide slightly higher quality than the "standard" mode\&. The resulting bitrate should be in the 200\-240kbps range, according to music complexity\&. VBR\&. +.RE +.PP +\fIinsane\fR +.RS 4 +This preset will usually be overkill for most people and most situations, but if you must have the absolute highest quality with no regard to filesize, this is the way to go\&. This preset is the highest preset quality available\&. 320kbps CBR\&. +.RE +.PP +(taken from \fIhttp://www\&.mp3dev\&.org/mp3/doc/html/presets\&.html)\fR\&[1] +.RS 4 +.RE +.RE +.PP +\fB\-\-av_fine_ms \fR \fIt\fR +.RS 4 +AV fine\-tuning shift +\fIt\fR +in millisecs [autodetect] also see \-D\&. +.RE +.PP +\fB\-\-nav_seek \fR \fIfile\fR +.RS 4 +use VOB or AVI navigation file [off]\&. Generate a nav file with tcdemux \-W >nav_log for VOB files or with aviindex(1) for AVI files\&. +.RE +.PP +\fB\-\-psu_mode \fR +.RS 4 +process VOB in PSU, \-o is a filemask incl\&. %d [off]\&. PSU means Program Stream Unit and this mode is useful for (mostly) NTSC DVDs which have several program stream units\&. +.RE +.PP +\fB\-\-psu_chunks \fR \fIa\-b\fR +.RS 4 +process only selected units +\fIa\-b\fR +for PSU mode [all] +.RE +.PP +\fB\-\-no_split \fR +.RS 4 +encode to single file in chapter/psu/directory mode [off]\&. If you don\'t give this option, you\'ll end up with several files in one of the above mentioned modes\&. It is still possible to merge them with avimerge(1)\&. +.RE +.PP +\fB\-\-multi_input \fR +.RS 4 + +\fI(EXPERIMENTAL)\fR +enable multiple input mode: intelligently join input files in import\&. The inputs can be expressed using standard POSIX globbing\&. While theorically all input modules are supported, it is safe to use this only when dealing with constant\-sized audio (PCM) and intra\-frame only video codecs (es: MJPEG)\&. To be safe, use this mode with im, ffmpeg and raw import modules\&. +.RE +.PP +\fB\-\-pre_clip \fR \fIt[,l[,b[,r]]]\fR +.RS 4 +select initial frame region by clipping border [off] +.RE +.PP +\fB\-\-post_clip \fR \fIt[,l[,b[,r]]]\fR +.RS 4 +select final frame region by clipping border [off] +.RE +.PP +\fB\-\-a52_drc_off \fR +.RS 4 +disable liba52 dynamic range compression [enabled]\&. If you dont specify this option, liba52 will provide the default behaviour, which is to apply the full dynamic range compression as specified in the A/52 stream\&. This basically makes the loud sounds softer, and the soft sounds louder, so you can more easily listen to the stream in a noisy environment without disturbing anyone\&. +.sp +If you let it enabled this this will totally disable the dynamic range compression and provide a playback more adapted to a movie theater or a listening room\&. +.RE +.PP +\fB\-\-a52_demux \fR +.RS 4 +demux AC3/A52 to separate channels [off] +.RE +.PP +\fB\-\-a52_dolby_off \fR +.RS 4 +disable liba52 dolby surround [enabled]\&. Selects whether the output is plain stereo (if the option is set) or if it is Dolby Pro Logic \- also called Dolby surround or 3:1 \- downmix (if the option is not used)\&. +.RE +.PP +\fB\-\-log_no_color \fR +.RS 4 +disable colored log messages\&. By default transcode use colors in log messages in order to easily distinguish message classes\&. That behaviour can be problematic if output of transcode is a file or a pipe, so this option came handful\&. +.RE +.PP +\fB\-\-dir_mode \fR \fIbase\fR +.RS 4 +process directory contents to base\-%03d\&.avi [off] +.RE +.PP +\fB\-\-frame_interval \fR \fIN\fR +.RS 4 +select only every +\fIN\fRth frame to be exported [1] +.RE +.PP +\fB\-\-encode_fields \fR \fIC\fR +.RS 4 +enable field based encoding (if supported) [off]\&. This option takes an argument if given to denote the order of fields\&. If the option is not given, it defaults to progressive (do not assume the picture is interlaced) +.sp +Valid codes for +\fIC\fR +are: +.PP +\fIp\fR +.RS 4 +progressive (default) +.RE +.PP +\fIt\fR +.RS 4 +top\-field first +.RE +.PP +\fIb\fR +.RS 4 +bottom\-field first +.RE +.RE +.PP +\fB\-\-dv_yuy2_mode, \-\-dv_yv12_mode\fR +.RS 4 +Indicates that libdv decodes Digital Video frames in YUY2 (packed) or YV12 (planar) mode, respectively\&. Normally transcode figures out the correct mode automatically, but if you try to transcode PAL DV files and the results look strange, try one of these options\&. +.RE +.PP +\fB\-\-write_pid \fR \fIfile\fR +.RS 4 +write pid of signal thread to +\fIfile\fR +[off]\&. Enables you to terminate transcode cleanly by sending a SIGINT (2) to the pid in +\fIfile\fR\&. Please note +\fIfile\fR +will be overwritten\&. Usage example +.sp +.RS 4 +.nf + $ transcode \&.\&.\&. \-\-write_pid /tmp/transcode\&.pid & + $ kill \-2 `cat /tmp/transcode\&.pid` + +.fi +.RE +.RE +.PP +\fB\-\-nice \fR \fIN\fR +.RS 4 +set niceness to +\fIN\fR +[off]\&. The option \-\-nice which renices transcode to the given positive or negative value\&. \-10 sets a high priority; +10 a low priority\&. This might be useful for cluster mode\&. +.RE +.PP +\fB\-\-progress_meter \fR \fIN\fR +.RS 4 +select type of progress meter [1]\&. Selects the type of progress message printed by transcode: +.PP +\fI0\fR +.RS 4 +no progress meter +.RE +.PP +\fI1\fR +.RS 4 +standard progress meter +.RE +.PP +\fI2\fR +.RS 4 +raw progress data (written to standard output) +.RE +.sp +Scripts that need progress data should use type 2, since the format of type 1 is subject to change without notice\&. +.RE +.PP +\fB\-\-progress_rate \fR \fIN\fR +.RS 4 +print progress every +\fIN\fR +frames [1]\&. Controls how frequently the status message is printed (every +\fIN\fR +frames)\&. +.RE +.PP +\fB\-\-socket \fR \fIFILE\fR +.RS 4 +Open a socket to accept commands while running\&. See +\fItcmodinfo(1)\fR +and /docs/filter\-socket\&.txt for more information about the protocol\&. +.RE +.SH "ENVIRONMENT" +.PP +\fITRANSCODE_LOG_NO_COLOR\fR +.RS 4 +if set, forces the colored logging off for all the tools of transcode suite\&. +.RE +.SH "NOTES" +.PP +* +.RS 4 +Most source material parameter are auto\-detected\&. +.RE +.PP +* +.RS 4 +Clipping region options are expanded symmetrically\&. Examples: +.sp +\-j 80 will be expanded to \-j 80,0,80,0 +.sp +\-j 80,8 will be expanded to \-j 80,8,80,8 +.sp +\-j 80,8,10 will be expanded to \-j 80,8,10,8 +.RE +.PP +* +.RS 4 +maximum image size is 1920x1088\&. +.RE +.PP +* +.RS 4 +The video frame operations ordering is fixed: "\-j \-I \-X \-B \-Z \-Y \-r \-z \-l \-k \-K \-G \-C" (executed from left to right)\&. +.RE +.PP +* +.RS 4 +Shrinking the image with \'\-B\' is not possible if the image width/height is not a multiple of 8, 16 or 32\&. +.RE +.PP +* +.RS 4 +Expanding the image with \'\-X\' is not possible if the image width/height is not a multiple of 8, 16 or 32\&. +.RE +.PP +* +.RS 4 +The final frame width/height should be a multiple of 8\&. (to avoid encoding problems with some codecs) +.PP +1\&. +.RS 4 +Reducing the video height/width by 2,4,8 Option \'\-r factor\' can be used to shrink the video image by a constant factor, this factor can be 2,4 or 8\&. +.RE +.PP +2\&. +.RS 4 +Clipping and changing the aspect ratio +\fBtranscode\fR +uses 3 steps to produce the input image for the export modules +.PP +1\&. +.RS 4 +Clipping of the input image\&. +.RE +.PP +2\&. +.RS 4 +Changing the aspect ratio of the 1) output\&. +.RE +.PP +3\&. +.RS 4 +Clipping of the 2) output\&. +.RE +.RE +.RE +.PP +* +.RS 4 + +\fIBits per pixel\fR +(bits/pixel) is a value transcode calculates and prints when starting up\&. It is mainly useful when encoding to MPEG4 (xvid, divx, etc)\&. You\'ll see line like +.sp +[transcode] V: bits/pixel | 0\&.237 +.sp +Simplified said, bits/pixel quantifies how good an encode will be\&. Although this value depends heavily on the used input material, as a general rule of thump it can be said that values greater or close to 0\&.2 will result in good encodes, encodes with values less than 0\&.15 will have noticeable artifacts\&. +.sp + +\fIBits per pixel\fR +depends on the resolution, bitrate and frames per second\&. If you have a low value ( < 0\&.15), you might want to raise the bitrate or encode at a lower resolution\&. The exact formula is +.sp +.RS 4 +.nf + bitrate*1000 + bpp = \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- + width*height*fps + +.fi +.RE +.RE +.PP +* +.RS 4 + +\fIAC3 / Multiple channels\fR +.sp +When you do import an audio stream which has more then two audio channels \- this is usually the case for AC3 audio \- transcode will automagically downmix to two channels (stereo)\&. You\'ll see line like +.sp +[transcode] A: downmix | 5 channels \-> 2 channels +.sp +This is done, because most encoders and audio filters can not handle more than 2 channels correctly\&. The PCM internal representation does not support more than two channels, audio will be downmixed to stereo +\fINo\fR +downmix will happen, if you use AC3 as the internal audio codec or use audio pass\-through\&. +.RE +.SH "EXAMPLES" +.PP +The following command will read it\'s input from the DVD drive (I assume +\fI/dev/dvd\fR +is a symbolic link to the actual DVD device) and produce a splitted divx4 movie according to the chapter information on the DVD medium\&. The output files will be named +\fImy_movie\-ch00\&.avi\fR, +\fImy_movie\-ch01\&.avi\fR +\&.\&.\&. +.sp +.RS 4 +.nf + \fB + transcode \-i /dev/dvd/ \-x dvd \-j 16,0 \-B 5,0 \-Y 40,8 \-s 4\&.47 \-U my_movie \-y xvid \-w 1618 + \fR + +.fi +.RE +.PP +Option +\fB\-j 16,0\fR +will be expanded to +\fB\-j 16,0,16,0\fR +and results in 16 rows from the top and the bottom of the image to be cut off\&. This may be usefull if the source consists of black top and bottom bars\&. +.PP +Option +\fB\-B 5,0\fR +tells +\fBtranscode\fR +to shrink the resulting image by 5*32=160 rows in height\&. +.PP +Option +\fB\-Y 40,8\fR +will be expanded to +\fB\-Y 40,8,40,8\fR +and tells +\fBtranscode\fR +to \&.\&.\&. +.PP +Option +\fB\-s 4\&.47\fR +tells +\fBtranscode\fR +to increase audio volume by a factor 4\&.47\&. +.PP +Option +\fB\-U my_movie\fR +tells +\fBtranscode\fR +to operate in chapter mode and produce output to files named +\fImy_movie\-ch00\&.avi\fR, +\fImy_movie\-ch01\&.avi\fR\&.\&.\&.\&. You can either merge the files afterwards with avimerge or add the option \-\-no_split to the command line\&. +.PP +Option +\fB\-y xvid\fR +tells +\fBtranscode\fR +to use the export module export_xvid\&.so which in turn uses the XviD encoder to encode the video\&. +.PP +Option +\fB\-w 1618\fR +tells +\fBtranscode\fR +to set the encoder bitrate to 1618 which is lower than the default of 1800 and results in smaller files with the loss of visual quality\&. +.PP +Lets assume that you have an NTSC DVD (720x480) and you want to make an NTSC\-SVCD +.RS 4 +The frame size of the DVD movie is 720x480 @ 16:9\&. For the purpose of frame resizing, the width 720 is not relavant (that is, it will not be used in the following reasoning)\&. It is not needed because the original frame size is really defined by the frame height and aspect ratio\&. The _final result_ should be 640x480, encoded as 480x480 @ 4:3 (the height 480 multiplied by the aspect ratio 4:3 gives the width 640)\&. This same frame size (640x480) can also be encoded as 640x360 @ 16:9 (the height 360 by the aspect ratio 16:9 gives the width 640)\&. +.sp +As the _original video_ has aspect ratio 16:9, first we resize to 640x360, keeping that aspect ratio\&. But the aspect ratio has to be changed to 4:3\&. To find the frame size in the new aspect ratio the height 360 is multiplied by the new aspect ratio, giving the width 480\&. This is accomplished with the transcode options "\fB\-\-export_asr\fR +2 \-Z 480x360,fast"\&. +.sp +To avoid stretching the video height in this change (because the new aspect ratio is less than the original), black borders should be added at the top and bottom of the video, bringing the frame to the desired 480x480 @ 4:3 size\&. The transcode option for this is "\-Y \-60,0,\-60,0"\&. +.sp +If for some reason (maybe a subtitle filter) the black borders (of height 60 each) should be added before resizing the frame and changing the aspect ratio to 4:3\&. One reason for that would be the need of running a _pre_ filter after adding the black borders\&. Then the options "\-j" or "\-\-pre_clip" can be used instead of "\-Y"\&. In this case the black border height has to be recalculated by applying the aspect ratio 4:3 to the value alreadyfound: 60 * (4/3) = 80\&. The transcode options "\-j \-80,0,\-80,0" or "\-\-pre_clip \-80,0,\-80,0" are then used instead of "\-Y \-60,0,\-60,0", and "\-Z 480x360,fast" is replaced by "\-Z 480x480,fast"\&. +.RE +.SH "AUTHORS" +.PP +Written by Thomas Oestreich <ostreich@theorie\&.physik\&.uni\-goettingen\&.de>, Tilmann Bitterberg and the Transcode\-Team +.PP +See the +\fIAUTHORS\fR +file for details\&. +.SH "SEE ALSO" +.PP + +\fBtranscode_export\fR(1) +, +\fBtranscode_filter\fR(1) +, +\fBtranscode_import\fR(1) +, +\fBavifix\fR(1) +, +\fBavisync\fR(1) +, +\fBavimerge\fR(1) +, +\fBavisplit\fR(1) +, +\fBtcprobe\fR(1) +, +\fBtcscan\fR(1) +, +\fBtccat\fR(1) +, +\fBtcdemux\fR(1) +, +\fBtcextract\fR(1) +, +\fBtcdecode\fR(1) +, +\fBtcmodinfo\fR(1) +, +\fBtcxmlcheck\fR(1) +, +\fBtranscode\fR(1) +.SH "WWW" +.PP +Frequently asked questions (FAQ) at +\fI http://www\&.transcoding\&.org/cgi\-bin/transcode?Transcode_FAQ \fR\&[1] +Example transcode sessions at +\fI http://www\&.transcoding\&.org/cgi\-bin/transcode?Command_Examples \fR\&[1] +.SH "BUGS" +.PP +Yes, there are bugs in transcode! Do your part and report them immediately\&. +.PP +For details, see +\fI http://www\&.transcoding\&.org/cgi\-bin/transcode?Reporting_Problems \fR\&[1] +.SH "NOTES" +.IP " 1." 4 +http://www.mp3dev.org/mp3/doc/html/presets.html) +.RS 4 +\%a +.RE diff --git a/debian/transcode/transcode-1.1.7/docs/man/transcode.1.xml b/debian/transcode/transcode-1.1.7/docs/man/transcode.1.xml new file mode 100644 index 00000000..4afe16a2 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/transcode.1.xml @@ -0,0 +1,2612 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" + "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> + +<refentry id='transcode'> + + <refentryinfo> + <date>14th July 2008</date> + </refentryinfo> + + <refmeta> + <refentrytitle>transcode</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class='date'>14th July 2008</refmiscinfo> + <refmiscinfo class='source'>transcode(1)</refmiscinfo> + </refmeta> + + <refnamediv id='name'> + <refname>transcode</refname> + <refpurpose>LINUX video stream processing tool</refpurpose> + </refnamediv> + + <!-- body begins here --> + <refsynopsisdiv id='synopsis'> + <cmdsynopsis> + <command>transcode</command> + <arg choice='plain'> + -i <replaceable>name</replaceable> + </arg> + <arg choice='opt'> + -o <replaceable>name</replaceable> + </arg> + <arg choice='opt'> + -y <replaceable>vmod,amod</replaceable> + </arg> + <arg choice='opt'> + <arg choice='plain'> + -w <replaceable>vbitrate</replaceable> + </arg> + <arg choice='opt'> + <arg choice='plain'> + <replaceable>,vkeyframes</replaceable> + </arg> + <arg choice='opt'> + <replaceable>,vcrispness</replaceable> + </arg> + </arg> + </arg> + <arg choice='opt'> + <arg choice='plain'> + -a <replaceable>atrack</replaceable> + </arg> + <arg choice='opt'> + <replaceable>,vtrack</replaceable> + </arg> + </arg> + <arg choice='opt'> + <arg choice='plain'> + -b <replaceable>abitrate</replaceable> + </arg> + <arg choice='opt'> + <arg choice='plain'> + <replaceable>,is_vbr</replaceable> + </arg> + <arg choice='opt'> + <arg choice='plain'> + <replaceable>,quality</replaceable> + </arg> + <arg choice='opt'> + <replaceable>,mode</replaceable> + </arg> + </arg> + </arg> + </arg> + <arg choice='opt'> + -M <replaceable>demuxer_mode</replaceable> + </arg> + <arg choice='opt'> + -F <replaceable>codec_string</replaceable> + </arg> + <arg choice='opt'> + <arg choice='plain'> + <replaceable>other</replaceable> + </arg> + <arg choice='plain'> + <replaceable>options</replaceable> + </arg> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + + <refsect1 id='quick_summary'> + <title>Quick Summary</title> + <para> + <command>transcode</command> supports a huge range of options, as described in detail in further + section. Only one option is mandatory: <option>-i name</option>, for supplying the input main + (video) source. All other options are discretionary and they can be skipped. + Most commonly needed options are <option>-o</option>, <option>-y</option>, <option>-w</option>, <option>-a</option>, <option>-b</option>, + <option>-M</option>, <option>-F</option> and a fair number of transcode session needs a little more than + those. See section below for full description of all transcode options. + To inspect the properties of a module, such as their parameters or the help text, use the 'tcmodinfo' tool. + </para> + </refsect1> + + <refsect1 id='description'> + <title>Description</title> + <para> + <command>transcode</command> is a linux text-console utility for video stream + processing, running on a platform that supports shared libraries and + threads. + </para> + <para> + It supports a huge range of options, as described in detail in further + section. Only one option is mandatory: <option>-i name</option>, for supplying the input main + (video) source. All other options are discretionary and they can be skipped. + Most commonly needed options are <option>-o</option>, <option>-y</option>, <option>-w</option>, <option>-a</option>, <option>-b</option>, + <option>-M</option>, <option>-F</option> and a fair number of transcode session needs a little more than + those. See section below for full description of all transcode options. + </para> + <para> + Decoding and encoding is done by loading modules that are responsible + for feeding transcode with raw video/audio streams (import modules) + and encoding the frames (export modules). + </para> + <para> + It supports elementary video and audio frame transformations, + including de-interlacing or fast resizing of video frames and loading + of external filters. + </para> + <para> + A number of modules are included to enable import of DVDs on-the-fly, + MPEG elementary (ES) or program streams (VOB), MPEG video, Digital + Video (DV), YUV4MPEG streams, NuppelVideo file format, AVI + based codecs and raw or compressed (pass-through) video + frames and export modules for writing DivX;-), XviD, DivX + 4.xx/5.xx or uncompressed AVI and raw files with MPEG, AC3 + (pass-through) or PCM audio. + </para> + <para> + Additional export modules to write single frames (PPM) or YUV4MPEG + streams are available, as well as an interface import module to the + avifile library. + </para> + <para> + It's modular concept is intended to provide flexibility and easy user + extensibility to include other video/audio codecs or filetypes. A set + of tools is included to demux (tcdemux), extract (tcextract) and + decode (tcdecode) the sources into raw video/audio streams for import, + probing (tcprobe) and scanning (tcscan) your sources and to enable + post-processing of AVI files, fixing AVI file header information + (avifix), merging multiple files (avimerge), splitting large AVI + files (avisplit) to fit on a CD and avisync to correct + AV-offsyncs. + </para> + </refsect1> + + <refsect1 id='options'> + <title>Options</title> + <variablelist> + <varlistentry> + <term> + <option>-A </option> + </term> + <listitem> + <para> + use AC3 as internal audio codec [off]. Only pass-through supported. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-B </option> + <emphasis>n[,m[,M]]</emphasis> + </term> + <listitem> + <para> + resize to height-<emphasis>n</emphasis>*<emphasis>M</emphasis> rows [,width-<emphasis>m</emphasis>*<emphasis>M</emphasis>] columns [off,32]. <emphasis>M</emphasis> must be one of 8, 16 or 32. It makes no difference which M you use. You might look at the <emphasis>fast</emphasis> flag of the <option>-Z</option> option if you don not want to calculate <emphasis>n</emphasis> and <emphasis>m</emphasis> yourself. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-C </option> + <emphasis>mode</emphasis> + </term> + <listitem> + <para>enable anti-aliasing mode (1-3) [off].</para> + <variablelist> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para>de-interlace effects only</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para>resize effects only</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> + </term> + <listitem> + <para>process full frame (slow)</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-D </option> + <emphasis>num</emphasis> + </term> + <listitem> + <para>sync video start with audio frame num [0].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-E </option> + <emphasis>r[,b[,c]]</emphasis> + </term> + <listitem> + <para> + audio output samplerate [Hz], bits per sample and channels [as input]. The option "-J resample" must be provided for export modules not capable of re-sampling. Samplerate and bits per sample can be specified as 0 to mean "same as input"; this allows converting from stereo to mono while leaving the other parameters alone (-E 0,0,1).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-F </option> + <emphasis>codec_string</emphasis> + </term> + <listitem> + <para> + encoder parameter strings [module dependent]. The -F parameter has different meanings for different export modules. Those meanings are documented in <emphasis>transcode_export(1)</emphasis> manual page. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-G </option> + <emphasis>val</emphasis> + </term> + <listitem> + <para> + Gamma correction (0.0-10.0) [off]. A value of 1.0 does not change anything. A value lower than 1.0 will make the picture "brighter", a value above 1.0 will make it "darker". + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-H </option> + <emphasis>n</emphasis> + </term> + <listitem> + <para> + auto-probe <emphasis>n</emphasis> MB of source (0=disable) default [1]. Use a higher value than the default to detect all subtitles in the VOB. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-I </option> + <emphasis>mode</emphasis> + </term> + <listitem> + <para>enable de-interlacing mode (1-5) [off].</para> + <variablelist> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para> + <emphasis>"interpolate scanlines"</emphasis> + linear interpolation (takes the average of the surronding even rows to determine the odd rows), and copies the even rows as is. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para> + <emphasis>"handled by encoder"</emphasis> + tells the encoding code to handle the fact that the frames are interlaced. Most codecs do not handle this. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> + </term> + <listitem> + <para> + <emphasis>"zoom to full frame"</emphasis> + drops to to half size, then zooms out. This can cause excessive blurring which is not always unwanted. On the other hand results are quite good. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>4</literal> + </term> + <listitem> + <para> + <emphasis>"drop field / half height"</emphasis> + drop every other field and keep half height. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>5</literal> + </term> + <listitem> + <para> + <emphasis>"interpolate scanlines / blend frames"</emphasis> + linear blend (similar to -vop pp=lb in mplayer) this, like linear blend calculates the odd rows as the average of the surrounding even rows, and also calculates the even rows as an average of the original even rows and also calculates the even rows as an average of the original odd rows and averages the calculated and original rows. Something like avg (avg(row1,row3), avg(row2, row4)) + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-J </option> + <emphasis>filter1[,filter2[,...]]</emphasis> + </term> + <listitem> + <para> + apply external filter plugins [off]. The avalaible import modules and their options are documented into the <emphasis>transcode_filter(1)</emphasis> manual page. <emphasis>Note:</emphasis> You can specify more than one -J argument. The order of filter arguments specify in which order the filters are applied. Note also, for transcode internally it makes no difference whether you do "-J filter1 -J filter2" or "-J filter1,filter2". Use 'tcmodinfo -i <emphasis>NAME</emphasis>' to get more information about the filter_<emphasis>NAME</emphasis>. Not all filters support this but most of them do. Some of the filter plugins have additional documentation in the docs/ directory. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-L </option> + <emphasis>n</emphasis> + </term> + <listitem> + <para> + seek to VOB stream offset <emphasis>n</emphasis>x2kB default [0]. This option is usually calculated automatically when giving --nav_seek and -c. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-K </option> + </term> + <listitem> + <para> + enable black/white by removing colors mode (grayscale) [off]. Please note this does not necessarily lead to a smaller image / better compression. For YUV mode, this is done by emptying the chroma planes, for RGB mode a weightend grayscale value is computed. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-M </option> + <emphasis>mode</emphasis> + </term> + <listitem> + <para>demuxer PES AV sync modes (0-4) [1].</para> + + <variablelist> + <varlistentry> + <term> + <emphasis>Overview</emphasis> + </term> + <listitem> + <para> + The demuxer takes care that the right video frames go together with the right audio frame. This can sometimes be a complex task and transcode tries to aid you as much as possible. <emphasis>WARNING:</emphasis> It does make a difference if you (the user) specifies a demuxer to use or if transcode resp. tcprobe(1) chooses the one which it thinks is right for your material. This is done on purpose to avoid mystic side-effects. So think twice, wether you specify a demuxer or let transcode choose one or you might end up with an off-sync result. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>0</literal> + </term> + <listitem> + <para> + Pass-through. Do not mess with the stream, switch off any synchronization/demuxing process. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para> + PTS only (default). Synchronize video and audio by inspecting PTS/DTS time stamps of audio and + video. Preferred mode for PAL VOB streams and DVDs. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para> + NTSC VOB stream synchronization feature. This mode generates synchronization information for transcode by analyzing the frame display time. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> + </term> + <listitem> + <para> + (like -M 1): sync AV at initial PTS, but invokes "-D/--av_fine_ms" options internally based on "tcprobe" PTS analysis. PTS stands for Presentation Time Stamp. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>4</literal> + </term> + <listitem> + <para> + (like -M 2): initial PTS / enforce frame rate, with additional frame rate enforcement (for NTSC). + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-N </option> + <emphasis>format</emphasis> + </term> + <listitem> + <para> + select export format. Default is mp3 for audio, and module-dependant format for video. This option has two different behaviours and accepts two different set of options, as side-effect of ongoing export module transition. For old-style modules (current default, as found in 1.0.x series), argument is audio format ID has hexadecimal value: see below for a list of recognized IDs. Default id, so default format for audio exported track, is MP3 (0x55). If you are using, the transcode's the new-style encode/multiplex modules (still under development, see the encode and multiplex directories), argument is a comma-separated pair of export format names. Use tcmodinfo tool to check out what new-style export module support what formats. + </para> + <para>Available format for old-style behaviour are:</para> + <variablelist> + <varlistentry> + <term> + <emphasis>0x1</emphasis> + </term> + <listitem> + <para>PCM uncompressed audio</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>0x50</emphasis> + </term> + <listitem> + <para>MPEG layer-2 aka MP2</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>0x55</emphasis> + </term> + <listitem> + <para> + MPEG layer-3 aka MP3. Also have a look at --lame_preset + if you intend to do VBR audio.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>0x2000</emphasis> + </term> + <listitem> + <para>AC3 audio</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>0xfffe</emphasis> + </term> + <listitem> + <para>OGG/Vorbis audio</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-O </option> + </term> + <listitem> + <para>skip flushing of buffers at encoder stop [off, do flushing at each stop].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-P </option> + <emphasis>flag</emphasis> + </term> + <listitem> + <para> + pass-through flag (0=off|1=V|2=A|3=A+V) [0]. Pass-through for <emphasis>flag</emphasis> != 1 is broken and not a trivial thing to fix. + </para> + <para> + You can pass-through DV video, AVI files and MPEG2 video. When doing MPEG2 pass-through (together with the -y raw module), you can give a requantization factor by using -w (for example -w 1.5), this will make the MPEG2 stream smaller. + </para> + <para> + The pass-through mode is useful for reconstruction of a broken index of an AVI file. The -x ffmpeg import-module analyzes the compressed bitstream and can detect a keyframe for DIV3, MPEG4 (DivX, XviD, ..) and other formats. It then sets an internal flag which the export module will respect when writing the frame out. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-Q </option> + <emphasis>n[,m]</emphasis> + </term> + <listitem> + <para>encoding[,decoding] quality (0=fastest-5=best) [5,5].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-R </option> + <emphasis>n[,f1[,f2]]</emphasis> + </term> + <listitem> + <para>enable multi-pass encoding (0-3) [0,divx4.log,pcm.log].</para> + <variablelist> + <varlistentry> + <term> + <literal>0</literal> Constant bitrate (CBR) encoding. [default] + </term> + <listitem> + <para> + The codec tries to achieve constant bitrate output. This means, each encoded frame is mostly the same size. This type of encoding can help in maintaining constant filling of hardware buffer on set top players or smooth streaming over networks. By the way, Constant bitrate is often obtained sacrifying quality during high motion scenes. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>1</literal> Variable bitrate encoding: First pass. + </term> + <listitem> + <para> + In this mode, the codec analyses the complete sequence in order to collect data that can improve the distribution of bits in a second VBR pass. The collected data is written to second sub argument (default: divx4.log). This data is codec dependant and cannot be used across codecs. It is strongly advised to use the same codec settings for the VBR analysis pass and the VBR encoding pass if you want predictable results. + </para> + <para> + The video output of the first pass is not of much use and can grow very large. It's a good idea to not save the video output to a file but directly to /dev/null. Usually the bitrate is ignored during first pass. + </para> + <para> + Disabling audio export makes sense too, so use -y codec,null. It is <emphasis>not</emphasis> recommended to disable the audio <emphasis>import</emphasis> because transcode might drop video frames to keep audio and video in sync. This is not possible when the audio import is disabled. It may lead to the fact that the codec will see a different sequence of frames which effectively renders the log file invalid. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> Variable bitrate encoding: Second pass. + </term> + <listitem> + <para> + The first pass allowed the codec collecting data about the complete sequence. During the second pass, the codec will use that data in order to find an efficient bit distribution that respects both the desired bitrate and the natural bitrate curve shape. This ensures a good compromise between quality and desired bitrate. + </para> + <para> + Make sure you activate both sound and video encoding during this pass. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> Constant quantizer encoding. + </term> + <listitem> + <para> + The quantizer is the "compression level" of the picture. The lower the quantizer is, the higher is the quality of the picture. This mode can help in making sure the sequence is encoded at constant quality, but no prediction can be made on the final bitrate. When using this mode, the <option>-w</option> option changes its meaning, it now takes the quantizer ranging from 1 to 31. Note that constant quantizer encoding is not supported with some codecs (notably mpeg1/2/4 with -y ffmpeg). + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-S </option> + <emphasis>unit[,s1-s2]</emphasis> + </term> + <listitem> + <para> + process program stream unit[,s1-s2] sequences [0,all]. This option is a bit redundant to --psu*. This option lets you specify which units you want to have decoded or skipped. At a program stream unit boundary, all (internal) mpeg timers are reset to 0. tcprobe will tell you how many units are in one file. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-T </option> + <emphasis>t[,c[,a]]</emphasis> + </term> + <listitem> + <para> + select DVD title[,chapter[,angle]] [1,1,1]. Only a single chapter is transcoded. Use <option>-T</option> 1,-1 to trancode all chapters in a row. You can even specify chapter ranges. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-U </option> + <emphasis>base</emphasis> + </term> + <listitem> + <para>process DVD in chapter mode to base-ch%02d.avi [off].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-V </option> + <emphasis>format</emphasis> + </term> + <listitem> + <para> + select video layout / colour space for internal processing. Possible values for this options are: yuv420p (default), yuv422p, rgb24 + </para> + <para> + yuv420p is default because it is most codecs' internal format so there is no need for conversions. Some modules may not support it though: use rgb in that case. + </para> + <para> + rgb24 is the old (pre-0.6.13) transcode internal format. Most codecs do not support this format natively and have to convert it to/from YUV first, so only use this option if you're really sure or you want to use a module that doesn't support YUV. + </para> + <para> + yuv422p is an experimental feature and a developers playground. Not many import, export and filter modules support this colorspace. A 4:2:2 colorspace offers much more quality than the consumer oriented 4:2:0 colorspaces like I420/YV12. Most equipment in film and video post-production uses YUV422. YUV422 doubles the precision for chroma (color difference) information in the image. + </para> + <para> + All internal transformations are supported in YUV422 mode (clipping, flipping, zooming, etc). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-W </option> + <emphasis>n,m[,nav_file]</emphasis> + </term> + <listitem> + <para> + autosplit and process part <emphasis>n</emphasis> of <emphasis>m</emphasis> (VOB only) [off] + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-X </option> + <emphasis>n[,m,[M]]</emphasis> + </term> + <listitem> + <para> + resize to height+<emphasis>n</emphasis>*<emphasis>M</emphasis> rows [,width+<emphasis>m</emphasis>*<emphasis>M</emphasis>] columns [off,32]. M must be one of 8, 16 or 32. It makes no difference which M you use. You might look at the <emphasis>fast</emphasis> flag of the <option>-Z</option> option if you do not want to calculate <emphasis>n</emphasis> and <emphasis>m</emphasis> yourself. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-Y </option> + <emphasis>top[,left[,bottom[,right]]]</emphasis> + </term> + <listitem> + <para> + select (encoder) frame region by clipping border. Negative values add a border [off]. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-Z </option> + <emphasis>widthxheight[,fast|interlaced]</emphasis> + </term> + <listitem> + <para> + resize to <emphasis>width</emphasis> columns, <emphasis>height</emphasis> rows with filtering [off,notfast,notinterlaced]. If <emphasis>fast</emphasis> is given, transcode will calculate the parameters for <option>-X</option> and/or <option>-B</option>. The file <option>fast</option> can only be used when the import and export geometry of an image is a multiple of 8. + </para> + <para> + In fast mode, a faster but less precise resizing algorithm will be used resulting in a slightly less good quality. Beside this (small) drawback, it is worth a try. + </para> + <para> + If <emphasis>interlaced</emphasis> is given, transcode will assume the frame is interlaced when resizing, and resize each field independently. This will give better results on interlaced video, but is incompatible with fast mode. Also, the height (both old and new) must be a multiple of 4. + </para> + <para> + It is also possible to omit <emphasis>width</emphasis> OR <emphasis>height</emphasis>. In this case, transcode will calculate the missing value using the import aspect ratio. The new value will be aligned to be a multiple of 8. Using an additional <emphasis>fast</emphasis> or <emphasis>interlaced</emphasis> is also possible. + </para> + <para>Examples (assume input is a 16:9 coded file at 720x576):</para> + <literallayout> + -Z 576x328 uses filtered zoom. + -Z 576x328,fast uses fast zoom. + -Z 576x,fast guess 328 and do fast zoom. + -Z x328,interlaced guess 576 and do interlaced zoom. + </literallayout> + <para> + If you also set <option>--export_prof</option>, you can use just "fast" to indicate that fast resizing is wanted (likewise with "interlaced"). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-a </option> + <emphasis>ach[,vch]</emphasis> + </term> + <listitem> + <para>extract audio[,video] track for encoding.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-b </option> + <emphasis>b[,v,[q,[m]]]</emphasis> + </term> + <listitem> + <para>audio encoder bitrate kBits/s[,vbr[,quality[,mode]]] [128,0,5,0]</para> + <para> + The <emphasis>mode</emphasis> parameter specifies which modus lame should use for encoding. Available modes are: + </para> + <variablelist> + <varlistentry> + <term> + <literal>0</literal> + </term> + <listitem> + <para>Joint Stereo (default)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para>Full stereo</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para>Mono</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-c </option> + <emphasis>f1-f2[,f3-f4[, ... ] ]</emphasis> + </term> + <listitem> + <para> + encode only frames <emphasis>f1-f2</emphasis> [and <emphasis>f3-f4</emphasis>]. Default is to encode all available frames. Use this and you'll get statistics about remaining encoding time. The <emphasis>f[N]</emphasis> parameters may also be timecodes in the HH:MM:SS.FRAME format. Example: + </para> + <literallayout> + -c 500-0:5:01,:10:20-1:18:02.1 + </literallayout> + <para> + Will encode only from frame 500 to 5 minutes and 1 second and from 10 min, 20 sec to 1 hour, 18 min, 2 sec and one frame. + </para> + <para> + Note that transcode starts counting frames at <literal>0</literal> and excludes the last frame specified. That means that "<option>-c</option> 0-100" will encoded 100 frames starting at frame <literal>0</literal> up to frame <literal>99</literal> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-d </option> + </term> + <listitem> + <para> + swap bytes in audio stream [off]. In most cases, DVD PCM audio tracks require swapping of audio bytes + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-e </option> + <emphasis>r[,b[,c]]</emphasis> + </term> + <listitem> + <para> + PCM audio stream parameter. Sample rate [Hz], bits per sample and number of channels [48000,16,2]. Normally this is autodetected. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-f </option> + <emphasis>rate[,frc]</emphasis> + </term> + <listitem> + <para> + import video frame rate[,frc] [25.000,0]. If <emphasis>frc</emphasis> (frame rate code) is specified, transcode will calculate the precise frames per second internally. Valid values for <emphasis>frc</emphasis> are: + </para> + <variablelist> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para>23.976 (24000/1001.0)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para>24</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> + </term> + <listitem> + <para>25</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>4</literal> + </term> + <listitem> + <para>29.970 (30000/1001.0)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>5</literal> + </term> + <listitem> + <para>30</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>6</literal> + </term> + <listitem> + <para>50</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>7</literal> + </term> + <listitem> + <para>59.940 (2 * 29.970)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>8</literal> + </term> + <listitem> + <para>60</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>9</literal> + </term> + <listitem> + <para>1</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>10</literal> + </term> + <listitem> + <para>5</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>11</literal> + </term> + <listitem> + <para>10</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>12</literal> + </term> + <listitem> + <para>12</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>13</literal> + </term> + <listitem> + <para>15</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-g </option> + <emphasis>WidthxHeight</emphasis> + </term> + <listitem> + <para>video stream frame size [720x576].</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-h</option> + </term> + <listitem> + <para>print out usage information.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-i </option> + <emphasis>name</emphasis> + </term> + <listitem> + <para>input file/directory/device/mountpoint/host name, default is [/dev/zero].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-j </option> + <emphasis>top[,left[,bottom[,right]]]</emphasis> + </term> + <listitem> + <para>select frame region by clipping border. Negative values add a border [off].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-k </option> + </term> + <listitem> + <para>swap red/blue (Cb/Cr) in video frame [off]. Use if people have blue faces.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-l </option> + </term> + <listitem> + <para>mirror video frame [off].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-m </option> + <emphasis>file</emphasis> + </term> + <listitem> + <para>write audio stream to separate file [off].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-n </option> + <emphasis>0xnn</emphasis> + </term> + <listitem> + <para>import audio format id [0x2000]. Normally, this is autodetected.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-o </option> + <emphasis>file</emphasis> + </term> + <listitem> + <para>output file name, default is [/dev/null].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-p </option> + <emphasis>file</emphasis> + </term> + <listitem> + <para>read audio stream from separate file [off].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-q </option> + <emphasis>debuglevel</emphasis> + </term> + <listitem> + <para>possible values for debuglevel:</para> + <variablelist> + <varlistentry> + <term> + <literal>0</literal> + </term> + <listitem> + <para>QUIET</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para>INFO</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para>DEBUG</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>4</literal> + </term> + <listitem> + <para>STATS</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>8</literal> + </term> + <listitem> + <para>WATCH</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>16</literal> + </term> + <listitem> + <para>FLIST</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>32</literal> + </term> + <listitem> + <para>VIDCORE</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>64</literal> + </term> + <listitem> + <para>SYNC</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>128</literal> + </term> + <listitem> + <para>COUNTER</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>256</literal> + </term> + <listitem> + <para>PRIVATE</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-r </option> + <emphasis>n[,m]</emphasis> + </term> + <listitem> + <para> + reduce video height/width by n[,m] [off]. Example: <option>-r</option> 2 will rescale the framesize of a 720x576 file to 360x288. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-s </option> + <emphasis>gain,[center,[front,[rear]]]</emphasis> + </term> + <listitem> + <para> + increase volume of audio stream by gain,[center,front,rear] default [off,1,1,1]. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-t </option> + <emphasis>n,base</emphasis> + </term> + <listitem> + <para> + split output to <emphasis>base</emphasis>%03d.avi with <emphasis>n</emphasis> frames [off]. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-u </option> + <emphasis>m[,n]</emphasis> + </term> + <listitem> + <para> + use <emphasis>m</emphasis> framebuffer[,<emphasis>n</emphasis> threads] for AV processing [10,1]. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-v </option> + </term> + <listitem> + <para>print version.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-w </option> + <emphasis>b[,k[,c]]</emphasis> + </term> + <listitem> + <para> + encoder bitrate[,keyframes[,crispness]] [(6000 for MPEG 1/2, 1800 for others),250,100]. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--video_max_bitrate </option> + <emphasis>b</emphasis> + </term> + <listitem> + <para> + Use <emphasis>b</emphasis> as maximal bitrate (kbps) when encoding variable bitrate streams. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-x </option> + <emphasis>vmod[,amod]</emphasis> + </term> + <listitem> + <para> + video[,audio] import modules [auto,auto]. If omitted, transcode will probefor appropriate import modules. The avalaible import modules and their options are documented into the <emphasis>transcode_import(1)</emphasis> manual page. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-y </option> + <emphasis>vmod[,amod[,mmod]]</emphasis> + </term> + <listitem> + <para> + video[,audio[,multiplex]] export modules [null]. If omitted, transcode will encode to the <emphasis>null</emphasis> module. If a multiplex module is given, transcode will use the new-style encode/multiplex modules (still under development, see the encode and multiplex directories); if no multiplex module is given, the traditional export modules will be used. The avalaible export, encoder and multiplexor modules and their options are documented into the <emphasis>transcode_export(1)</emphasis> manual page. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--accel </option> + <emphasis>type</emphasis> + </term> + <listitem> + <para> + enforce experimental IA32 acceleration for type [autodetect]. <emphasis>type</emphasis> may be one of + </para> + <variablelist> + <varlistentry> + <term> + <emphasis>C</emphasis> + </term> + <listitem> + <para>No acceleration</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>ia32asm</emphasis> + </term> + <listitem> + <para>plain x86 assembly</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>mmx</emphasis> + </term> + <listitem> + <para>MMX instruction set</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>3dnow</emphasis> + </term> + <listitem> + <para>3DNow! instruction set</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>sse</emphasis> + </term> + <listitem> + <para>SSE instruction set</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>sse2</emphasis> + </term> + <listitem> + <para>SSE2 instruction set</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--avi_limit </option><emphasis>N</emphasis><emphasis></emphasis> + </term> + <listitem> + <para>split/rotate output AVI file after N MB [2048].</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--avi_comments </option> + <emphasis>F</emphasis> + </term> + <listitem> + <para> + Read AVI header comments from file <filename>F</filename> [off]. The AVI file format supports so-called tomb-stone data. It can be used to write annotations into the AVI file. + </para> + <para> + See the file <filename>docs/avi_comments.txt</filename> for a sample input file with all tags. When the file is read, empty lines and lines starting with '#' are ignored. The syntax is: "TAG<space>STRING". The order of the tags does not matter. If a tag has no string following it, it is ignored. That means, you can use the file docs/avi_comments.txt as input and only fill out the fields you want. + </para> + <para>A very simple example is:</para> + <literallayout> + ----------------snip---------------- + INAM My 1st Birthday + ISBJ My first steps! + IART My proud family + ----------------snip---------------- + </literallayout> + <para> + Keep in mind that there is no endless space in the AVI header, most likely its around 1000 bytes. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--zoom_filter </option> + <emphasis>string</emphasis> + </term> + <listitem> + <para> + use filter string for video resampling <option>-Z</option> [Lanczos3] The following filters are available: + </para> + <variablelist> + <varlistentry> + <term>Bell</term> + <listitem><para></para></listitem> + </varlistentry> + <varlistentry> + <term>Box</term> + <listitem><para></para></listitem> + </varlistentry> + <varlistentry> + <term>Lanczos3 (default)</term> + <listitem><para></para></listitem> + </varlistentry> + <varlistentry> + <term>Mitchell</term> + <listitem><para></para></listitem> + </varlistentry> + <varlistentry> + <term>Hermite</term> + <listitem><para></para></listitem> + </varlistentry> + <varlistentry> + <term>B_spline</term> + <listitem><para></para></listitem> + </varlistentry> + <varlistentry> + <term>Triangle</term> + <listitem><para></para></listitem> + </varlistentry> + <varlistentry> + <term>Cubic_Keys4</term> + <listitem><para></para></listitem> + </varlistentry> + <varlistentry> + <term>Sinc8</term> + <listitem><para></para></listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--cluster_percentage </option> + </term> + <listitem> + <para>use percentage mode for cluster encoding <option>-W</option>> [off]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--cluster_chunks </option> + <emphasis>a-b</emphasis> + </term> + <listitem> + <para>process chunk range instead of selected chunk [off]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--export_asr </option> + <emphasis>C</emphasis> + </term> + <listitem> + <para> + set export aspect ratio code <emphasis>C</emphasis> [as input] Valid codes for <emphasis>C</emphasis> are: + </para> + <variablelist> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para>1:1</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para>4:3</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> + </term> + <listitem> + <para>16:9</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>4</literal> + </term> + <listitem> + <para>2.21:1</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--export_prof </option> + <emphasis>S</emphasis> + </term> + <listitem> + <para> + WARNING: this option will be renamed as <option>--export_profile</option> in future releases. + </para> + <para> + Select an export profile {vcd, svcd, xvcd, dvd} [-pal|-ntsc|-secam]. Default is no profile. + </para> + <para> + If you set this meta option to one of the values below, transcode will adjust some internal paramaters as well as geometry and clipping. If no export modules are specified, mpeg2enc for video and mp2enc for audio are used when compiled with mjpegtools support. + </para> + <para> + Valid values for <emphasis>S</emphasis> are e.g. vcd, vcd-pal, vcd-ntsc, svcd, svcd-pal, ... + </para> + <para> + xvcd profile is equal to svcd except that it allows for up to 9000 Kbps video bitrate (default is 5000) and arbitrary audio samplerate. + </para> + <para> + When one of the above is used, transcode will calculate the needed clipping and resizing values for you based on the import and export aspect ratio. This is especially handy if you want to encode a 16:9 DVD into a 4:3 SVCD for example. Transcode internally then sets --pre_clip to add the black bars ("letterboxing"). + </para> + <para> + If you use "vcd" instead of "vcd-pal" or "vcd-ntsc", transcode will make an educated guess if PAL or NTSC vcd is wanted. The same is true for the other profiles. When the input file has no aspect ratio information at all, transcode guesses it based on the import frame sizes. You can set the import aspect ratio by giving <option>--import_asr</option> CODE. + </para> + <para>Examples (assume input is a 16:9 coded file at 720x576 (PAL)):</para> + <literallayout> + --export_prof svcd clip top/bot -96; resizes to 480x576 + --export_prof vcd-ntsc clip top/bot -96; resizes to 352x240 + </literallayout> + <para> + This enables simpilified commandlines where transcode tries to set sensible values for mpeg export. When you don't specify an export module with -y, mpeg2enc will be used. + </para> + <literallayout> + transcode -i vob/ --export_prof svcd -Z fast -o test + </literallayout> + <para> + The ffmpeg export module `-y ffmpeg' does support profiles as well. The module tries to be smart and sets internal ffmpeg parameters which are otherwise quite tricky to find out. Usage is similar to the above. + </para> + <literallayout> + transcode -i vob/ --export_prof dvd -y ffmpeg -o test -m test.ac3 + tcmplex -m d -i test.m2v -p test.ac3 -o test.mpg + </literallayout> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--export_par </option> + <emphasis>C[,N]</emphasis> + </term> + <listitem> + <para> + set export pixel aspect ratio to <emphasis>C</emphasis>[,<emphasis>N</emphasis>]. To encode anamorphic material, transcode can encode the target pixel aspect ratio into the file. This is NOT the actual aspect ratio of the image, but only the amount by which every single pixel is stretched when played with an aspect ratio aware application, like mplayer. + </para> + <para> + To encode at non standard aspect ratios, set both <emphasis>C</emphasis> and <emphasis>N</emphasis>. E.g. to make every pixel twice as high as it's wide (e.g. to scale back to normal size after deinterlacing by dropping every second line). + </para> + <para> + If <emphasis>C</emphasis> and <emphasis>N</emphasis> are specified, the value set for <emphasis>C</emphasis> does give the pixel aspect ratio of the width and <emphasis>N</emphasis> the one for the height. If only <emphasis>C</emphasis> is specified, the table below applies. + </para> + <para>Valid codes for <emphasis>C</emphasis> are</para> + <variablelist> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para>1:1 No stretching</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para>12:11 5:4 image to 4:3 (ex: 720x576 -> 768x576)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> + </term> + <listitem> + <para>10:11 3:2 image to 4:3 (ex: 720x480 -> 640x480)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>4</literal> + </term> + <listitem> + <para>16:11 5:4 image to 16:9 (ex: 720x576 -> 1024x576)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>5</literal> + </term> + <listitem> + <para>40:33 3:2 image to 16:9 (ex: 720x480 -> 872x480)</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--import_asr </option> + <emphasis>C</emphasis> + </term> + <listitem> + <para> + set import aspect ratio code <emphasis>C</emphasis> [autoprobed] + </para> + <para>Valid codes for <emphasis>C</emphasis> are</para> + <variablelist> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para>1:1</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para>4:3</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> + </term> + <listitem> + <para>16:9</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>4</literal> + </term> + <listitem> + <para>2.21:1</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--keep_asr </option> + </term> + <listitem> + <para>try to keep aspect ratio (only with -Z) [off]</para> + <para> + The <option>--keep_asr</option> options changes the meaning of <option>-Z</option>. It tries to fit the video into a framesize specified by <option>-Z</option> by keeping the <emphasis>original</emphasis> aspect ratio. + </para> + <literallayout> + +----------------+ +---480-----+ + | | | black | + |720x306 = 2.35:1| -> -Z 480x480 --keep_asr ->|-----------4 + | | | 480x204 8 + +----------------+ |-----------0 + | black | + +-----------+ + </literallayout> + <para> + Consider <option>--keep_asr</option> a wrapper for calculating <option>-Y</option> options and <option>-Z</option> options. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--mplayer_probe </option> + </term> + <listitem> + <para> + use external mplayer binary to probe stream, reset default import modules as mplayer ones [off]. Default is to use internal probing code. Using this option without mplayer import modules (<option>-x</option> mplayer) can lead to unpredictable and possibly wrong results. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--quantizers </option> + <emphasis>min,max</emphasis> + </term> + <listitem> + <para> + set encoder min/max quantizer. This is meaningfull only for video codecs of MPEG family. For other kind of codecs, this options is harmless. [2,31] + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--divx_rc </option> + <emphasis>p,rp,rr</emphasis> + </term> + <listitem> + <para>divx encoder rate control parameter [2000,10,20]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--divx_vbv_prof </option> + <emphasis>N</emphasis> + </term> + <listitem> + <para> + divx5 encoder VBV profile (0=free-5=hiqhq) [3]. Sets a predefined profile for the Video Bitrate Verifier. If <emphasis>N</emphasis> is set to zero, no profile is applied and the user specified values from <option>--divx_vbv</option> are used. + </para> + <para>Valid profiles</para> + <variablelist> + <varlistentry> + <term> + <literal>0</literal> + </term> + <listitem> + <para>Free/No profile ( Use supplied values )</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para>Handheld ( 320, 16, 3072 )</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para>Portable ( 1920, 64, 12288 )</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> + </term> + <listitem> + <para>Home Theatre ( 10000, 192, 36864 )</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>4</literal> + </term> + <listitem> + <para>High Definition ( 20000, 384, 73728 )</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--divx_vbv </option> + <emphasis>br,sz,oc</emphasis> + </term> + <listitem> + <para> + divx5 encoder VBV params (bitrate,size,occup.) [10000,192,36864] These parameters are normally set through the profile parameter <option>--divx_vbv_prof</option>. Do not mess with theses value unless you are absolutely sure of what you are doing. Transcode internally multiplicates vbv_bitrate with 400, vbv_size with 16384 and vbv_occupancy with 64 to ensure the supplied values are multiples of what the encoder library wants. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--export_fps </option> + <emphasis>rate[,frc]</emphasis> + </term> + <listitem> + <para>set export frame rate (and code) [as input].Valid values + for <emphasis>frc</emphasis> are + </para> + <para>frc rate</para> + <variablelist> + <varlistentry> + <term> + <literal>1</literal> + </term> + <listitem> + <para>23.976 (24000/1001.0)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>2</literal> + </term> + <listitem> + <para>24</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>3</literal> + </term> + <listitem> + <para>25</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>4</literal> + </term> + <listitem> + <para>29.970 (30000/1001.0)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>5</literal> + </term> + <listitem> + <para>30</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>6</literal> + </term> + <listitem> + <para>50</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>7</literal> + </term> + <listitem> + <para>59.940 (2 * 29.970)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>8</literal> + </term> + <listitem> + <para>60</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>9</literal> + </term> + <listitem> + <para>1</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>10</literal> + </term> + <listitem> + <para>5</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>11</literal> + </term> + <listitem> + <para>10</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>12</literal> + </term> + <listitem> + <para>12</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>13</literal> + </term> + <listitem> + <para>15</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--export_frc </option> + <emphasis>F</emphasis> + </term> + <listitem> + <para> + set export frame rate code <emphasis>F</emphasis> [as input]. <emphasis>Obsolete</emphasis>, use <option>--export_fps</option> 0,F + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--hard_fps </option> + </term> + <listitem> + <para> + disable smooth dropping (for variable fps clips) [off]. See /docs/framerate.txt for more information. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--pulldown </option> + </term> + <listitem> + <para>set MPEG 3:2 pulldown flags on export [off]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--antialias_para </option> + <emphasis>w,b</emphasis> + </term> + <listitem> + <para>center pixel weight, xy-bias [0.333,0.500]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--no_audio_adjust </option> + </term> + <listitem> + <para>disable internal audio frame sample adjustment [off]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--no_bitreservoir </option> + </term> + <listitem> + <para>disable lame bitreservoir for MP3 encoding [off]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--config_dir </option> + <emphasis>dir</emphasis> + </term> + <listitem> + <para> + Assume config files are in this <emphasis>dir</emphasis>. This only affects the -y ffmpeg and -y xvid4 modules. It gives the path where the modules search for their configuration. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--lame_preset </option> + <emphasis>name[,fast]</emphasis> + </term> + <listitem> + <para> + use lame preset with <emphasis>name</emphasis> [off]. Lame features some built-in presets. Those presets are designed to provide the highest possible quality. They have for the most part been subject to and tuned via rigorous listening tests to verify and achieve this objective. These are continually updated to coincide with the latest developments that occur and as a result should provide you with nearly the best quality currently possible from LAME. Any of those VBR presets can also be used in fast mode, using the new vbr algorithm. This mode is faster, but its quality could be a little lower. To enable the fast mode, append "<emphasis>,fast</emphasis>" + </para> + <variablelist> + <varlistentry> + <term> + <emphasis><N kbps></emphasis> + </term> + <listitem> + <para> + Using this preset will usually give you good quality at a specified bitrate. Depending on the bitrate entered, this preset will determine the optimal settings for that particular situation. While this approach works, it is not nearly as flexible as VBR, and usually will not reach the same quality level as VBR at higher bitrates. ABR. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>medium</emphasis> + </term> + <listitem> + <para> + This preset should provide near transparency to most people on most music. The resulting bitrate should be in the 150-180kbps range, according to music complexity. VBR. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>standard</emphasis> + </term> + <listitem> + <para> + This preset should generally be transparent to most people on most music and is already quite high in quality. The resulting bitrate should be in the 170-210kbps range, according to music complexity. VBR. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>extreme</emphasis> + </term> + <listitem> + <para> + If you have extremely good hearing and similar equipment, this preset will provide slightly higher quality than the "standard" mode. The resulting bitrate should be in the 200-240kbps range, according to music complexity. VBR. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>insane</emphasis> + </term> + <listitem> + <para> + This preset will usually be overkill for most people and most situations, but if you must have the absolute highest quality with no regard to filesize, this is the way to go. This preset is the highest preset quality available. 320kbps CBR. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + (taken from <ulink url="a">http://www.mp3dev.org/mp3/doc/html/presets.html)</ulink> + </term> + <listitem> + <para></para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--av_fine_ms </option> + <emphasis>t</emphasis> + </term> + <listitem> + <para> + AV fine-tuning shift <emphasis>t</emphasis> in millisecs [autodetect] also see -D. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--nav_seek </option> + <emphasis>file</emphasis> + </term> + <listitem> + <para> + use VOB or AVI navigation file [off]. Generate a nav file with tcdemux -W >nav_log for VOB files or with aviindex(1) for AVI files. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--psu_mode </option> + </term> + <listitem> + <para> + process VOB in PSU, -o is a filemask incl. %d [off]. PSU means Program Stream Unit and this mode is useful for (mostly) NTSC DVDs which have several program stream units. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--psu_chunks </option> + <emphasis>a-b</emphasis> + </term> + <listitem> + <para> + process only selected units <emphasis>a-b</emphasis> for PSU mode [all] + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--no_split </option> + </term> + <listitem> + <para> + encode to single file in chapter/psu/directory mode [off]. If you don't give this option, you'll end up with several files in one of the above mentioned modes. It is still possible to merge them with avimerge(1). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--multi_input </option> + </term> + <listitem> + <para> + <emphasis>(EXPERIMENTAL)</emphasis> enable multiple input mode: intelligently join input files in import. The inputs can be expressed using standard POSIX globbing. While theorically all input modules are supported, it is safe to use this only when dealing with constant-sized audio (PCM) and intra-frame only video codecs (es: MJPEG). To be safe, use this mode with im, ffmpeg and raw import modules. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--pre_clip </option> + <emphasis>t[,l[,b[,r]]]</emphasis> + </term> + <listitem> + <para>select initial frame region by clipping border [off]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--post_clip </option> + <emphasis>t[,l[,b[,r]]]</emphasis> + </term> + <listitem> + <para>select final frame region by clipping border [off]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--a52_drc_off </option> + </term> + <listitem> + <para> + disable liba52 dynamic range compression [enabled]. If you dont specify this option, liba52 will provide the default behaviour, which is to apply the full dynamic range compression as specified in the A/52 stream. This basically makes the loud sounds softer, and the soft sounds louder, so you can more easily listen to the stream in a noisy environment without disturbing anyone. + </para> + <para> + If you let it enabled this this will totally disable the dynamic range compression and provide a playback more adapted to a movie theater or a listening room. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--a52_demux </option> + </term> + <listitem> + <para>demux AC3/A52 to separate channels [off]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--a52_dolby_off </option> + </term> + <listitem> + <para> + disable liba52 dolby surround [enabled]. Selects whether the output is plain stereo (if the option is set) or if it is Dolby Pro Logic - also called Dolby surround or 3:1 - downmix (if the option is not used). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--log_no_color </option> + </term> + <listitem> + <para> + disable colored log messages. By default transcode use colors in log messages in order to easily distinguish message classes. That behaviour can be problematic if output of transcode is a file or a pipe, so this option came handful. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--dir_mode </option> + <emphasis>base</emphasis> + </term> + <listitem> + <para>process directory contents to base-%03d.avi [off]</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--frame_interval </option> + <emphasis>N</emphasis> + </term> + <listitem> + <para> + select only every <emphasis>N</emphasis>th frame to be exported [1] + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--encode_fields </option> + <emphasis>C</emphasis> + </term> + <listitem> + <para> + enable field based encoding (if supported) [off]. This option takes an argument if given to denote the order of fields. If the option is not given, it defaults to progressive (do not assume the picture is interlaced) + </para> + <para> + Valid codes for <emphasis>C</emphasis> are: + </para> + <variablelist> + <varlistentry> + <term> + <emphasis>p</emphasis> + </term> + <listitem> + <para>progressive (default)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>t</emphasis> + </term> + <listitem> + <para>top-field first</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>b</emphasis> + </term> + <listitem> + <para>bottom-field first</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--dv_yuy2_mode, --dv_yv12_mode</option> + </term> + <listitem> + <para> + Indicates that libdv decodes Digital Video frames in YUY2 (packed) or YV12 (planar) mode, respectively. Normally transcode figures out the correct mode automatically, but if you try to transcode PAL DV files and the results look strange, try one of these options. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--write_pid </option> + <emphasis>file</emphasis> + </term> + <listitem> + <para> + write pid of signal thread to <emphasis>file</emphasis> [off]. Enables you to terminate transcode cleanly by sending a SIGINT (2) to the pid in <emphasis>file</emphasis>. Please note <emphasis>file</emphasis> will be overwritten. Usage example + </para> + <literallayout> + $ transcode ... --write_pid /tmp/transcode.pid & + $ kill -2 `cat /tmp/transcode.pid` + </literallayout> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--nice </option> + <emphasis>N</emphasis> + </term> + <listitem> + <para> + set niceness to <emphasis>N</emphasis> [off]. The option --nice which renices transcode to the given positive or negative value. -10 sets a high priority; +10 a low priority. This might be useful for cluster mode. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--progress_meter </option> + <emphasis>N</emphasis> + </term> + <listitem> + <para> + select type of progress meter [1]. Selects the type of progress message printed by transcode: + </para> + <variablelist> + <varlistentry> + <term> + <emphasis>0</emphasis> + </term> + <listitem> + <para>no progress meter</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>1</emphasis> + </term> + <listitem> + <para>standard progress meter</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis>2</emphasis> + </term> + <listitem> + <para>raw progress data (written to standard output)</para> + </listitem> + </varlistentry> + </variablelist> + <para> + Scripts that need progress data should use type 2, since the format of type 1 is subject to change without notice. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--progress_rate </option> + <emphasis>N</emphasis> + </term> + <listitem> + <para> + print progress every <emphasis>N</emphasis> frames [1]. Controls how frequently the status message is printed (every <emphasis>N</emphasis> frames). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--socket </option> + <emphasis>FILE</emphasis> + </term> + <listitem> + <para> + Open a socket to accept commands while running. See <emphasis>tcmodinfo(1)</emphasis> and /docs/filter-socket.txt for more information about the protocol. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id='environment'> + <title>ENVIRONMENT</title> + <variablelist> + <varlistentry> + <term> + <emphasis>TRANSCODE_LOG_NO_COLOR</emphasis> + </term> + <listitem> + <para>if set, forces the colored logging off for all the tools of transcode suite.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id='notes'> + <title>Notes</title> + <variablelist> + <varlistentry> + <term>*</term> + <listitem> + <para>Most source material parameter are auto-detected.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>*</term> + <listitem> + <para>Clipping region options are expanded symmetrically. Examples:</para> + <para>-j 80 will be expanded to -j 80,0,80,0</para> + <para>-j 80,8 will be expanded to -j 80,8,80,8</para> + <para>-j 80,8,10 will be expanded to -j 80,8,10,8</para> + </listitem> + </varlistentry> + <varlistentry> + <term>*</term> + <listitem> + <para>maximum image size is 1920x1088.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>*</term> + <listitem> + <para> + The video frame operations ordering is fixed: "-j -I -X -B -Z -Y -r -z -l -k -K -G -C" (executed from left to right). + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>*</term> + <listitem> + <para> + Shrinking the image with '-B' is not possible if the image width/height is not a multiple of 8, 16 or 32. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>*</term> + <listitem> + <para> + Expanding the image with '-X' is not possible if the image width/height is not a multiple of 8, 16 or 32. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>*</term> + <listitem> + <para> + The final frame width/height should be a multiple of 8. (to avoid encoding problems with some codecs) + </para> + <variablelist> + <varlistentry> + <term>1.</term> + <listitem> + <para> + Reducing the video height/width by 2,4,8 Option '-r factor' can be used to shrink the video image by a constant factor, this factor can be 2,4 or 8. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>2.</term> + <listitem> + <para> + Clipping and changing the aspect ratio <command>transcode</command> uses 3 steps to produce the input image for the export modules + </para> + <variablelist> + <varlistentry> + <term>1.</term> + <listitem> + <para>Clipping of the input image.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>2.</term> + <listitem> + <para>Changing the aspect ratio of the 1) output.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>3.</term> + <listitem> + <para>Clipping of the 2) output.</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + <varlistentry> + <term>*</term> + <listitem> + <para> + <emphasis>Bits per pixel</emphasis> + (bits/pixel) is a value transcode calculates and prints when starting up. It is mainly useful when encoding to MPEG4 (xvid, divx, etc). You'll see line like + </para> + <para>[transcode] V: bits/pixel | 0.237</para> + <para> + Simplified said, bits/pixel quantifies how good an encode will be. Although this value depends heavily on the used input material, as a general rule of thump it can be said that values greater or close to 0.2 will result in good encodes, encodes with values less than 0.15 will have noticeable artifacts. + </para> + <para> + <emphasis>Bits per pixel</emphasis> + depends on the resolution, bitrate and frames per second. If you have a low value ( < 0.15), you might want to raise the bitrate or encode at a lower resolution. The exact formula is + </para> + <literallayout> + bitrate*1000 + bpp = ------------------ + width*height*fps + </literallayout> + </listitem> + </varlistentry> + <varlistentry> + <term>*</term> + <listitem> + <para> + <emphasis>AC3 / Multiple channels</emphasis> + </para> + <para> + When you do import an audio stream which has more then two audio channels - this is usually the case for AC3 audio - transcode will automagically downmix to two channels (stereo). You'll see line like + </para> + <para>[transcode] A: downmix | 5 channels -> 2 channels</para> + <para> + This is done, because most encoders and audio filters can not handle more than 2 channels correctly. The PCM internal representation does not support more than two channels, audio will be downmixed to stereo <emphasis>No</emphasis> downmix will happen, if you use AC3 as the internal audio codec or use audio pass-through. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id='examples'> + <title>Examples</title> + <para> + The following command will read it's input from the DVD drive (I assume <filename>/dev/dvd</filename> is a symbolic link to the actual DVD device) and produce a splitted divx4 movie according to the chapter information on the DVD medium. The output files will be named <emphasis>my_movie-ch00.avi</emphasis>, <emphasis>my_movie-ch01.avi</emphasis> ... + </para> + <literallayout> + <userinput> + transcode -i /dev/dvd/ -x dvd -j 16,0 -B 5,0 -Y 40,8 -s 4.47 -U my_movie -y xvid -w 1618 + </userinput> + </literallayout> + <para> + Option <option>-j 16,0</option> will be expanded to <option>-j 16,0,16,0</option> and results in 16 rows from the top and the bottom of the image to be cut off. This may be usefull if the source consists of black top and bottom bars. + </para> + <para> + Option <option>-B 5,0</option> tells <command>transcode</command> to shrink the resulting image by 5*32=160 rows in height. + </para> + <para> + Option <option>-Y 40,8</option> will be expanded to <option>-Y 40,8,40,8</option> and tells <command>transcode</command> to ... + </para> + <para> + Option <option>-s 4.47</option> tells <command>transcode</command> to increase audio volume by a factor 4.47. + </para> + <para> + Option <option>-U my_movie</option> tells <command>transcode</command> to operate in chapter mode and produce output to files named <emphasis>my_movie-ch00.avi</emphasis>, <emphasis>my_movie-ch01.avi</emphasis>.... You can either merge the files afterwards with avimerge or add the option --no_split to the command line. + </para> + <para> + Option <option>-y xvid</option> tells <command>transcode</command> to use the export module export_xvid.so which in turn uses the XviD encoder to encode the video. + </para> + <para> + Option <option>-w 1618</option> tells <command>transcode</command> to set the encoder bitrate to 1618 which is lower than the default of 1800 and results in smaller files with the loss of visual quality. + </para> + <variablelist> + <varlistentry> + <term>Lets assume that you have an NTSC DVD (720x480) and you want to make an NTSC-SVCD</term> + <listitem> + <para> + The frame size of the DVD movie is 720x480 @ 16:9. For the purpose of frame resizing, the width 720 is not relavant (that is, it will not be used in the following reasoning). It is not needed because the original frame size is really defined by the frame height and aspect ratio. The _final result_ should be 640x480, encoded as 480x480 @ 4:3 (the height 480 multiplied by the aspect ratio 4:3 gives the width 640). This same frame size (640x480) can also be encoded as 640x360 @ 16:9 + (the height 360 by the aspect ratio 16:9 gives the width + 640). + </para> + <para> + As the _original video_ has aspect ratio 16:9, first we resize to 640x360, keeping that aspect ratio. But the aspect ratio has to be changed to 4:3. To find the frame size in the new aspect ratio the height 360 is multiplied by the new aspect ratio, giving the width 480. This is accomplished with the transcode options "<option>--export_asr</option> 2 -Z 480x360,fast". + </para> + <para> + To avoid stretching the video height in this change (because the new aspect ratio is less than the original), black borders should be added at the top and bottom of the video, bringing the frame to the desired 480x480 @ 4:3 size. The transcode option for this is "-Y -60,0,-60,0". + </para> + <para> + If for some reason (maybe a subtitle filter) the black borders (of height 60 each) should be added before resizing the frame and changing the aspect ratio to 4:3. One reason for that would be the need of running a _pre_ filter after adding the black borders. Then the options "-j" or "--pre_clip" can be used instead of "-Y". In this case the black border height has to be recalculated by applying the aspect ratio 4:3 to the value alreadyfound: 60 * (4/3) = 80. The transcode options "-j -80,0,-80,0" or "--pre_clip -80,0,-80,0" are then used instead of "-Y -60,0,-60,0", and "-Z 480x360,fast" is replaced by "-Z 480x480,fast". + </para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id='authors'> + <title>Authors</title> + <para> + Written by Thomas Oestreich <[email protected]>, + Tilmann Bitterberg and the Transcode-Team + </para> + <para> + See the <emphasis>AUTHORS</emphasis> file for details. + </para> + </refsect1> + + <refsect1 id='see_also'> + <title>See Also</title> + <para> + <citerefentry> + <refentrytitle>transcode_export</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>transcode_filter</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>transcode_import</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>avifix</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>avisync</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>avimerge</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>avisplit</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tcprobe</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tcscan</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tccat</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tcdemux</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tcextract</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tcdecode</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tcmodinfo</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tcxmlcheck</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>transcode</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + </para> + <!-- .br --> + </refsect1> + + <refsect1 id='www'> + <title>WWW</title> + <para> + Frequently asked questions (FAQ) at + <ulink url='a'> + http://www.transcoding.org/cgi-bin/transcode?Transcode_FAQ + </ulink> + Example transcode sessions at + <ulink url='a'> + http://www.transcoding.org/cgi-bin/transcode?Command_Examples + </ulink> + </para> + </refsect1> + + <refsect1 id='bugs'> + <title>Bugs</title> + <para> + Yes, there are bugs in transcode! + Do your part and report them immediately. + </para> + <para> + For details, see + <ulink url='a'> + http://www.transcoding.org/cgi-bin/transcode?Reporting_Problems + </ulink> + </para> + </refsect1> +</refentry> + diff --git a/debian/transcode/transcode-1.1.7/docs/man/transcode_export.1 b/debian/transcode/transcode-1.1.7/docs/man/transcode_export.1 new file mode 100644 index 00000000..8f4d9836 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/transcode_export.1 @@ -0,0 +1,380 @@ +.TH transcode export modules 1 "3th February 2008" "transcode_export(1)" +.SH NAME +transcode \- export modules collection +.SH SYNOPSIS +.B transcode -y module[,module[,module]] [other options] +.SH COPYRIGHT +\fBtranscode\fP is Copyright (C) 2001-2003 by Thomas Oestreich, 2003-2004 Tilmann +Bitterberg, 2004-2010 Transcode Team +.SH ENCODER PARAMETERS STRING + +Module-dependent parameters can be passed to encoder using the -F transcode(1) option: + +.RS 4 +.B transcode \-F \fIcodec_string\fP +.RE + +Those parameters tune the general behaviour of the export module. More specific settings can fine-tune the +export settings. Those settings are passed to export modules through \fBmodule options\fP or through +the \fBmodule configuration file\fP; both configuration file and options can be present at same time: +in that case, the options overrides the configuration file. Passing option strings to export modules +is done like to pass options to filter modules: +The syntax is: + +.RS 4 +.B transcode \-y vmod=options,amod=options +.RE + +see transcode_filter(1) for full reference and examples. + +The \-F parameter has different meanings for different export modules, as documented on section below. +.br + +.SH ENCODER MODULES PARAMETERS + +.TP +\fIffmpeg\fP: + The codec String for the codec you want to encode. Example values are -F mpeg4 or -F mpeg1video or -F huffyuv. To get a list of valid codecs, use -F list + +.TP +\fIim\fP: + The name of the image format you want to export. Example values are '-F jpg' (default) or '-F png' or -F 'gif'. With -F jpg, -w gives quality in percent. With -F png, the first digit of -w gives compression level, the second one gives quality, so -w 95 selects best compression level (9) and 5 means PNG adaptive filtering. + +.TP +\fIjpg\fP: + The quality of the JPEG encode in percent. Example values are '-F 75' (default) or '-F 100' + +.TP +\fImov\fP: + Syntax: -F "<vcodec>,<acodec>[,<parameters>]" + <vcodec> = Videocodec to encode with. Default: "mjpa" + <acodec> = Audiocodec to encode with. Default: "ima4" + <parameters> = A comma seperated list of parameters + to be passed to the codec. + +Note: You can use "list" instead of a video/audiocodec or parameter to get a list of supported options. + +.TP +\fImpeg\fP: + Syntax: -F "<base-profile>[,<resizer-mode>[,user-profile]]" + <base-profile> can be one of + '1' = MPEG 1 (default) + 'b' = big MPEG 1 (experimental) + 'v' = VCD + 's' = SVCD + '2' = MPEG2 + 'd' = DVD compliant + <resizer-mode> can be one of + 0 = disable resizer (default) + 1 = 352x288 + 2 = 480x480 + 3 = 480x576 + 4 = 352x240 + <user-profile> is a filename of the profile file. You can either specify the absolute path to the file or if you transcode will look for it in the directory where you started transcode. + +.TP +\fImpeg2enc\fP: + Syntax: -F "<base-profile>[,<options_string>]" + <base-profile> can be one of + '0' = Generic MPEG1 (default) + '1' = Standard VCD + '2' = User VCD + '3' = Generic MPEG2 + '4' = Standard SVCD + '5' = User SVCD + '6' = Manual parameter mode + '8' = DVD + <options_string> will be passed down to mpeg2enc untouched by transcode. Have a look at the manpage for mpeg2enc. + +.TP +\fIraw\fP: + The name of the image format to use for uncompressed video. Examples are I420 (YUV 4:2:0 planar), YV12 (the same thing with U and V reversed), or UYVY (YUV 4:2:2 packed). Use "-F help" to get a list of formats. + +.SH EXPORT MODULES +If no module is specified through the \fI-y\fP option, transcode will use +the \fInull\fP module for both audio and video export. If a multiplex module +is given, by giving \fBthree\fP export module names instead the usual two, +transcode will use the new-style encode/multiplex modules (still under development, +see the encode and multiplex directories); if no multiplex module is given, +the traditional export modules will be used. +.br +To see what export modules are avalaible for your transcode installation, do a + +.RS 4 +.B ls -1 $( tcmodinfo -p )/export*.so +.RE + +A complete transcode installation has the following export modules: +.RS +.\" Here starts the generated export part, produced by make-module-man.sed +.TP 4 +\fBac3\fP \- (video) null | (audio) ac3 +.br +This module has no compile-time dependencies. +At run-time ffmpeg must be present. +Support for this module is good. +.RS 8 +Encodes audio (raw PCM) to AC3 via the ffmpeg binary. +.br +Supported processing formats: audio - PCM, video - none +.RE +.TP 4 +\fBaf6\fP \- (video) Win32 dll | (audio) MPEG/AC3/PCM +.br +At compile-time libavifile must be available. +At run-time libavifile and win32codecs must be present. +Support for this module is good. +.RS 8 +Interface to the avifile library which allows the use of win32codec on the linux-x86 platform. +.br +Supported processing formats: audio - RAW (pass-through) PCM AC3, video - RGB YUV +.RE +.TP 4 +\fBdivx5\fP \- (video) DivX 5.xx | (audio) MPEG/AC3/PCM +.br +At compile-time libmp3lame (only for MPEG audio layer III) must be available. +At run-time divx4linux (new) and libdivxencore.so must be present. +Support for this module is good. +.RS 8 +Encodes MPEG4 video using the closed-source binaries from divx.com to an AVI container. +.br +Supported processing formats: audio - RAW (pass-through) PCM AC3, video - RGB YUV +.RE +.TP 4 +\fBdv\fP \- (video) Digital Video | (audio) MPEG/AC3/PCM +.br +At compile-time libdv and libmp3lame (only for MPEG audio layer III) must be available. +At run-time libdv must be present. +Support for this module is good. +.RS 8 +Encodes DV into an AVI container. DV is a codec developed by Sony and is often used in digital camcorders. +.br +Supported processing formats: audio - PCM AC3, video - RGB YUV +.RE +.TP 4 +\fBdvraw\fP \- (video) Digital Video | (audio) PCM +.br +At compile-time libdv must be available. +At run-time libdv must be present. +Support for this module is good. +.RS 8 +Encodes DV into a DV file. DV is a codec developed by Sony and is often used in digital camcorders. A raw DV file can be played back into the camcorder. +.br +Supported processing formats: audio - PCM, video - RAW (pass-through) RGB YUV YUV422 +.RE +.TP 4 +\fBffmpeg\fP \- (video) * | (audio) MPEG/AC3/PCM +.br +At compile-time libmp3lame (only for MPEG audio layer III) must be available. +This module has no run-time dependencies. +Support for this module is good. +.RS 8 +Encodes many different formats to both AVI and raw. Supported are mpeg1video, mpeg2video, mpeg4, mjpeg, h263, h263p, wmv1, wmv2, rv10, msmpeg4, msmpeg4v2, huffyuv and dvvideo. +.br +Supported processing formats: audio RAW (pass-through) PCM AC3, video - RGB YUV YUV422 +.RE +.TP 4 +\fBim\fP \- (video) * | (audio) MPEG/AC3/PCM +.br +At compile-time libImageMagick must be available. +This module has no run-time dependencies. +Support for this module is good. +.RS 8 +Encodes image sequences by using the ImageMagick library. ImageMagick is able to handle a lot of different image formats such as png, jpg, miff, tiff, etc. Use -F to select the desired format. +.br +Supported processing formats: audio - RAW (pass-through) PCM, video - RGB YUV +.RE +.TP 4 +\fBjpg\fP \- (video) * | (audio) MPEG/AC3/PCM +.br +At compile-time libjpeg must be available. +This module has no run-time dependencies. +Support for this module is good. +.RS 8 +Encodes jpg image sequences using libjpeg. Faster than ImageMagick. Use -F to select the compression quality. +.br +Supported processing formats: audio - RAW (pass-through) PCM, video - RGB YUV +.RE +.TP 4 +\fBlame\fP \- (audio) MPEG 1/2 +.br +At compile-time libmp3lame (only for MPEG audio layer III) must be available. +At run-time lame and sox must be present. +Support for this module is good. +.RS 8 +An audio-only encoder which drives the lame binary. The tool sox is used to do resampling if required. Encodes to a MP3 file. +.br +Supported processing formats: audio - PCM, video - none +.RE +.TP 4 +\fBlzo\fP \- (video) LZO real-time compression | (audio) MPEG/AC3/PCM +.br +At compile-time liblzo and libmp3lame (only for MPEG audio layer III) must be available. +This module has no run-time dependencies. +Support for this module is good. +.RS 8 +Encodes video using a loss-less real-time LZO codec. This codec is a homegrown invention of transcode and is intended as an intermediate storage format. MPlayer can playback LZO-based AVI files as well. +.br +Supported processing formats: audio - RAW (pass-through) PCM AC3, video - RAW (pass-through) RGB YUV DV +.RE +.TP 4 +\fBmov\fP \- (video) * | (audio) * +.br +At compile-time libquicktime must be available. +At run-time libquicktime must be present. +Support for this module is fair. +.RS 8 +Interface to the quicktime library. +.br +Supported processing formats: audio - PCM, video - RAW (pass-through) RGB YUV YUV422 YUY2 +.RE +.TP 4 +\fBmp2\fP \- (video) null | (audio) MPEG 1/2 +.br +This module has no compile-time dependencies. +At run-time ffmpeg and sox must be present. +Support for this module is good. +.RS 8 +Encodes audio (raw PCM) to MPEG 1 Layer 2 audio aka mp2. Additionaly it can change the speed of the audio stream by a factor you can specify. See docs/export_mp2.txt. +.br +Supported processing formats: audio - PCM, video - none +.RE +.TP 4 +\fBmp2enc\fP \- (audio) MPEG 1/2 +.br +At compile-time mjpegtools must be available. +At run-time mp2enc must be present. +Support for this module is good. +.RS 8 +Drives the mp2enc binary and writes an MP2 (MPEG1-Layer2) file. Useful for when encoding to SVCD to be multiplexed with mplex after encoding. +.br +Supported processing formats: audio - PCM, video - none +.RE +.TP 4 +\fBmpeg2enc\fP \- (video) MPEG 1/2 +.br +At compile-time mjpegtools must be available. +At run-time mpeg2enc must be present. +Support for this module is good. +.RS 8 +Drives the mpeg2enc binary. mpeg2enc is a very feature rich MPEG encoder, have a look at its manpage. Encodes generic mpeg1, VCD, SVCD, MPEG2 and DVD type video. +.br +Supported processing formats: audio - none, video - RGB YUV +.RE +.TP 4 +\fBnull\fP \- (video) null | (audio) null +.br +This module has no compile-time dependencies. +This module has no run-time dependencies. +Support for this module is good. +.RS 8 +Data sink. Does nothing else than discarding data. +.br +Supported processing formats: audio - none, video - none +.RE +.TP 4 +\fBogg\fP \- (video) null | (audio) ogg +.br +This module has no compile-time dependencies. +At run-time oggenc must be present. +Support for this module is good. +.RS 8 +Drives the oggenc binary. Encodes an Ogg/Vorbis file. Resamples. +.br +Supported processing formats: audio - PCM, video - none +.RE +.TP 4 +\fBppm\fP \- (video) PPM/PGM | (audio) MPEG/AC3/PCM +.br +This module has no compile-time dependencies. +This module has no run-time dependencies. +Support for this module is good. +.RS 8 +Writes an image sequence of PGM or PPM files. PPM is an old format and there are several tools around to manipulate such files. +.br +Supported processing formats: audio - RAW (pass-through) PCM AC3, video - RGB YUV +.RE +.TP 4 +\fBpvm\fP \- (video) * | (audio) * +.br +At compile-time libpvm3 must be available. +At run-time pvm must be present. +Support for this module is good. +.RS 8 +Meta module. It allows transcode to be used in a PVM cluster. See docs/export_pvm.txt +.br +Supported processing formats: audio - RAW (pass-through) PCM AC3, video - RAW (pass-through) RGB YUV DV YUV422 YUY2 +.RE +.TP 4 +\fBraw\fP \- (video) * | (audio) MPEG/AC3/PCM +.br +This module has no compile-time dependencies. +This module has no run-time dependencies. +Support for this module is good. +.RS 8 +Can write uncompressed streams to an AVI file as well as raw mpeg2 files in pass-through mode. The image format for uncompressed streams can be selected with -F (use -F help to see available formats). +.br +Supported processing formats: audio - RAW (pass-through) PCM AC3, video - RAW (pass-through) RGB YUV DV YUV422 +.RE +.TP 4 +\fBtoolame\fP \- (audio) MPEG 1/2 +.br +This module has no compile-time dependencies. +At run-time toolame and sox must be present. +Support for this module is good. +.RS 8 +Drives the toolame binary to create MP2 audio tracks. Sox is used for resampling if requested. +.br +Supported processing formats: audio - PCM, video - none +.RE +.TP 4 +\fBwav\fP \- (audio) WAVE PCM +.br +This module has no compile-time dependencies. +This module has no run-time dependencies. +Support for this module is good. +.RS 8 +Creates WAVE PCM files with interleaved audio for stereo. +.br +Supported processing formats: audio - PCM, video - RAW (pass-through) RGB YUV +.RE +.TP 4 +\fBxvid4\fP \- (video) XviD 1.0.x series (aka API 4.0) | (audio) MPEG/AC3/PCM +.br +At compile-time libmp3lame (only for MPEG audio layer III) must be available. +At run-time libxvidcore.so.4 must be present. +Support for this module is good. +.RS 8 +Encodes MPEG4 video using the library available from xvid.org. Check out the library from xvidcvs using cvs -d :pserver:[email protected]:/xvid co -rdev-api-4 xvidcore. There is also a tool available to create configuration files for this xvid version at http://zebra.fh-weingarten.de/transcode/xvid4conf. The output can either be an AVI file or a MPEG4 elementary stream (with -F raw). +.br +Supported processing formats: audio - RAW (pass-through) PCM AC3, video - RGB YUV YUV422 +.RE +.TP 4 +\fByuv4mpeg\fP \- (video) YUV4MPEG2 | (audio) MPEG/AC3/PCM +.br +At compile-time mjpegtools must be available. +This module has no run-time dependencies. +Support for this module is good. +.RS 8 +Writes the uncompressed raw YUV data in a YUV4MPEG format as used by the lav* and mjpeg* tools. +.br +Supported processing formats: audio - RAW (pass-through) PCM AC3, video - RGB YUV +.RE +.\" Here ends the generated export part, produced by make-module-man.sed +.RE +.IP + +.PP +.SH AUTHORS +.B transcode +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.PP +.SH SEE ALSO +.BR transcode (1), +.BR tcmodinfo (1), +.BR transcode_import(1), +.BR transcode_filter(1), +.br diff --git a/debian/transcode/transcode-1.1.7/docs/man/transcode_filter.1 b/debian/transcode/transcode-1.1.7/docs/man/transcode_filter.1 new file mode 100644 index 00000000..14fc6d29 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/transcode_filter.1 @@ -0,0 +1,1863 @@ +.TH transcode filter modules 1 "3th February 2008" "transcode_filter(1)" +.SH NAME +transcode \- filter modules collection +.SH SYNOPSIS +.B transcode -J filters [other options] +.SH COPYRIGHT +\fBtranscode\fP is Copyright (C) 2001-2003 by Thomas Oestreich, 2003-2004 Tilmann +Bitterberg, 2004-2008 Transcode Team + +.SH MODULE OPTIONS +The syntax for filter options is simple. A filter is specified with + +.RS 4 +.nf +\-J filter=\fIoptionstring\fP +.fi +.RE + +The optionstring can contain multiple options which are separated by colons \`:\' + +.RS 4 +.nf +\-J filter=\fIoption1\fP:\fIoption2\fP:\fIoption3\fP +.fi +.RE + +An option can have an argument or non (bool). For options with an argument, the +format in which the argument has to be given to the option is specified in a +printf(1) like string. The most common case is `%d' which simply means a number. The argument has to be seperated from the option by a \`=\'. + +.RS 4 +.nf +\-J filter=\fIbool1\fP:\fIoption1\fP=\fI15\fP:\fIoption2\fP=\fI20x30\fP +.fi +.RE + +Most filters try to do the right thing with the default options. You should +play with various parameters if you are not satisfied with the default +behaviour. If you have no idea what a filter does, its very likely that you +don't need it. + +If a filter takes (for eg.) a filename as an argument, make sure that the +filename does not contain a `:' or a `='. Its a limitation of the parser. A +comma `,' is possible but must be extra quoted. For the text filter that is + +.RS 4 +.nf +\-J text=string="Hello\\, World" +.fi +.RE + +.SH FILTER MODULES +To see what filter modules are avalaible for your transcode installation, do a + +.RS 4 +.B ls -1 $( tcmodinfo -p )/filter*.so +.RE + +A complete transcode installation has the following filter modules: + +.br +.\" Here starts the generated filter part, produced by make-filter-man.sh +.TP 4 +\fB29to23\fP - \fBframe rate conversion filter (interpolating 29 to 23)\fP +\fB29to23\fP was written by Max Alekseyev, Tilmann Bitterberg. The version documented here is v0.3 (2003-07-18). This is a video filter. It can handle RGB and YUV mode. It is a pre-processing only filter. +.TP 4 +\fB32detect\fP - \fB3:2 pulldown / interlace detection plugin\fP +\fB32detect\fP was written by Thomas. The version documented here is v0.2.4 (2003-07-22). This is a video filter. It can handle RGB and YUV mode. It supports multiple instances and can run as a pre-processing and/or as a post-processing filter. +.IP +.RS +\(bu +.I threshold += \fI%d\fP [default \fI9\fP] +.RS 3 +Interlace detection threshold +.RE +\(bu +.I chromathres += \fI%d\fP [default \fI4\fP] +.RS 3 +Interlace detection chroma threshold +.RE +\(bu +.I equal += \fI%d\fP [default \fI10\fP] +.RS 3 +threshold for equal colors +.RE +\(bu +.I chromaeq += \fI%d\fP [default \fI5\fP] +.RS 3 +threshold for equal chroma +.RE +\(bu +.I diff += \fI%d\fP [default \fI30\fP] +.RS 3 +threshold for different colors +.RE +\(bu +.I chromadi += \fI%d\fP [default \fI15\fP] +.RS 3 +threshold for different chroma +.RE +\(bu +.I force_mode += \fI%d\fP [default \fI0\fP] +.RS 3 +set internal force de-interlace flag with mode -I N +.RE +\(bu +.I pre += \fI%d\fP [default \fI1\fP] +.RS 3 +run as pre filter +.RE +\(bu +.I verbose +(bool) +.RS 3 +show results +.RE +.IP +This filter checks for interlaced video frames. +Subsequent de-interlacing with transcode can be enforced with 'force_mode' option +.RE +.TP 4 +\fB32drop\fP - \fB3:2 inverse telecine removal plugin\fP +\fB32drop\fP was written by Thomas Oestreich. The version documented here is v0.4 (2003-02-01). This is a video filter. It can handle RGB and YUV mode. It is a pre-processing only filter. +.TP 4 +\fBaclip\fP - \fBgenerate audio clips from source\fP +\fBaclip\fP was written by Thomas Oestreich. The version documented here is v0.1.1 (2003-09-04). This is a audio filter. It is a pre-processing only filter. +.IP +.RS +\(bu +.I level += \fI%d\fP [default \fI10\fP] +.RS 3 +The audio must be under this level to be skipped +.RE +\(bu +.I range += \fI%d\fP [default \fI25\fP] +.RS 3 +Number of samples over level will be keyframes +.RE +.RE +.TP 4 +\fBastat\fP - \fBaudio statistics filter plugin\fP +\fBastat\fP was written by Thomas Oestreich. The version documented here is v0.1.3 (2003-09-04). This is a audio filter. It is a pre-processing only filter. +.IP +.RS +\(bu +.I file += \fI%s\fP +.RS 3 +File to save the calculated volume rescale number to +.RE +.RE +.RE +.TP 4 +\fBcompare\fP - \fBcompare with other image to find a pattern\fP +\fBcompare\fP was written by Antonio Beamud. The version documented here is v0.1.2 (2003-08-29). This is a video filter. It can handle RGB and YUV mode. It supports multiple instances. It is a post-processing only filter. +.IP +.RS +\(bu +.I pattern += \fI%s\fP +.RS 3 +Pattern image file path +.RE +\(bu +.I results += \fI%s\fP +.RS 3 +Results file path +.RE +\(bu +.I delta += \fI%f\fP [default \fI45.000000\fP] +.RS 3 +Delta error +.RE +.IP +Generate a file in with information about the times, frame, etc the pattern +defined in the image parameter is observed. +.RE +.IP +The format of the command file is framenumber followed by at least one whitespace followed +by the command followed by at least one whitespace followed by arguments for the command. +Empty lines and lines starting with a `#' are ignored. The frame numbers must be sorted ascending. + + # Example file + # At frame 10 load the smooth filter + 10 load smooth + # reconfigure at 20 + 20 configure smooth=strength=0.9 + 99 disable smooth + + +.RE +.TP 4 +\fBcpaudio\fP - \fBcopy one audio channel to the other channel filter plugin\fP +\fBcpaudio\fP was written by William H Wittig. The version documented here is v0.1 (2003-04-30). This is a audio filter. It is a post-processing only filter. +.IP +.RS +\(bu +.I source += \fI%c\fP [default \fIl\fP] +.RS 3 +Source channel (l=left, r=right) +.RE +.IP +Copies audio from one channel to another +.RE +.TP 4 +\fBdecimate\fP - \fBNTSC decimation plugin\fP +\fBdecimate\fP was written by Thanassis Tsiodras. The version documented here is v0.4 (2003-04-22). This is a video filter. It can handle YUV mode only. It is a post-processing only filter. +.IP +.RS +\(bu +.I verbose +(bool) +.RS 3 +print verbose information +.RE +.IP +see /docs/README.Inverse.Telecine.txt +.RE +.TP 4 +\fBdenoise3d\fP - \fBHigh speed 3D Denoiser\fP +\fBdenoise3d\fP was written by Daniel Moreno & A'rpi. The version documented here is v1.0.6 (2003-12-20). This is a video filter. It can handle YUV mode only. It supports multiple instances. It can be used as a pre-processing or as a post-processing filter. +.IP +.RS +\(bu +.I luma += \fI%f\fP [default \fI4.000000\fP] +.RS 3 +spatial luma strength +.RE +\(bu +.I chroma += \fI%f\fP [default \fI3.000000\fP] +.RS 3 +spatial chroma strength +.RE +\(bu +.I luma_strength += \fI%f\fP [default \fI6.000000\fP] +.RS 3 +temporal luma strength +.RE +\(bu +.I chroma_strength += \fI%f\fP [default \fI4.000000\fP] +.RS 3 +temporal chroma strength +.RE +\(bu +.I pre += \fI%d\fP [default \fI0\fP] +.RS 3 +run as a pre filter +.RE +.IP +What: +The denoise3d filter from mplayer (sibling of hqdn3d). Works very crude and +simple but also very fast. In fact it is even faster than the original from +mplayer as I managed to tweak some things (a.o. zero frame copying). + +Who: +Everyone who wants to have their captured frames thoroughly denoised (i.e. who +want to encode to mpeg or mjpeg) but do not have enough processing power to +real-time encode AND use hqdn3d (better quality but a lot slower) or dnr (yet +slower), not to mention the other denoisers that are even slower. Quality is +really good for static scenes (if fed with the right parameters), moving +objects may show a little ghost-image (also depends on parameters) though. Your +milage may vary. + +How: +Parameters are the same as the hqdn3d module, although in practice you'll not +end up with exactly the same values. Just experiment. Particular for this +version of the filter is that if you supply -1 to either component's parameters +(luma/chroma), that component will not have the filter applied to. If you're +still short on CPU cycles, try disabling the luma filter, this will not make +much difference in the effectiveness of the filter! +.RE +.TP 4 +\fBdetectclipping\fP - \fBdetect clipping parameters (-j or -Y)\fP +\fBdetectclipping\fP was written by Tilmann Bitterberg, A'rpi. The version documented here is v0.1.0 (2003-11-01). This is a video filter. It can handle RGB and YUV mode. It supports multiple instances and can run as a pre-processing and/or as a post-processing filter. +.IP +.RS +\(bu +.I range += \fI%u-%u/%d\fP [default \fI0-4294967295/1\fP] +.RS 3 +apply filter to [start-end]/step frames +.RE +\(bu +.I limit += \fI%d\fP [default \fI24\fP] +.RS 3 +the sum of a line must be below this limit to be considered as black +.RE +\(bu +.I post +(bool) +.RS 3 +run as a POST filter (calc -Y instead of the default -j) +.RE +.IP +Detect black regions on top, bottom, left and right of an image. It is suggested that the filter is run for around 100 frames. It will print its detected parameters every frame. If you don't notice any change in the printout for a while, the filter probably won't find any other values. The filter converges, meaning it will learn. +.RE +.TP 4 +\fBdetectsilence\fP - \fBaudio silence detection with tcmp3cut commandline generation\fP +\fBdetectsilence\fP was written by Tilmann Bitterberg. The version documented here is v0.0.1 (2003-07-26). This is a audio filter. It is a pre-processing only filter. +.TP 4 +\fBdivxkey\fP - \fBcheck for DivX 4.xx / OpenDivX / DivX;-) keyframe\fP +\fBdivxkey\fP was written by Thomas Oestreich. The version documented here is v0.1 (2002-01-15). This is a video filter. It is a pre-processing only filter. +.TP 4 +\fBdnr\fP - \fBdynamic noise reduction\fP +\fBdnr\fP was written by Gerhard Monzel. The version documented here is v0.2 (2003-01-21). This is a video filter. It can handle RGB and YUV mode. It is a post-processing only filter. +.IP +.RS +\(bu +.I lt += \fI%d\fP [default \fI10\fP] +.RS 3 +Threshold to blend luma/red +.RE +\(bu +.I ll += \fI%d\fP [default \fI4\fP] +.RS 3 +Threshold to lock luma/red +.RE +\(bu +.I ct += \fI%d\fP [default \fI16\fP] +.RS 3 +Threshold to blend croma/green+blue +.RE +\(bu +.I cl += \fI%d\fP [default \fI8\fP] +.RS 3 +Threshold to lock croma/green+blue +.RE +\(bu +.I sc += \fI%d\fP [default \fI30\fP] +.RS 3 +Percentage of picture difference (scene change) +.RE +.IP +see /docs/filter_dnr.txt (german only) +.RE +.TP 4 +\fBdoublefps\fP - \fBdouble frame rate by deinterlacing fields into frames\fP +\fBdoublefps\fP was written by Andrew Church. The version documented here is v1.1 (2006-05-14). This is a video and audio filter. It can handle YUV and YUV422 modes. It is a pre-processing only filter. +.IP +.RS +\(bu +.I topfirst += \fI%d\fP [default \fI0\fP when height=480, else \fI1\fP] +.RS 3 +Assume top field is displayed first +.RE +\(bu +.I fullheight += \fI%d\fP [default \fI0\fP] +.RS 3 +Output full-height frames +.RE + +Doubles the frame rate of interlaced video by separating each field +into a separate frame. The fields can either be left as is (giving a +progessive video with half the height of the original) or re-interlaced +into their original height (at the doubled frame rate) for the +application of a separate deinterlacing filter. + +Note that due to transcode limitations, it is currently necessary to use +the -Z option to specify the output frame size when using half-height mode +(this does not slow the program down if no actual zooming is done). +.RE +.TP 4 +\fBextsub\fP - \fBDVD subtitle overlay plugin\fP +\fBextsub\fP was written by Thomas Oestreich. The version documented here is 0.3.5 (2003-10-15). This is a video filter. It can handle RGB and YUV mode. It can be used as a pre-processing or as a post-processing filter. +.IP +.RS +\(bu +.I track += \fI%d\fP [default \fI0\fP] +.RS 3 +Subtitle track to render +.RE +\(bu +.I vertshift += \fI%d\fP [default \fI0\fP] +.RS 3 +offset of subtitle with respect to bottom of frame in rows +.RE +\(bu +.I timeshift += \fI%d\fP [default \fI0\fP] +.RS 3 +global display start time correction in msec +.RE +\(bu +.I antialias += \fI%d\fP [default \fI1\fP] +.RS 3 +anti-aliasing the rendered text (0=off,1=on) +.RE +\(bu +.I pre += \fI%d\fP [default \fI1\fP] +.RS 3 +Run as a pre filter +.RE +\(bu +.I color1 += \fI%d\fP [default \fI0\fP] +.RS 3 +Make a subtitle color visible with given intensity +.RE +\(bu +.I color2 += \fI%d\fP [default \fI0\fP] +.RS 3 +Make a subtitle color visible with given intensity +.RE +\(bu +.I ca += \fI%d\fP [default \fI0\fP] +.RS 3 +Shuffle the color assignment by choosing another subtitle color +.RE +\(bu +.I cb += \fI%d\fP [default \fI0\fP] +.RS 3 +Shuffle the color assignment by choosing another subtitle color +.RE +.RE +.TP 4 +\fBfieldanalysis\fP - \fBField analysis for detecting interlace and telecine\fP +\fBfieldanalysis\fP was written by Matthias Hopf. The version documented here is v1.0 pl1 (2004-08-13). This is a video filter. It can handle RGB,YUV and YUV422 mode. It is a pre-processing only filter. +.IP +.RS +\(bu +.I interlacediff += \fI%f\fP [default \fI1.1\fP] +.RS 3 +Minimum temporal inter-field difference for detecting interlaced video +.RE +\(bu +.I unknowndiff += \fI%f\fP [default \fI1.5\fP] +.RS 3 +Maximum inter-frame change vs. detail differences for neglecting interlaced video +.RE +\(bu +.I progressivediff += \fI%f\fP [default \fI8\fP] +.RS 3 +Minimum inter-frame change vs. detail differences for detecting progressive video +.RE +\(bu +.I progressivechange += \fI%f\fP [default \fI0.2\fP] +.RS 3 +Minimum temporal change needed for detecting progressive video +.RE +\(bu +.I changedifmore += \fI%f\fP [default \fI10\fP] +.RS 3 +Minimum temporal change for detecting truly changed frames +.RE +\(bu +.I forcetelecinedetect += \fI%d\fP [default \fI0\fP] +.RS 3 +Detect telecine even on non-NTSC (29.97fps) video +.RE +\(bu +.I verbose += \fI%d\fP [default \fI0\fP] +.RS 3 +Output analysis for every frame +.RE +\(bu +.I outdiff += \fI%d\fP [default \fI0\fP] +.RS 3 +Output internal debug frames as luminance of YUV video (see source) +.RE +.RE +.TP 4 +\fBfields\fP - \fBField adjustment plugin\fP +\fBfields\fP was written by Alex Stewart. The version documented here is v0.1.1 (2003-01-21). This is a video filter. It can handle RGB and YUV mode. It is a pre-processing only filter. +.IP +.RS +\(bu +.I flip +(bool) +.RS 3 +Exchange the top field and bottom field of each frame +.RE +\(bu +.I shift +(bool) +.RS 3 +Shift the video by one field +.RE +\(bu +.I flip_first +(bool) +.RS 3 +Normally shifting is performed before flipping, this option reverses that +.RE +.IP +The 'fields' filter is designed to shift, reorder, and +generally rearrange independent fields of an interlaced +video input. Input retrieved from broadcast (PAL, NTSC, +etc) video sources generally comes in an interlaced form +where each pass from top to bottom of the screen displays +every other scanline, and then the next pass displays the +lines between the lines from the first pass. Each pass is +known as a "field" (there are generally two fields per +frame). When this form of video is captured and manipulated +digitally, the two fields of each frame are usually merged +together into one flat (planar) image per frame. This +usually produces reasonable results, however there are +conditions which can cause this merging to be performed +incorrectly or less-than-optimally, which is where this +filter can help. + +The following options are supported for this filter +(they can be separated by colons): + + shift - Shift the video by one field (half a frame), + changing frame boundaries appropriately. This is + useful if a video capture started grabbing video + half a frame (one field) off from where frame + boundaries were actually intended to be. + + flip - Exchange the top field and bottom field of each + frame. This can be useful if the video signal was + sent "bottom field first" (which can happen + sometimes with PAL video sources) or other + oddities occurred which caused the frame + boundaries to be at the right place, but the + scanlines to be swapped. + + flip_first + - Normally shifting is performed before flipping if + both are specified. This option reverses that + behavior. You should not normally need to use + this unless you have some extremely odd input + material, it is here mainly for completeness. + + help - Print this text. + +Note: the 'shift' function may produce slight color +discrepancies if YV12 is used as the internal transcode +video format (default). This is because YV12 does not +contain enough information to do field shifting cleanly. For +best (but slower) results, use RGB mode for field shifting. +.RE +.TP 4 +\fBfps\fP - \fBconvert video frame rate, gets defaults from -f and --export_fps\fP +\fBfps\fP was written by Christopher Cramer. The version documented here is v1.1 (2004-05-01). This is a video filter. It can handle RGB and YUV mode. It can be used as a pre-processing or as a post-processing filter. +.IP +.RS +.IP +options: <input fps>:<output fps> +example: -J fps=25:29.97 will convert from PAL to NTSC +If no options are given, defaults or -f/--export_fps/--export_frc will be used. +Some examples: + + -J fps=10:5:pre convert from 10 fps to 5 fps, preprocess + -J fps=10:post:12 convert from 10 to 12, postprocess + -J fps=pre=1:7:5 convert from 7 to 5, postprocess + -J fps=9:3.1:post=-0x7 convert from 9 to 3.1, postprocess + +If that last one is confusing you, remember that 0 is false and everything +else is true. Of course, octal and hexadecimal numbers are supported too. +This is intended to be backward compatible with the old format. +.RE +.TP 4 +\fBhqdn3d\fP - \fBHigh Quality 3D Denoiser\fP +\fBhqdn3d\fP was written by Daniel Moreno & A'rpi. The version documented here is v1.0.2 (2003-08-15). This is a video filter. It can handle YUV mode only. It supports multiple instances. It can be used as a pre-processing or as a post-processing filter. +.IP +.RS +\(bu +.I luma += \fI%f\fP [default \fI4.000000\fP] +.RS 3 +spatial luma strength +.RE +\(bu +.I chroma += \fI%f\fP [default \fI3.000000\fP] +.RS 3 +spatial chroma strength +.RE +\(bu +.I luma_strength += \fI%f\fP [default \fI6.000000\fP] +.RS 3 +temporal luma strength +.RE +\(bu +.I chroma_strength += \fI%f\fP [default \fI4.500000\fP] +.RS 3 +temporal chroma strength +.RE +\(bu +.I pre += \fI%d\fP [default \fI0\fP] +.RS 3 +run as a pre filter +.RE +.IP +This filter aims to reduce image noise producing smooth images and making still images really still (This should enhance compressibility). +.RE +.TP 4 +\fBinvert\fP - \fBinvert the image\fP +\fBinvert\fP was written by Tilmann Bitterberg. The version documented here is v0.1.4 (2003-10-12). This is a video filter. It can handle RGB,YUV and YUV422 mode. It is a post-processing only filter. +.IP +.RS +\(bu +.I range += \fI%u-%u/%d\fP [default \fI0-4294967295/1\fP] +.RS 3 +apply filter to [start-end]/step frames +.RE +.RE +.TP 4 +\fBivtc\fP - \fBNTSC inverse telecine plugin\fP +\fBivtc\fP was written by Thanassis Tsiodras. The version documented here is v0.4.1 (2004-06-01). This is a video filter. It can handle YUV mode only. It is a pre-processing only filter. +.IP +.RS +\(bu +.I verbose +(bool) +.RS 3 +print verbose information +.RE +\(bu +.I field += \fI%d\fP [default \fI0\fP] +.RS 3 +which field to replace (0=top 1=bottom) +.RE +\(bu +.I magic += \fI%d\fP [default \fI0\fP] +.RS 3 +perform magic? (0=no 1=yes) +.RE +.IP +see /docs/README.Inverse.Telecine.txt +.RE +.TP 4 +\fBlevels\fP - \fBLuminosity level scaler\fP +\fBlevels\fP was written by Bryan Mayland. The version documented here is v1.0.0 (2004-06-09). This is a video filter. It can handle YUV mode only. It supports multiple instances. It is a post-processing only filter. +.IP +.RS +\(bu +.I input += \fI%d-%d\fP [default \fI0-255\fP] +.RS 3 +input luma range (black-white) +.RE +\(bu +.I gamma += \fI%f\fP [default \fI1.000000\fP] +.RS 3 +input luma gamma +.RE +\(bu +.I output += \fI%d-%d\fP [default \fI0-255\fP] +.RS 3 +output luma range (black-white) +.RE +.RE +.TP 4 +\fBlogo\fP - \fBrender image in videostream\fP +\fBlogo\fP was written by Tilmann Bitterberg. The version documented here is v0.10 (2003-10-16). This is a video filter. It can handle RGB and YUV mode. It is a post-processing only filter. +.IP +.RS +\(bu +.I file += \fI%s\fP +.RS 3 +Image filename +.RE +\(bu +.I posdef += \fI%d\fP [default \fI0\fP] +.RS 3 +Position (0=None, 1=TopL, 2=TopR, 3=BotL, 4=BotR, 5=Center) +.RE +\(bu +.I pos += \fI%dx%d\fP [default \fI0x0\fP] +.RS 3 +Position (0-width x 0-height) +.RE +\(bu +.I range += \fI%u-%u\fP [default \fI0-0\fP] +.RS 3 +Restrict rendering to framerange +.RE +\(bu +.I ignoredelay +(bool) +.RS 3 +Ignore delay specified in animations +.RE +\(bu +.I rgbswap +(bool) +.RS 3 +Swap red/blue colors +.RE +\(bu +.I grayout +(bool) +.RS 3 +YUV only: don't write Cb and Cr, makes a nice effect +.RE +\(bu +.I flip +(bool) +.RS 3 +Mirror image +.RE +.IP +This filter renders an user specified image into the video. +Any image format ImageMagick can read is accepted. +Transparent images are also supported. +Image origin is at the very top left. + +see /docs/filter_logo.txt +.RE +.TP 4 +\fBlogoaway\fP - \fBremove an image from the video\fP +\fBlogoaway\fP was written by Thomas Wehrspann <[email protected]>. The version documented here is v0.5 (2004-03-07). This is a video filter. It can handle RGB and YUV mode. It is a post-processing only filter. It supports multiple instances. +.IP +.RS +\(bu +.I range += \fI%d-%d\fP [default \fI0-4294967295\fP] +.RS 3 +Frame Range +.RE +\(bu +.I pos += \fI%dx%d\fP [default \fI-1x-1\fP] +.RS 3 +Position of logo +.RE +\(bu +.I size += \fI%dx%d\fP [default \fI-2x-2\fP] +.RS 3 +Size of logo +.RE +\(bu +.I mode += \fI%d\fP [default \fI0\fP] +.RS 3 +Filter Mode (0=none,1=solid,2=xy,3=shape) +.RE +\(bu +.I border +(bool) +.RS 3 +Visible Border +.RE +\(bu +.I dump +(bool) +.RS 3 +Dump filterarea to file +.RE +\(bu +.I xweight += \fI%d\fP [default \fI50\fP] +.RS 3 +X-Y Weight(0%-100%) +.RE +\(bu +.I fill += \fI%2x%2x%2x\fP [default \fI000\fP] +.RS 3 +Solid Fill Color(RGB) +.RE +\(bu +.I file += \fI%s\fP +.RS 3 +Image with alpha/shape information +.RE +.IP +This filter removes an image in a user specified area from the video. You can +choose from different methods. + +see /docs/filter_logoaway.txt +.RE +.TP 4 +\fBlowpass\fP - \fBHigh and low pass filter\fP +\fBlowpass\fP was written by Tilmann Bitterberg. The version documented here is v0.1.0 (2002-02-26). This is a audio filter. It is a pre-processing only filter. +.IP +.RS +\(bu +.I taps += \fI%d\fP [default \fI30\fP] +.RS 3 +strength (may be negative) +.RE +.RE +.TP 4 +\fBmask\fP - \fBFilter through a rectangular Mask\fP +\fBmask\fP was written by Thomas Oestreich, Chad Page. The version documented here is v0.2.3 (2003-10-12). This is a video filter. It can handle RGB,YUV and YUV422 mode. It is a pre-processing only filter. +.IP +.RS +\(bu +.I lefttop += \fI%dx%d\fP [default \fI0x0\fP] +.RS 3 +Upper left corner of the box +.RE +\(bu +.I rightbot += \fI%dx%d\fP [default \fI32x32\fP] +.RS 3 +Lower right corner of the box +.RE +.IP +This filter applies an rectangular mask to the video. Everything outside the mask is set to black. +.RE +.TP 4 +\fBmodfps\fP - \fBplugin to modify framerate\fP +\fBmodfps\fP was written by Marrq. The version documented here is v0.10 (2003-08-18). This is a video filter. It can handle RGB and YUV mode. It is a pre-processing only filter. +.IP +.RS +\(bu +.I mode += \fI%d\fP [default \fI1\fP] +.RS 3 +mode of operation +.RE +\(bu +.I infps += \fI%f\fP [default \fI25.000000\fP] +.RS 3 +Original fps +.RE +\(bu +.I infrc += \fI%d\fP [default \fI0\fP] +.RS 3 +Original frc +.RE +\(bu +.I buffer += \fI%d\fP [default \fI5\fP] +.RS 3 +How many frames to buffer +.RE +\(bu +.I subsample += \fI%d\fP [default \fI32\fP] +.RS 3 +How many pixels to subsample +.RE +\(bu +.I clonetype += \fI%d\fP [default \fI0\fP] +.RS 3 +How to clone frames +.RE +\(bu +.I verbose += \fI%d\fP [default \fI1\fP] +.RS 3 +run in verbose mode +.RE +.IP +This filter aims to allow transcode to alter the fps +of video. While one can reduce the fps to any amount, +one can only increase the fps to at most twice the +original fps. + +There are two modes of operation, buffered and unbuffered, +unbuffered is quick, but buffered, especially when dropping frames +should look better. + +For most users, modfps will need either no options, or just mode=1 + +see /docs/README.filter.modfps +.RE +.TP 4 +\fBmsharpen\fP - \fBVirtualDub's MSharpen Filter\fP +\fBmsharpen\fP was written by Donald Graft, William Hawkins. The version documented here is (1.0) (2003-07-17). This is a video filter. It can handle RGB and YUV mode. It is a post-processing only filter. +.IP +.RS +\(bu +.I strength += \fI%d\fP [default \fI100\fP] +.RS 3 +How much of the effect +.RE +\(bu +.I threshold += \fI%d\fP [default \fI10\fP] +.RS 3 +How close a pixel must be to the brightest or dimmest pixel to be mapped +.RE +\(bu +.I highq += \fI%d\fP [default \fI1\fP] +.RS 3 +Tradeoff speed for quality of detail detection +.RE +\(bu +.I mask += \fI%d\fP [default \fI0\fP] +.RS 3 +Areas to be sharpened are shown in white +.RE +.IP +This plugin implements an unusual concept in spatial sharpening. +Although designed specifically for anime, it also works well with +normal video. The filter is very effective at sharpening important +edges without amplifying noise. + + * Strength 'strength' (0-255) [100] + This is the strength of the sharpening to be applied to the edge detail areas. It is applied only to the edge detail areas as determined by the 'threshold' parameter. Strength 255 is the strongest sharpening. + * Threshold 'threshold' (0-255) [10] + This parameter determines what is detected as edge detail and thus sharpened. To see what edge detail areas will be sharpened, use the 'mask' parameter. + * Mask 'mask' (0-1) [0] + When set to true, the areas to be sharpened are shown in white against a black background. Use this to set the level of detail to be sharpened. This function also makes a basic edge detection filter. + * HighQ 'highq' (0-1) [1] + This parameter lets you tradeoff speed for quality of detail detection. Set it to true for the best detail detection. Set it to false for maximum speed. +.RE +.TP 4 +\fBnormalize\fP - \fBVolume normalizer\fP +\fBnormalize\fP was written by pl, Tilmann Bitterberg. The version documented here is v0.1.1 (2002-06-18). This is a audio filter. It is a pre-processing only filter. +.IP +.RS +\(bu +.I smooth += \fI%f\fP [default \fI0.06\fP] +.RS 3 +Value for smoothing ]0.0 1.0[ +.RE +\(bu +.I smoothlast += \fI%f\fP [default \fI0.06\fP] +.RS 3 +Value for smoothing last sample ]0.0, 1.0[ +.RE +\(bu +.I algo += \fI%d\fP [default \fI1\fP] +.RS 3 +Algorithm to use (1 or 2). 1=uses a 1 value memory and coefficients new=a*old+b*cur (with a+b=1). 2=uses several samples to smooth the variations (standard weighted mean on past samples) +.RE +.RE +.TP 4 +\fBnull\fP - \fBdemo filter plugin; does nothing\fP +\fBnull\fP was written by Thomas Oestreich. The version documented here is v0.2 (2003-09-04). This is a video and audio filter. It can be used as a pre-processing or as a post-processing filter. +.TP 4 +\fBpp\fP - \fBMplayers postprocess filters\fP +\fBpp\fP was written by Michael Niedermayer et al, Gerhard Monzel. The version documented here is v1.2.4 (2003-01-24). This is a video filter. It can handle YUV mode only. It supports multiple instances. It can be used as a pre-processing or as a post-processing filter. +.IP +.RS +\(bu +.I hb += \fI%d:%d\fP [default \fI64:40\fP] +.RS 3 +Horizontal deblocking filter +.RE +\(bu +.I vb += \fI%d:%d\fP [default \fI64:40\fP] +.RS 3 +Vertical deblocking filter +.RE +\(bu +.I h1 +(bool) +.RS 3 +Experimental h deblock filter 1 +.RE +\(bu +.I v1 +(bool) +.RS 3 +Experimental v deblock filter 1 +.RE +\(bu +.I dr +(bool) +.RS 3 +Deringing filter +.RE +\(bu +.I al +(bool) +.RS 3 +Automatic brightness / contrast +.RE +\(bu +.I f +(bool) +.RS 3 +Stretch luminance to (0..255) +.RE +\(bu +.I lb +(bool) +.RS 3 +Linear blend deinterlacer +.RE +\(bu +.I li +(bool) +.RS 3 +Linear interpolating deinterlace +.RE +\(bu +.I ci +(bool) +.RS 3 +Cubic interpolating deinterlacer +.RE +\(bu +.I md +(bool) +.RS 3 +Median deinterlacer +.RE +\(bu +.I de +(bool) +.RS 3 +Default preset (hb:a/vb:a/dr:a/al) +.RE +\(bu +.I fa +(bool) +.RS 3 +Fast preset (h1:a/v1:a/dr:a/al) +.RE +\(bu +.I tn += \fI%d:%d:%d\fP [default \fI64:128:256\fP] +.RS 3 +Temporal Noise Reducer (1<=2<=3) +.RE +\(bu +.I fq += \fI%d\fP [default \fI15\fP] +.RS 3 +Force quantizer +.RE +\(bu +.I pre +(bool) +.RS 3 +Run as a PRE filter +.RE +.RE +.TP 4 +\fBpreview\fP - \fBxv/sdl/gtk preview plugin\fP +\fBpreview\fP was written by Thomas Oestreich. The version documented here is v0.1.4 (2002-10-08). This is a video filter. It can handle RGB and YUV mode. It is a post-processing only filter. +.IP +.RS +.IP +XXX: Write me +.RE +.TP 4 +\fBpv\fP - \fBxv only preview plugin\fP +\fBpv\fP was written by Thomas Oestreich, Tilmann Bitterberg. The version documented here is v0.2.3 (2004-06-01). This is a video filter. It can handle YUV and YUV422 mode. It is a post-processing only filter. +.IP +.RS +\(bu +.I cache += \fI%d\fP [default \fI15\fP] +.RS 3 +Number of raw frames to cache for seeking +.RE +\(bu +.I skip += \fI%d\fP [default \fI0\fP] +.RS 3 +display only every Nth frame +.RE +\(bu +.I fullscreen +(bool) +.RS 3 +Display in fullscreen mode +.RE +.IP +The filter listens to mouse and key strokes. If you click into the preview +window, the first time say near the upper left corner and the second time near +the lower right corner, transcode will draw a rectangle and will print out the +coordinates of this rectangle on stdout and the socket. See the table below for +available keys. + +When you start transcode with the --socket option and the pv filter with (for +example) cache=20 you can talk to transcode and the pv filter at runtime using +the socket. + +.nf +transcode -i file.avi -J pv=cache=30 --socket /tmp/sock +.fi + +.RS +.TP 8 +Available Commands +.TP +Key Socket* Effect +.TP +.I RET +draw redraws the image, applying filters. +.TP +.I u +undo goes to image before draw +.TP +.I SPACE +pause pause the preview (and transcode) +.TP +.I UP +fastfw in pause mode, step forward 5 frames +.TP +.I RIGHT +slowfw in pause mode, step forward 1 frame +.TP +.I DOWN +fastbw in pause mode, step back 5 frames +.TP +.I LEFT +slowbw in pause mode, step back 1 frame +.TP +.I q +display toggle display of frames +.TP +.I s +slower slow down +.TP +.I f +faster speed up +.TP +.I y +toggle toggle displaying only every 5 frames +.TP +.I j +grab save a JPEG +.TP +.I r +rotate rotate AVI file after next keyframe +.TP +.RE +(*) all commands must be prefixed with "preview ". +.RE +.TP 4 +\fBresample\fP - \fBaudio resampling filter plugin\fP +\fBresample\fP was written by Thomas Oestreich. The version documented here is v0.1.4 (2003-08-22). This is a audio filter. It is a pre-processing only filter. +.TP 4 +\fBskip\fP - \fBskip all listed frames\fP +\fBskip\fP was written by Thomas Oestreich. The version documented here is v0.0.1 (2001-11-27). This is a video and audio filter. It is a pre-processing only filter. +.IP +.RS +\(bu +.I fstart1-fend1 [ fstart2-fend2 [ .. ] ] += \fI%s\fP +.RS 3 +apply filter [start-end] frames +.RE +.RE +.TP 4 +\fBslowmo\fP - \fBvery cheap slow-motion effect\fP +\fBslowmo\fP was written by Tilmann Bitterberg. The version documented here is v0.3 (2003-29-11). This is a video filter. It can handle RGB and YUV mode. It is a pre-processing only filter. +.IP +.RS +.IP +This filter produces a simple slow-motion effect by +duplicating certain frames. I have seen this effect +on TV and despite its the simple algorithm it works +quite well. The filter has no options. +.RE +.TP 4 +\fBsmartbob\fP - \fBMotion-adaptive deinterlacing for double-frame-rate output.\fP +\fBsmartbob\fP was written by Donald Graft, Tilmann Bitterberg. The version documented here is v1.1beta2 (2003-06-23). This is a video filter. It can handle RGB and YUV mode. It is a post-processing only filter. +.IP +.RS +\(bu +.I motionOnly += \fI%d\fP [default \fI0\fP] +.RS 3 +Show motion areas only +.RE +\(bu +.I shiftEven += \fI%d\fP [default \fI0\fP] +.RS 3 +Blend instead of interpolate in motion areas +.RE +\(bu +.I threshold += \fI%d\fP [default \fI12\fP] +.RS 3 +Motion Threshold +.RE +\(bu +.I denoise += \fI%d\fP [default \fI1\fP] +.RS 3 +Phase shift +.RE +.IP +This filter only makes sense when fed by -J doublefps. +It will take the field-frames which filter_doublefps +produces and generates full-sized motion adaptive deinterlaced +output at the double import framerate. +.RE +.TP 4 +\fBsmartdeinter\fP - \fBVirtualDub's smart deinterlacer\fP +\fBsmartdeinter\fP was written by Donald Graft. The version documented here is v2.7b (2003-02-01). This is a video filter. It can handle RGB and YUV mode. It is a pre-processing only filter. +.IP +.RS +\(bu +.I motionOnly += \fI%d\fP [default \fI0\fP] +.RS 3 +Show motion areas only +.RE +\(bu +.I Blend += \fI%d\fP [default \fI0\fP] +.RS 3 +Blend instead of interpolate in motion areas +.RE +\(bu +.I threshold += \fI%d\fP [default \fI15\fP] +.RS 3 +Motion Threshold +.RE +\(bu +.I scenethreshold += \fI%d\fP [default \fI100\fP] +.RS 3 +Scene Change Threshold +.RE +\(bu +.I fieldShift += \fI%d\fP [default \fI0\fP] +.RS 3 +Phase shift +.RE +\(bu +.I inswap += \fI%d\fP [default \fI0\fP] +.RS 3 +Field swap before phase shift +.RE +\(bu +.I outswap += \fI%d\fP [default \fI0\fP] +.RS 3 +Field swap after phase shift +.RE +\(bu +.I noMotion += \fI%d\fP [default \fI0\fP] +.RS 3 +Disable motion processing +.RE +\(bu +.I highq += \fI%d\fP [default \fI0\fP] +.RS 3 +Motion map denoising for field-only +.RE +\(bu +.I diffmode += \fI%d\fP [default \fI0\fP] +.RS 3 +Motion Detection (0=frame, 1=field, 2=both) +.RE +\(bu +.I colordiff += \fI%d\fP [default \fI1\fP] +.RS 3 +Compare color channels instead of luma +.RE +\(bu +.I cubic += \fI%d\fP [default \fI0\fP] +.RS 3 +Use cubic for interpolation +.RE +.IP +This filter provides a smart, motion-based deinterlacing +capability. In static picture areas, interlacing artifacts do not +appear, so data from both fields is used to provide full detail. In +moving areas, deinterlacing is performed +.RE +.TP 4 +\fBsmartyuv\fP - \fBMotion-adaptive deinterlacing\fP +\fBsmartyuv\fP was written by Tilmann Bitterberg. The version documented here is 0.1.4 (2003-10-13). This is a video filter. It can handle YUV mode only. It is a pre-processing only filter. +.IP +.RS +\(bu +.I motionOnly += \fI%d\fP [default \fI0\fP] +.RS 3 +Show motion areas only, blacking out static areas +.RE +\(bu +.I diffmode += \fI%d\fP [default \fI0\fP] +.RS 3 +Motion Detection (0=frame, 1=field, 2=both) +.RE +\(bu +.I threshold += \fI%d\fP [default \fI14\fP] +.RS 3 +Motion Threshold (luma) +.RE +\(bu +.I chromathres += \fI%d\fP [default \fI7\fP] +.RS 3 +Motion Threshold (chroma) +.RE +\(bu +.I scenethres += \fI%d\fP [default \fI31\fP] +.RS 3 +Threshold for detecting scenechanges +.RE +\(bu +.I highq += \fI%d\fP [default \fI1\fP] +.RS 3 +High-Quality processing (motion Map denoising) +.RE +\(bu +.I cubic += \fI%d\fP [default \fI1\fP] +.RS 3 +Do cubic interpolation +.RE +\(bu +.I Blend += \fI%d\fP [default \fI1\fP] +.RS 3 +Blend the frames for deinterlacing +.RE +\(bu +.I doChroma += \fI%d\fP [default \fI1\fP] +.RS 3 +Enable chroma processing (slower but more accurate) +.RE +\(bu +.I verbose += \fI%d\fP [default \fI0\fP] +.RS 3 +Verbose mode +.RE +.IP +This filter is basically a rewrite of the +smartdeinter filter by Donald Graft (without advanced processing +options) for YUV mode only. Its faster than using the smartdeinter +in YUV mode and is also tuned with its threshold settings for YUV +mode. The filter detects motion and static areas in an image and +only deinterlaces (either by blending or by cubic interpolation) +the moving areas. The result is an image with high detail in +static areas, no information is lost there. + +The threshold settings should be sufficent for most users. As a +rule of thumb, I recommend setting the chroma threshold to about +the half of the luma threshold. If you want more deinterlacing, +lower the thresholds. The scene threshold can be easily found by +turning on verbose mode and the preview filter. In verbose mode, +the filter will print out, when it detects a scene change. If +scenechanges go by unnoticed, lower the scene threshold. You can +completly disable chroma processing with the doChroma=0 option. +Here is a sample commandline + +-J smartyuv=highq=1:diffmode=2:cubic=1:Blend=1:chromathres=4:threshold=8:doChroma=1 +.RE +.TP 4 +\fBsmooth\fP - \fB(single-frame) smoothing plugin\fP +\fBsmooth\fP was written by Chad Page. The version documented here is v0.2.3 (2003-03-27). This is a video filter. It can handle YUV mode only. It is a pre-processing only filter. It supports multiple instances. +.IP +.RS +\(bu +.I strength += \fI%f\fP [default \fI0.25\fP] +.RS 3 +Blending factor +.RE +\(bu +.I cdiff += \fI%d\fP [default \fI6\fP] +.RS 3 +Max difference in chroma values +.RE +\(bu +.I ldiff += \fI%d\fP [default \fI8\fP] +.RS 3 +Max difference in luma value +.RE +\(bu +.I range += \fI%d\fP [default \fI4\fP] +.RS 3 +Search Range +.RE +.IP +"single-frame" means it only works with the current frame, it does not need the +next or the previous frame for operation. Usually smoothing is done by talking +the data of previous frames into account to see which parts of the picture can +be "safely" smoothed, this filter only needs one frame. +.RE +.IP +Usage -J subtitler="[no_objects] [subtitle_file=s] +[color_depth=n] +[font_dir=s] [font=n] [font_factor=f +[frame_offset=n] +[debug] [help]" +f is float, h is hex, n is integer, s is string. + +no_objects disables subtitles and other objects (off). +.br +color_depth= 32 or 24 (overrides X auto) (32). +.br +font= 0 or 1, 1 gives strange symbols... (0). +.br +font_dir= place where font.desc is (~/.subtitles/font). +.br +font_factor= .1 to 100 outline characters (10.75). +.br +frame_offset= positive (text later) or negative (earlier) integer (0). +.br +subtitle_file= pathfilename.ppml location of ppml file (~/.subtitles/demo.ppml). +.br +debug prints debug messages (off). +.br +help prints this list and exit. +.RE +.RE +.TP 4 +\fBtestframe\fP - \fBgenerate stream of testframes\fP +\fBtestframe\fP was written by Thomas Oestreich. The version documented here is v0.1.3 (2003-09-04). This is a video filter. It can handle RGB and YUV mode. It is a pre-processing only filter. +.IP +.RS +\(bu +.I mode += \fI%d\fP [default \fI0\fP] +.RS 3 +Choose the test pattern (0-4 interlaced, 5 colorfull) +.RE +.RE +.TP 4 +\fBtext\fP - \fBwrite text in the image\fP +\fBtext\fP was written by Tilmann Bitterberg. The version documented here is v0.1.4 (2004-02-14). This is a video filter. It can handle RGB and YUV mode. It is a post-processing only filter. +.IP +.RS +\(bu +.I range += \fI%u-%u/%d\fP [default \fI0-4294967295/1\fP] +.RS 3 +apply filter to [start-end]/step frames +.RE +\(bu +.I string += \fI%s\fP +.RS 3 +text to display (no ':') [defaults to `date`] +.RE +\(bu +.I font += \fI%s\fP +.RS 3 +full path to font file [defaults to arial.ttf] +.RE +\(bu +.I points += \fI%d\fP [default \fI25\fP] +.RS 3 +size of font (in points) +.RE +\(bu +.I dpi += \fI%d\fP [default \fI96\fP] +.RS 3 +resolution of font (in dpi) +.RE +\(bu +.I fade += \fI%d\fP [default \fI0\fP] +.RS 3 +fade in/out (0=off, 1=slow, 10=fast) +.RE +\(bu +.I antialias += \fI%d\fP [default \fI1\fP] +.RS 3 +Anti-Alias text (0=off 1=on) +.RE +\(bu +.I pos += \fI%dx%d\fP [default \fI0x0\fP] +.RS 3 +Position (0-width x 0-height) +.RE +\(bu +.I posdef += \fI%d\fP [default \fI0\fP] +.RS 3 +Position (0=None 1=TopL 2=TopR 3=BotL 4=BotR 5=Cent 6=BotCent) +.RE +\(bu +.I notransparent +(bool) +.RS 3 +disable transparency (enables block box) +.RE +.IP +see /docs/filter_text.txt +.RE +.TP 4 +\fBtomsmocomp\fP - \fBTom's MoComp deinterlacing filter\fP +\fBtomsmocomp\fP was written by Tom Barry et al.. The version documented here is v0.1 (2004-07-31). This is a video filter. It can handle YUV and YUV422 mode. It is a pre-processing only filter. +.IP +.RS +\(bu +.I TopFirst += \fI%d\fP [default \fI1\fP] +.RS 3 +Assume the top field should be displayed first +.RE +\(bu +.I SearchEffort += \fI%d\fP [default \fI15\fP] +.RS 3 +CPU time used to find moved pixels +.RE +\(bu +.I UseStrangeBob += \fI%d\fP [default \fI0\fP] +.RS 3 +?Unknown? +.RE +\(bu +.I CpuFlags += \fI%x\fP [default \fI5f\fP] +.RS 3 +Manual specification of CPU capabilities +.RE +.RE +.TP 4 +\fBunsharp\fP - \fBunsharp mask & gaussian blur\fP +\fBunsharp\fP was written by Remi Guyomarch. The version documented here is v1.0.1 (2003-10-27). This is a video filter. It can handle YUV mode only. It is a post-processing only filter. +.IP +.RS +\(bu +.I amount += \fI%f\fP [default \fI0.0\fP] +.RS 3 +Luma and chroma (un)sharpness amount +.RE +\(bu +.I matrix += \fI%dx%d\fP [default \fI0x0\fP] +.RS 3 +Luma and chroma search matrix size +.RE +\(bu +.I luma += \fI%f\fP [default \fI0.0\fP] +.RS 3 +Luma (un)sharpness amount +.RE +\(bu +.I chroma += \fI%f\fP [default \fI0.0\fP] +.RS 3 +Chroma (un)sharpness amount +.RE +\(bu +.I luma_matrix += \fI%dx%d\fP [default \fI0x0\fP] +.RS 3 +Luma search matrix size +.RE +\(bu +.I chroma_matrix += \fI%dx%d\fP [default \fI0x0\fP] +.RS 3 +Chroma search matrix size +.RE +\(bu +.I pre += \fI%d\fP [default \fI0\fP] +.RS 3 +run as a pre filter +.RE +.IP +This filter blurs or sharpens an image depending on +the sign of "amount". You can either set amount for +both luma and chroma or you can set it individually +(recommended). A positive value for amount will sharpen +the image, a negative value will blur it. A sane range +for amount is -1.5 to 1.5. + +The matrix sizes must be odd and define the +range/strength of the effect. Sensible ranges are 3x3 +to 7x7. + +It sometimes makes sense to sharpen the sharpen the +luma and to blur the chroma. Sample string is: + +luma=0.8:luma_matrix=7x5:chroma=-0.2:chroma_matrix=3x3 +.RE +.TP 4 +\fBwhitebalance\fP - \fBWhite Balance Filter - correct images with a broken white balance\fP +\fBwhitebalance\fP was written by Guillaume Cottenceau. The version documented here is v0.1 (2003-10-01). This is a video filter. It can handle RGB and YUV mode. It is a pre-processing only filter. +.IP +.RS +\(bu +.I level += \fI%d\fP [default \fI40\fP] +.RS 3 +Level of blue-to-yellow white balance shifting (can be negative) +.RE +\(bu +.I limit += \fI%s\fP +.RS 3 +Limit to specified ranges (+fnumber toggles on, -fnumber toggles off) +.RE +.IP +This filter allows correcting movies with a broken white balance, e.g. bluish movies. +.RE +.TP 4 +\fBxharpen\fP - \fBVirtualDub's XSharpen Filter\fP +\fBxharpen\fP was written by Donald Graft, Tilmann Bitterberg. The version documented here is (1.0b2) (2003-02-12). This is a video filter. It can handle RGB and YUV mode. It is a post-processing only filter. +.IP +.RS +\(bu +.I strength += \fI%d\fP [default \fI200\fP] +.RS 3 +How much of the effect +.RE +\(bu +.I threshold += \fI%d\fP [default \fI255\fP] +.RS 3 +How close a pixel must be to the brightest or dimmest pixel to be mapped +.RE +.IP +This filter performs a subtle but useful sharpening effect. The +result is a sharpening effect that not only avoids amplifying +noise, but also tends to reduce it. A welcome side effect is that +files processed with this filter tend to compress to smaller files. + + Strength 'strength' (0-255) [200] + When this value is 255, mapped pixels are not blended with the original pixel values, so a full-strength effect is obtained. As the value is reduced, each mapped pixel is blended with more of the original pixel. At a value of 0, the original pixels are passed through and there is no sharpening effect. + + Threshold 'threshold' (0-255) [255] + This value determines how close a pixel must be to the brightest or dimmest pixel to be mapped. If a pixel is more than threshold away from the brightest or dimmest pixel, it is not mapped. Thus, as the threshold is reduced, pixels in the mid range start to be spared. +.RE +.TP 4 +\fByuvdenoise\fP - \fBmjpegs YUV denoiser\fP +\fByuvdenoise\fP was written by Stefan Fendt, Tilmann Bitterberg. The version documented here is v0.2.1 (2003-11-26). This is a video filter. It can handle YUV mode only. It can be used as a pre-processing or as a post-processing filter. +.IP +.RS +\(bu +.I radius += \fI%d\fP [default \fI8\fP] +.RS 3 +Search radius +.RE +\(bu +.I threshold += \fI%d\fP [default \fI5\fP] +.RS 3 +Denoiser threshold +.RE +\(bu +.I pp_threshold += \fI%d\fP [default \fI4\fP] +.RS 3 +Pass II threshold +.RE +\(bu +.I delay += \fI%d\fP [default \fI3\fP] +.RS 3 +Average 'n' frames for a time-lowpassed pixel +.RE +\(bu +.I postprocess += \fI%d\fP [default \fI1\fP] +.RS 3 +Filter internal postprocessing +.RE +\(bu +.I luma_contrast += \fI%d\fP [default \fI100\fP] +.RS 3 +Luminance contrast in percent +.RE +\(bu +.I chroma_contrast += \fI%d\fP [default \fI100\fP] +.RS 3 +Chrominance contrast in percent. +.RE +\(bu +.I sharpen += \fI%d\fP [default \fI125\fP] +.RS 3 +Sharpness in percent +.RE +\(bu +.I deinterlace += \fI%d\fP [default \fI0\fP] +.RS 3 +Force deinterlacing +.RE +\(bu +.I mode += \fI%d\fP [default \fI0\fP] +.RS 3 +[0]: Progressive [1]: Interlaced [2]: Fast +.RE +\(bu +.I scene_thres += \fI%d%%\fP [default \fI50\fP] +.RS 3 +Blocks where motion estimation should fail before scenechange +.RE +\(bu +.I block_thres += \fI%d\fP [default \fI1024\fP] +.RS 3 +Every SAD value greater than this will be considered bad +.RE +\(bu +.I do_reset += \fI%d\fP [default \fI2\fP] +.RS 3 +Reset the filter for `n' frames after a scene +.RE +\(bu +.I increment_cr += \fI%d\fP [default \fI2\fP] +.RS 3 +Increment Cr with constant +.RE +\(bu +.I increment_cb += \fI%d\fP [default \fI2\fP] +.RS 3 +Increment Cb with constant +.RE +\(bu +.I border += \fI%dx%d-%dx%d\fP [default \fI0x0-32x32\fP] +.RS 3 +Active image area +.RE +\(bu +.I pre += \fI%d\fP [default \fI0\fP] +.RS 3 +run this filter as a pre-processing filter +.RE +.IP +see /docs/filter_yuvdenoise.txt +.RE +.TP 4 +\fByuvmedian\fP - \fBmjpegs YUV median filter\fP +\fByuvmedian\fP was written by Mike Bernson, Tilmann Bitterberg. The version documented here is v0.1.0 (2003-01-24). This is a video filter. It can handle YUV mode only. It can be used as a pre-processing or as a post-processing filter. +.IP +.RS +\(bu +.I radius_luma += \fI%d\fP [default \fI2\fP] +.RS 3 +Radius for median (luma) +.RE +\(bu +.I radius_chroma += \fI%d\fP [default \fI2\fP] +.RS 3 +Radius for median (chroma) +.RE +\(bu +.I threshold_luma += \fI%d\fP [default \fI2\fP] +.RS 3 +Trigger threshold (luma) +.RE +\(bu +.I threshold_chroma += \fI%d\fP [default \fI2\fP] +.RS 3 +Trigger threshold (chroma) +.RE +\(bu +.I interlace += \fI%d\fP [default \fI0\fP] +.RS 3 +Treat input as interlaced +.RE +\(bu +.I pre += \fI%d\fP [default \fI1\fP] +.RS 3 +Run as a PRE filter +.RE +.RE +.\" Here ends the generated filter part, produced by make-filter-man.sh + +.PP +.SH AUTHORS +.B transcode +was written by Thomas Oestreich +.br +<[email protected]> with contributions from +many others. See AUTHORS for details. +.PP +.SH SEE ALSO +.BR transcode (1), +.BR transcode_import (1), +.BR transcode_export (1), +.BR tcmodinfo (1), +.br diff --git a/debian/transcode/transcode-1.1.7/docs/man/transcode_import.1 b/debian/transcode/transcode-1.1.7/docs/man/transcode_import.1 new file mode 100644 index 00000000..68844d9a --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/transcode_import.1 @@ -0,0 +1,214 @@ +.\" Title: transcode_import +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/> +.\" Date: 14th July 2008 +.\" Manual: 15th April 2008 +.\" Source: transcode_import(1) +.\" +.TH "TRANSCODE_IMPORT" "1" "14th July 2008" "transcode_import(1)" "15th April 2008" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +transcode_import \- transcode import modules collection +.SH "SYNOPSIS" +.HP 10 +\fBtranscode\fR \-x\ \fIname\fR\ [\ \fI,name\fR\ ] [\fIother\ options\fR] +.SH "COPYRIGHT" +.PP + +\fBtranscode\fR +is Copyright (C) 2001\-2003 by Thomas Oestreich, 2003\-2004 Tilmann Bitterberg, 2004\-2010 Transcode Team +.SH "IMPORT MODULES" +.PP +If no module is specified through the \-x option, +\fBtranscode\fR +will autodetect them using internal probing code\&. If just one import module is specified, it is used both for video and audio import; if both modules are specified, the first is used for video import, the second for audio import\&. To see what import modules are avalaible for your transcode installation, do a +.sp +.RS 4 +.nf + $ ls \-1 $( tcmodinfo \-p )/import*\&.so + +.fi +.RE +.sp +A complete transcode installation has the following import modules\&. +.PP +\fBalsa\fR \fI[audio]\fR +.RS 4 +This module reads audio samples from an ALSA device using libalsa\&. +.sp +This module accepts the following options: +.PP +device (string) +.RS 4 +selects ALSA device to use for capturing audio\&. +.RE +.RE +.PP +\fBbktr\fR \fI[video]\fR +.RS 4 +This module reads video frames from an capture device using bktr module\&. This module is designed to work on *BSD\&. For linux, use the v4l module\&. +.sp +This module accepts the following options: +.PP +tunerdev (string) +.RS 4 +help: selects tuner device\&. +.RE +.PP +vsource (string) +.RS 4 +selects video source (device dependant input)\&. +.RE +.PP +format (string) +.RS 4 +selects video normalization\&. +.RE +.PP +asource (string) +.RS 4 +selects audio source (device dependant input)\&. +.RE +.RE +.PP +\fBdvd\fR \fI[video, audio, extra]\fR +.RS 4 +This module provides access to DVD content using libdvdread, directly from DVD device\&. (e\&.g\&. on\-the\-fly operation, no intermediate disk storage needed)\&. +.sp +At run time, this module requires: libdvdread >= 0\&.9\&.3 +.sp +This module accepts the following options: +.PP +delay (integer) +.RS 4 +set device access delay (seconds)\&. +.RE +.RE +.PP +\fBim\fR \fI[video]\fR +.RS 4 +This module reads single images from disk using ImageMagick; a stream of correlated images can be automatically read if their filenames contains a common prefix and a serial number\&. All formats supported by ImageMagick are supported as well\&. +.sp +At run time, this module requires: libMagick >= 6\&.2\&.4\&.0 +.sp +This module accepts the following options: +.PP +noseq (flag) +.RS 4 +disable internal auto loading of images with similar names\&. +.RE +.RE +.PP +\fBpv3\fR \fI[video, audio]\fR +.RS 4 +This module provides access to Earth Soft PV3 audio/video streams using win32 binary codecs and an internal win32 emulation layer (NO wine needed)\&. +.sp +At run time, this module requires: PV3 win32 dlls\&. +.sp +This module accepts the following options: +.PP +dllpath (string) +.RS 4 +set path/filename to load dv\&.dll from +.RE +.RE +.PP +\fBvag\fR \fI[audio]\fR +.RS 4 +This module decodes VAG\-format audio (from PlayStation)\&. +.sp +This module accepts the following options: +.PP +blocksize (integer) +.RS 4 +stereo blocking size\&. +.RE +.RE +.PP +\fBvob\fR \fI[video, audio]\fR +.RS 4 +This module imports audio/video from VOB files\&. If you need direct DVD access, use import_dvd module\&. +.sp +This module accepts the following options: +.PP +nodemux (flag) +.RS 4 +skip demuxing processing stage\&. This sometimes improves A/V sync\&. +.RE +.RE +.PP +\fBx11\fR \fI[video]\fR +.RS 4 +This module captures video frames from X window system using libX11\&. +.sp +At run time, this module requires: libcx11\-6 >= 1\&.0\&.0 +.sp +This module accepts the following options: +.PP +skew_limit (integer) +.RS 4 +maximum frame A/V skew (ms) before correction attempt +.RE +.RE +.PP +\fBv4l2\fR \fI[video, audio]\fR +.RS 4 +This module allow to capture video frames through a V4L2 (V4L api version 2) device\&. While audio capturing is possible, this kind of usage is discouraged in favour of OSS or ALSA import modules\&. +.sp +This module accepts the following options: +.PP +overrun_guard (integer) +.RS 4 +flag (default off)\&. Toggles the buffer overrun guard, that prevents crash when capture buffers are full\&. +.RE +.PP +resync_margin (integer) +.RS 4 +threshold audio/video desync (in frames) that triggers resync once reached\&. +.RE +.PP +crop (string) +.RS 4 +forces cropping into selected window (format: WIDTHxHEIGHT+LEFTxTOP) +.RE +.PP +resync_interval (integer) +.RS 4 +checks the resync_margin every given amount of frames\&. +.RE +.PP +format (integer) +.RS 4 +forces video frames convertion by using index; use \-1 to get a list of supported conversions\&. +.RE +.PP +format (string) +.RS 4 +forces output format to given one; use "list" to get a list of supported formats\&. +.RE +.PP +convert (integer) +.RS 4 +forces video frames convertion by using index; use \-1 to get a list of supported conversions\&. +.RE +.RE +.SH "AUTHORS" +.PP +Written by Thomas Oestreich <ostreich@theorie\&.physik\&.uni\-goettingen\&.de>, Tilmann Bitterberg and the Transcode\-Team +.PP +See the +\fIAUTHORS\fR +file for details\&. +.SH "SEE ALSO" +.PP + +\fBtranscode\fR(1) +, +\fBtcmodinfo\fR(1) +, +\fBtranscode_filter\fR(1) +, +\fBtranscode_export\fR(1) diff --git a/debian/transcode/transcode-1.1.7/docs/man/transcode_import.1.xml b/debian/transcode/transcode-1.1.7/docs/man/transcode_import.1.xml new file mode 100644 index 00000000..f26475f1 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/man/transcode_import.1.xml @@ -0,0 +1,411 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" + "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> + +<refentry id='transcode_import'> + + <refentryinfo> + <date>14th July 2008</date> + </refentryinfo> + + <refmeta> + <refentrytitle>transcode_import</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class='date'>15th April 2008</refmiscinfo> + <refmiscinfo class='source'>transcode_import(1)</refmiscinfo> + </refmeta> + + <refnamediv id='name'> + <refname>transcode_import</refname> + <refpurpose>transcode import modules collection</refpurpose> + </refnamediv> + + <!-- body begins here --> + <refsynopsisdiv id='synopsis'> + <cmdsynopsis> + <command>transcode</command> + <arg choice='plain'> + -x <replaceable>name</replaceable> + <arg choice='opt'> + <arg choice='plain'> + <replaceable>,name</replaceable> + </arg> + </arg> + </arg> + <arg choice='opt'> + <replaceable>other options</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + + <refsect1 id='copyright'> + <title>Copyright</title> + <para> + <command>transcode</command> is Copyright (C) 2001-2003 by Thomas Oestreich, 2003-2004 Tilmann Bitterberg, 2004-2010 Transcode Team + </para> + </refsect1> + + <refsect1 id="import_modules"> + <title>import modules</title> + <para> + If no module is specified through the -x option, <command>transcode</command> will autodetect them using internal probing code. + If just one import module is specified, it is used both for video and audio import; if both modules are specified, the first + is used for video import, the second for audio import. + To see what import modules are avalaible for your transcode installation, do a + + <literallayout> + $ ls -1 $( tcmodinfo -p )/import*.so + </literallayout> + + A complete transcode installation has the following import modules. + </para> + <variablelist> + +<!-- begin module list --> +<!-- import_ac3.c --> +<!-- import_alsa.c --> + <varlistentry> + <term> + <option>alsa</option> + <emphasis>[audio]</emphasis> + </term> + <listitem> + <para>This module reads audio samples from an ALSA device using libalsa.</para> +<para>This module accepts the following options:</para> + <variablelist> + <varlistentry> + <term> + <literal>device (string)</literal> + </term> + <listitem> + <para>selects ALSA device to use for capturing audio.</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> +<!-- import_avi.c --> +<!-- import_bktr.c --> + <varlistentry> + <term> + <option>bktr</option> + <emphasis>[video]</emphasis> + </term> + <listitem> + <para>This module reads video frames from an capture device using bktr module. This module is designed to work on *BSD. For linux, use the v4l module.</para> +<para>This module accepts the following options:</para> + <variablelist> + <varlistentry> + <term> + <literal>tunerdev (string)</literal> + </term> + <listitem> + <para>help: selects tuner devince.</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <varlistentry> + <term> + <literal>vsource (string)</literal> + </term> + <listitem> + <para>selects video source (device dependant input).</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <varlistentry> + <term> + <literal>format (string)</literal> + </term> + <listitem> + <para>selects video normalization.</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <varlistentry> + <term> + <literal>asource (string)</literal> + </term> + <listitem> + <para>selects audio source (device dependant input).</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> +<!-- import_bsdav.c --> +<!-- import_dv.c --> +<!-- import_dvd.c --> + <varlistentry> + <term> + <option>dvd</option> + <emphasis>[video, audio, extra]</emphasis> + </term> + <listitem> + <para>This module provides access to DVD content using libdvdread, directly from DVD device. (e.g. on-the-fly operation, no intermediate disk storage needed).</para> + <para>At run time, this module requires: libdvdread >= 0.9.3</para> +<para>This module accepts the following options:</para> + <variablelist> + <varlistentry> + <term> + <literal>delay (integer)</literal> + </term> + <listitem> + <para>set device access delay (seconds).</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> +<!-- import_ffmpeg.c --> +<!-- import_im.c --> + <varlistentry> + <term> + <option>im</option> + <emphasis>[video]</emphasis> + </term> + <listitem> + <para>This module reads single images from disk using ImageMagick; a stream of correlated images can be automatically read if their filenames contains a common prefix and a serial number. All formats supported by ImageMagick are supported as well.</para> + <para>At run time, this module requires: libMagick >= 6.2.4.0</para> +<para>This module accepts the following options:</para> + <variablelist> + <varlistentry> + <term> + <literal>noseq (flag)</literal> + </term> + <listitem> + <para>disable internal auto loading of images with similar names.</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> +<!-- import_imlist.c --> +<!-- import_lzo.c --> +<!-- import_mov.c --> +<!-- import_mp3.c --> +<!-- import_mpeg2.c --> +<!-- import_mplayer.c --> +<!-- import_null.c --> +<!-- import_ogg.c --> +<!-- import_oss.c --> +<!-- import_pv3.c --> + <varlistentry> + <term> + <option>pv3</option> + <emphasis>[video, audio]</emphasis> + </term> + <listitem> + <para>This module provides access to Earth Soft PV3 audio/video streams using win32 binary codecs and an internal win32 emulation layer (NO wine needed).</para> + <para>At run time, this module requires: PV3 win32 dlls.</para> +<para>This module accepts the following options:</para> + <variablelist> + <varlistentry> + <term> + <literal>dllpath (string)</literal> + </term> + <listitem> + <para>set path/filename to load dv.dll from</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> +<!-- import_pvn.c --> +<!-- import_raw.c --> +<!-- import_sunau.c --> +<!-- import_vag.c --> + <varlistentry> + <term> + <option>vag</option> + <emphasis>[audio]</emphasis> + </term> + <listitem> + <para>This module decodes VAG-format audio (from PlayStation).</para> +<para>This module accepts the following options:</para> + <variablelist> + <varlistentry> + <term> + <literal>blocksize (integer)</literal> + </term> + <listitem> + <para>stereo blocking size.</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> +<!-- import_vnc.c --> +<!-- import_vob.c --> + <varlistentry> + <term> + <option>vob</option> + <emphasis>[video, audio]</emphasis> + </term> + <listitem> + <para>This module imports audio/video from VOB files. If you need direct DVD access, use import_dvd module.</para> +<para>This module accepts the following options:</para> + <variablelist> + <varlistentry> + <term> + <literal>nodemux (flag)</literal> + </term> + <listitem> + <para>skip demuxing processing stage. This sometimes improves A/V sync.</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> +<!-- import_x11.c --> + <varlistentry> + <term> + <option>x11</option> + <emphasis>[video]</emphasis> + </term> + <listitem> + <para>This module captures video frames from X window system using libX11.</para> + <para>At run time, this module requires: libcx11-6 >= 1.0.0</para> +<para>This module accepts the following options:</para> + <variablelist> + <varlistentry> + <term> + <literal>skew_limit (integer)</literal> + </term> + <listitem> + <para>maximum frame A/V skew (ms) before correction attempt</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> +<!-- import_xml.c --> +<!-- import_xvid.c --> +<!-- import_yuv4mpeg.c --> +<!-- import_nuv.c --> +<!-- import_v4l.c --> +<!-- import_v4l2.c --> + <varlistentry> + <term> + <option>v4l2</option> + <emphasis>[video, audio]</emphasis> + </term> + <listitem> + <para>This module allow to capture video frames through a V4L2 (V4L api version 2) device. While audio capturing is possible, this kind of usage is discouraged in favour of OSS or ALSA import modules.</para> +<para>This module accepts the following options:</para> + <variablelist> + <varlistentry> + <term> + <literal>overrun_guard (integer)</literal> + </term> + <listitem> + <para>flag (default off). Toggles the buffer overrun guard, that prevents crash when capture buffers are full.</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <varlistentry> + <term> + <literal>resync_margin (integer)</literal> + </term> + <listitem> + <para>threshold audio/video desync (in frames) that triggers resync once reached.</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <varlistentry> + <term> + <literal>crop (string)</literal> + </term> + <listitem> + <para>forces cropping into selected window (format: WIDTHxHEIGHT+LEFTxTOP)</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <varlistentry> + <term> + <literal>resync_interval (integer)</literal> + </term> + <listitem> + <para>checks the resync_margin every given amount of frames.</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <varlistentry> + <term> + <literal>format (integer)</literal> + </term> + <listitem> + <para>forces video frames convertion by using index; use -1 to get a list of supported conversions.</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <varlistentry> + <term> + <literal>format (string)</literal> + </term> + <listitem> + <para>forces output format to given one; use "list" to get a list of supported formats.</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <varlistentry> + <term> + <literal>convert (integer)</literal> + </term> + <listitem> + <para>forces video frames convertion by using index; use -1 to get a list of supported conversions.</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> +<!-- end module list --> + + + + </variablelist> + </refsect1> + + <refsect1 id='authors'> + <title>Authors</title> + <para> + Written by Thomas Oestreich <[email protected]>, + Tilmann Bitterberg and the Transcode-Team + </para> + <para> + See the <emphasis>AUTHORS</emphasis> file for details. + </para> + </refsect1> + + <refsect1 id='see_also'> + <title>See Also</title> + <para> + <citerefentry> + <refentrytitle>transcode</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>tcmodinfo</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>transcode_filter</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + , + <citerefentry> + <refentrytitle>transcode_export</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + </para> + <!-- .br --> + </refsect1> + +</refentry> diff --git a/debian/transcode/transcode-1.1.7/docs/pvm3/Makefile.am b/debian/transcode/transcode-1.1.7/docs/pvm3/Makefile.am new file mode 100644 index 00000000..037fdbd1 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/pvm3/Makefile.am @@ -0,0 +1,11 @@ +# # Process this file with automake to produce Makefile.in. + +EXTRA_DIST = \ + $(docs_DATA) + +docsdir = $(datadir)/doc/transcode/pvm3 + +docs_DATA = \ + export_pvm.txt \ + pvm_10x.cfg pvm_11x.cfg \ + pvm_config.txt diff --git a/debian/transcode/transcode-1.1.7/docs/pvm3/Makefile.in b/debian/transcode/transcode-1.1.7/docs/pvm3/Makefile.in new file mode 100644 index 00000000..acfc1218 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/pvm3/Makefile.in @@ -0,0 +1,517 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# # Process this file with automake to produce Makefile.in. + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/pvm3 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(docsdir)" +DATA = $(docs_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +A52_CFLAGS = @A52_CFLAGS@ +A52_LIBS = @A52_LIBS@ +ACLIB_LIBS = @ACLIB_LIBS@ +ACLOCAL = @ACLOCAL@ +ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVILIB_LIBS = @AVILIB_LIBS@ +AWK = @AWK@ +BSDAV_CFLAGS = @BSDAV_CFLAGS@ +BSDAV_LIBS = @BSDAV_LIBS@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXXCPP = @CXXCPP@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLDARWIN_CFLAGS = @DLDARWIN_CFLAGS@ +DLDARWIN_LIBS = @DLDARWIN_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FAAC_CFLAGS = @FAAC_CFLAGS@ +FAAC_LIBS = @FAAC_LIBS@ +FGREP = @FGREP@ +FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ +FREETYPE2_LIBS = @FREETYPE2_LIBS@ +GREP = @GREP@ +IBP_LIBS = @IBP_LIBS@ +ICONV_CFLAGS = @ICONV_CFLAGS@ +ICONV_LIBS = @ICONV_LIBS@ +IMAGEMAGICK_CFLAGS = @IMAGEMAGICK_CFLAGS@ +IMAGEMAGICK_LIBS = @IMAGEMAGICK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAME_CFLAGS = @LAME_CFLAGS@ +LAME_LIBS = @LAME_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBAVCODEC_CFLAGS = @LIBAVCODEC_CFLAGS@ +LIBAVCODEC_LIBS = @LIBAVCODEC_LIBS@ +LIBAVFORMAT_CFLAGS = @LIBAVFORMAT_CFLAGS@ +LIBAVFORMAT_LIBS = @LIBAVFORMAT_LIBS@ +LIBDVDREAD_CFLAGS = @LIBDVDREAD_CFLAGS@ +LIBDVDREAD_LIBS = @LIBDVDREAD_LIBS@ +LIBDV_CFLAGS = @LIBDV_CFLAGS@ +LIBDV_LIBS = @LIBDV_LIBS@ +LIBJPEG_CFLAGS = @LIBJPEG_CFLAGS@ +LIBJPEG_LIBS = @LIBJPEG_LIBS@ +LIBMPEG2CONVERT_CFLAGS = @LIBMPEG2CONVERT_CFLAGS@ +LIBMPEG2CONVERT_LIBS = @LIBMPEG2CONVERT_LIBS@ +LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@ +LIBMPEG2_LIBS = @LIBMPEG2_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBPOSTPROC_CFLAGS = @LIBPOSTPROC_CFLAGS@ +LIBPOSTPROC_LIBS = @LIBPOSTPROC_LIBS@ +LIBQUICKTIME_CFLAGS = @LIBQUICKTIME_CFLAGS@ +LIBQUICKTIME_LIBS = @LIBQUICKTIME_LIBS@ +LIBS = @LIBS@ +LIBTCAUDIO_LIBS = @LIBTCAUDIO_LIBS@ +LIBTCVIDEO_LIBS = @LIBTCVIDEO_LIBS@ +LIBTC_LIBS = @LIBTC_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ +LIBV4L2_LIBS = @LIBV4L2_LIBS@ +LIBV4LCONVERT_CFLAGS = @LIBV4LCONVERT_CFLAGS@ +LIBV4LCONVERT_LIBS = @LIBV4LCONVERT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LZO_CFLAGS = @LZO_CFLAGS@ +LZO_LIBS = @LZO_LIBS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MJPEGTOOLS_CFLAGS = @MJPEGTOOLS_CFLAGS@ +MJPEGTOOLS_LIBS = @MJPEGTOOLS_LIBS@ +MKDIR_P = @MKDIR_P@ +MOD_PATH = @MOD_PATH@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_AWK = @PATH_TO_AWK@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PROF_PATH = @PROF_PATH@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PVM3_CFLAGS = @PVM3_CFLAGS@ +PVM3_LIBS = @PVM3_LIBS@ +PVM3_PVMGS = @PVM3_PVMGS@ +RANLIB = @RANLIB@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIMD_FLAGS = @SIMD_FLAGS@ +STRIP = @STRIP@ +THEORA_CFLAGS = @THEORA_CFLAGS@ +THEORA_LIBS = @THEORA_LIBS@ +USE_DLDARWIN = @USE_DLDARWIN@ +VERSION = @VERSION@ +VORBIS_CFLAGS = @VORBIS_CFLAGS@ +VORBIS_LIBS = @VORBIS_LIBS@ +WAVLIB_LIBS = @WAVLIB_LIBS@ +X264_CFLAGS = @X264_CFLAGS@ +X264_LIBS = @X264_LIBS@ +XIO_CFLAGS = @XIO_CFLAGS@ +XIO_LIBS = @XIO_LIBS@ +XMKMF = @XMKMF@ +XVID_CFLAGS = @XVID_CFLAGS@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +a52_config = @a52_config@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +bsdav_config = @bsdav_config@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +faac_config = @faac_config@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +iconv_config = @iconv_config@ +imagemagick_config = @imagemagick_config@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +lame_config = @lame_config@ +libdir = @libdir@ +libdvdread_config = @libdvdread_config@ +libexecdir = @libexecdir@ +libjpeg_config = @libjpeg_config@ +libjpegmmx_config = @libjpegmmx_config@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lzo_config = @lzo_config@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pvm3_config = @pvm3_config@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xvid_config = @xvid_config@ +EXTRA_DIST = \ + $(docs_DATA) + +docsdir = $(datadir)/doc/transcode/pvm3 +docs_DATA = \ + export_pvm.txt \ + pvm_10x.cfg pvm_11x.cfg \ + pvm_config.txt + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/pvm3/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/pvm3/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-docsDATA: $(docs_DATA) + @$(NORMAL_INSTALL) + test -z "$(docsdir)" || $(MKDIR_P) "$(DESTDIR)$(docsdir)" + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docsdir)" || exit $$?; \ + done + +uninstall-docsDATA: + @$(NORMAL_UNINSTALL) + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(docsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(docsdir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(docsdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-docsDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-docsDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-docsDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-docsDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/debian/transcode/transcode-1.1.7/docs/pvm3/export_pvm.txt b/debian/transcode/transcode-1.1.7/docs/pvm3/export_pvm.txt new file mode 100644 index 00000000..3aad73e0 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/pvm3/export_pvm.txt @@ -0,0 +1,881 @@ +Export_pvm Documentation + +Last update 2003/09/22 Marzio Malanchini <[email protected]> + +--------------- +* Index +--------------- + - Overview + - Schema + - Usage + - Requirements + - Examples + - Performance + - Tips + - Change log + - To do + - Bugs + + + +--------------- +* Overview +--------------- + +The export_pvm module is based on PVM3 library (Parallel Virtual Machine http://www.epm.ornl.gov/pvm/pvm_home.html) and enable the output codec of transcode to process the request in a distributed processing environments constructed on heterogeneous machines and architectures. +The idea is to split the codec work on different machine using a front end (tcpvmexportd) that load the request module (e.g. export_mpeg2enc.so): each new instances receive from export_pvm a subset of frame and create a portion of the final video file. When all the slave process on host 1,2..n are running (see the schema below) the main task on host 0 (transcode) is waiting for a free task: at the end, when all the video frame are decoded, an others slave processes (merger on host x,y,z) merge all produced file. +For instance only this export module are supported: + +Video: + null (built in) + mpeg2enc + mpeg + divx5 + ffmpeg + xvid + + +Audio: + null (built in) + mp2enc + mpeg + divx5 + ffmpeg + xvid + + +Support for multipass (standard and built in) + +--------------- +* Schema +--------------- + + + /---------\ /---------\ + | | | load | + |transcode |--> from filter output--> | export | + | host 0 | | pvm | + \---------/ \---------/ + | + | spawn process + \ / + | + ____________|________________ + | | | + | | | + load external module /-----------\ /----------\ /----------\ + /--------------\ | slave | | slave | | slave | + |export_xxx.so |<______ |tcpvmexportd| |tcpvmexportd| |tcpvmexportd| + \--------------/ | host 1 | | host 2 | | host n | + \-----------/ \----------/ \----------/ + \___________|_______________/ + | + \ / + | + /--------------\ + | share fs | + | nfs | +spawned by export_pvm | | + /-----------\ \--------------/ + | mergers | | + |tcpvmexportd|___________________________/ + |host x,y,z | + \-----------/ + | + | + \/ +/--------------\ +| output video | +| file | +\--------------/ + +--------------- +* Usage +--------------- + +export_pvm module gets its options from transcode command line with -F option + +Running +transcode -y pvm -F list + +the module give all the options + +[export_pvm.so] v0.0.1 (2003-07-19) (video) * | (audio) * +[export_pvm.so] -F configfile,[[nproc]:[maxproc]:[nfrxtask]] +[export_pvm.so] nproc,maxproc,nfrxtask override the parameter present in the config file +[export_pvm.so] List of known and supported codecs: +[export_pvm.so] Supported Modules +[export_pvm.so] -------------------- +[export_pvm.so] null mp2enc +[export_pvm.so] mpeg2enc divx5 +[export_pvm.so] mpeg ffmpeg +[export_pvm.so] xvid +[export_pvm.so] -------------------- + +where + +configfile configuration file (see below) +nproc number of process for a single host +maxproc max process in the cluster +nfrxtask number of frame that a single slave task elab. (this is the initial value) + +nproc,maxproc,nfrxtask override the parameter present in the config file. + +---------- sample of config file --------------------------------------- +[PvmHostCapability] +NumProcMaxForHost = 1 +MaxProcForCluster = 10 +NumElabFrameForTask = 100 +InternalMultipass=0 +(Host) +Hostname = marzio +NumProcMax = 2 +(Host) +Hostname = elisa +NumProcMax = 2 +(Host) +Hostname = cinzia +NumProcMax = 1 +(Host) +Hostname = lorenzo +NumProcMax = 2 + +[VideoMerger] +Hostname=cinzia +BuildOnlyBatchMergeList=1 + +[AudioMerger] +Hostname=marzio +BuildOnlyBatchMergeList=0 + +[SystemMerger] +Hostname=marzio +BuildOnlyBatchMergeList=0 +MultiplexParams="-f 8" + +[ExportVideoModule] +Codec=mpeg2enc +Param1=d +Param2= +Param3= + +[ExportAudioModule] +Codec=mp2enc +Param1=d +Param2= +Param3= +---------- end config file --------------------------------------- + + +where + +Section [PvmHostCapability] define the cluster environment + + NumProcMaxForHost max number of process for each host in cluster (this parameter override NumProcMax in subsection (Host)). default 1 + + MaxProcForCluster max number of process for the cluster: if NumProcMaxForHost * number of host in cluster is > of MaxProcForCluster then MaxProcForCluster is used (this parameter override MaxProcForCluster in subsection (Host)). default 10 + + NumElabFrameForTask number of frame for each running slave task. default 100 + + InternalMultipass if set to 1 internal multipass is used (multipass in one pass). default 0 + + Subsection (Host) + Hostname the name of the host to use in cluster (not yet implemented in v 0.0.1). default localhost + NumProcMax max number of process (not yet implemented in v 0.0.1). default 1 + +Section [AudioMerger] define parameter for the audio merger task + + Hostname the name of the host to use in cluster. default localhost + + BuildOnlyBatchMergeList create only the build list to merge and remove the temporary file and rebuild the final audio file later (using tcpvmexportd -j -m -f file.cfg). If [SystemMerger] exists then this value is set to 1 by the export_pvm module. default 1 (yes) + +Section [VideoMerger] define parameter for the video merger task + + Hostname the name of the host to use in cluster. default localhost + + BuildOnlyBatchMergeList create only the build list to merge and remove the temporary file and rebuild the final video file later (using tcpvmexportd -j -m -f file.cfg). If [SystemMerger] exists then this value is set to 1 by the export_pvm module. default 1 (yes) + + +Section [SystemMerger] define parameter for the system merger task + + Hostname the name of the host to use in cluster. default localhost + + BuildOnlyBatchMergeList create only the build list to merge and remove the temporary file and rebuild the final system file later (using tcpvmexportd -j -m -f file.cfg). default 1 (yes) + Value: + 0 create directly the system file + 1 create only the merge file list + 2 create the intermediate system files (with a progressive numeber) + + MultiplexParams the parameters to pass to multiplex program (mplex,tcmplex,avimerge): default none. (e.g. for mplex MultiplexParams="-f 8") + +Section [ExportVideoModule] define parameter for export codec + + Codec The name of the codec (e.g. mpeg2enc,null,mpeg) + + Param1 1st codec parameter + + Param2 2nd codec parameter + + Param3 3th codec parameter + +Section [ExportAudioModule] define parameter for export codec + + Codec The name of the codec (e.g. mp2enc,null,mpeg) + + Param1 1st codec parameter + + Param2 2nd codec parameter + + Param3 3th codec parameter + + +Warning + the subsection (Host) isn't yet implemented in v 0.0.1 + + +If BuildOnlyBatchMergeList parameter is set to 1 then export_pvm create some files list like this: + + + +---------- audio list file --------------------------------------- +[AddAudioList] +Destination = /tmp/Becca-Giasson.mpa +Codec = mp2enc +/tmp/Becca-Giasson-omil002-6648-0.mpa +[RemoveAudioList] +/tmp/Becca-Giasson-omil002-6648-0.mpa +---------- end list file --------------------------------------- + +---------- video list file --------------------------------------- +[AddVideoList] +Destination = /tmp/Becca-Giasson.m2v +Codec = mpeg2enc +/tmp/Becca-Giasson-omil002-6645-0.m2v +[RemoveVideoList] +/tmp/Becca-Giasson-omil002-6645-0.m2v +---------- end list file --------------------------------------- + +---------- system list file --------------------------------------- +[SystemList] +Destination = /tmp/Becca-Giasson.mpeg +Codec = mpeg2enc-mp2enc +MultiplexParams = "-f 8" +BuildOnlyIntermediateFile=0 +[AddAudioList] +Destination = /tmp/Becca-Giasson.mpa +Codec = mp2enc +/tmp/Becca-Giasson-omil002-6648-0.mpa +[RemoveAudioList] +/tmp/Becca-Giasson-omil002-6648-0.mpa +[AddVideoList] +Destination = /tmp/Becca-Giasson.m2v +Codec = mpeg2enc +/tmp/Becca-Giasson-omil002-6645-0.m2v +[RemoveVideoList] +/tmp/Becca-Giasson-omil002-6645-0.m2v +---------- end list file --------------------------------------- + + + + +where + +Section [AddVideoList] and [AddAudioList] define the merge group list + + Destination The name of destination file + + Codec The name of the codec + + file name..... + +Section [RemoveVideoList] and [RemoveAudioList] define the remove group list + + file name..... + +Section [SystemList] define how to multiplex the produced file list + + Destination The name of destination file + + Codec The name of the codec (e.g. mpeg2enc-mp2enc,mpeg-mpeg) + + MultiplexParams The parameters to pass to multiplex program (e.g. MultiplexParams = "-f 8") + + BuildOnlyIntermediateFile Build only intermediate files. default 0 + +The command + +tcpvmexportd -j -m -f merge.lst + +make the batch merge . + + + + +--------------- +* Requirements +--------------- + +export_pvm require pvm3 (3.4) library to be compiled. + +To enable the module run configure with these parameters: + + +(for redhat 9) +./configure --with-pvm3 --with-pvm3-include=/usr/share/pvm3/include --with-pvm3-lib=/usr/share/pvm3/lib/LINUXI386 +(for debian) +./configure --with-pvm3 + + +--------------- +* Examples +--------------- + +This is a quick and dirty how to set up the pvm cluster with two machine (host A and B) + +PVM need to exchange information between hosts (using remote shell or ssh) + +1) put the entries below in .bashrc for user xyzt (host A and host B) + +(for redhat 9) +export PVM_ROOT=/usr/share/pvm3 #PVM root +export PVM_PATH=/home/mmalanc/local/bin #where you install transcode binary +export PVM_WD=/home/mmalanc/local/bin #where you install transcode binary +export PVM_RSH=/usr/bin/ssh #use ssh instead rsh + +(for debian) +export PVM_ROOT=/usr/lib/pvm3 #PVM root +export PVM_PATH=/home/mmalanc/local/bin #where you install transcode binary +export PVM_WD=/home/mmalanc/local/bin #where you install transcode binary +export PVM_RSH=/usr/bin/ssh #use ssh instead rsh + +2) on each host create a ssh key + + ssh-keygen -t rsa + +3) copy the public key + + eval `ssh-agent` + ssh-add # your passphrase + scp -p $HOME/.ssh/id_rsa.pub hostB:$HOME/.ssh/authorized_keys + scp -p hostB:$HOME/.ssh/id_rsa.pub $HOME/.ssh/authorized_keys # now no password is required + +4) test if ssh is work (without password) + +from hostA ssh hostB (no password is required) +from hostB eval `ssh-agent` + ssh-add # your passphrase + ssh hostA (no password is required) + + +5) goto the host that have the input video files (e.g. hostA) and run as root and share volume + + (for redhat 9) +hostA + /etc/init.d/nfs start #start NFS server + exportfs -i -o rw hostB:/my_multimedia_repository + +hostB + mkdir /my_multimedia_repository + mount -t nfs hostB:/my_multimedia_repository /my_multimedia_repository + + +6) as normal user (xyzt) on hostA run + + pvm + pvm> add hostA + add hostA + 1 successful + HOST DTID + hostA 80000 + pvm> conf + conf + 2 hosts, 1 data format + HOST DTID ARCH SPEED DSIG + hostA 40000 LINUXI386 1000 0x00408841 + hostB 80000 LINUXI386 1000 0x00408841 + pvm> quit + quit + + Console: exit handler called + pvmd still running. + + Now the cluster has two hosts configured. + +7) create the config file + +---------- sample of config file (see doc dir) --------------------------------------- +[PvmHostCapability] +NumProcMaxForHost = 1 #best 1 for each cpu +MaxProcForCluster = 10 +NumElabFrameForTask = 100 + +[AudioMerger] +Hostname=hostA +BuildOnlyBatchMergeList=1 + +[VideoMerger] +Hostname=hostA +BuildOnlyBatchMergeList=1 + +[SystemMerger] +Hostname=hostA +BuildOnlyBatchMergeList=1 +MultiplexParams="-f 8" + +[ExportVideoModule] +Codec=mpeg2enc +Param1=d +Param2= +Param3= + +[ExportAudioModule] +Codec=mp2enc +Param1= +Param2= +Param3= +---------- end config file --------------------------------------- + + +8) run transcode + +transcode -i /video/BeccaGiasson/Becca-Giasson-001.avi -y pvm -F /tmp/pvm.cfg -o /dati/multimedia/VOB/Becca-Giasson --progress_off + +at the end the output will be something like this + +-rw-r--r-- 1 mmalanc mmalanc 1247 Aug 13 2003 Becca-Giasson-audio.lst +-rw-rw-r-- 1 mmalanc mmalanc 211614 Aug 13 10:58 Becca-Giasson-hostA-19430-0.m2v +-rw-rw-r-- 1 mmalanc mmalanc 199511 Aug 13 10:58 Becca-Giasson-hostA-19430-1.m2v +-rw-rw-r-- 1 mmalanc mmalanc 230401 Aug 13 10:58 Becca-Giasson-hostA-19430-2.m2v +-rw-rw-r-- 1 mmalanc mmalanc 204532 Aug 13 10:59 Becca-Giasson-hostA-19430-3.m2v +-rw-rw-r-- 1 mmalanc mmalanc 207048 Aug 13 2003 Becca-Giasson-hostA-19430-4.m2v +-rw-rw-r-- 1 mmalanc mmalanc 201741 Aug 13 10:59 Becca-Giasson-hostA-19430-5.m2v +-rw-rw-r-- 1 mmalanc mmalanc 117328 Aug 13 10:59 Becca-Giasson-hostA-19430-6.m2v +-rw-rw-r-- 1 mmalanc mmalanc 13057 Aug 13 10:58 Becca-Giasson-hostA-19434-0.mpa +-rw-rw-r-- 1 mmalanc mmalanc 13057 Aug 13 10:58 Becca-Giasson-hostA-19434-1.mpa +-rw-rw-r-- 1 mmalanc mmalanc 13057 Aug 13 10:58 Becca-Giasson-hostA-19434-2.mpa +-rw-rw-r-- 1 mmalanc mmalanc 13057 Aug 13 10:59 Becca-Giasson-hostA-19434-3.mpa +-rw-rw-r-- 1 mmalanc mmalanc 13057 Aug 13 10:59 Becca-Giasson-hostA-19434-4.mpa +-rw-rw-r-- 1 mmalanc mmalanc 6913 Aug 13 2003 Becca-Giasson-hostA-19434-5.mpa +-rw-rw-r-- 1 mmalanc mmalanc 211897 Aug 13 2003 Becca-Giasson-hostB-29892-0.m2v +-rw-rw-r-- 1 mmalanc mmalanc 203843 Aug 13 2003 Becca-Giasson-hostB-29892-1.m2v +-rw-rw-r-- 1 mmalanc mmalanc 208230 Aug 13 2003 Becca-Giasson-hostB-29892-2.m2v +-rw-rw-r-- 1 mmalanc mmalanc 4 Aug 13 2003 Becca-Giasson-hostB-29892-3.m2v +-rw-rw-r-- 1 mmalanc mmalanc 13057 Aug 13 2003 Becca-Giasson-hostB-29893-0.mpa +-rw-rw-r-- 1 mmalanc mmalanc 13057 Aug 13 2003 Becca-Giasson-hostB-29893-1.mpa +-rw-rw-r-- 1 mmalanc mmalanc 13057 Aug 13 2003 Becca-Giasson-hostB-29893-2.mpa +-rw-rw-r-- 1 mmalanc mmalanc 13057 Aug 13 2003 Becca-Giasson-hostB-29893-3.mpa +-rw-rw-r-- 1 mmalanc mmalanc 0 Aug 13 2003 Becca-Giasson-hostB-29893-4.mpa +-rw-r--r-- 1 mmalanc mmalanc 1249 Aug 13 10:59 Becca-Giasson-video.lst + +with these listing files + +------------ start Becca-Giasson-video.lst------------- +[AddVideoList] +Destination = /dati/multimedia/VOB/Becca-Giasson.m2v +Codec = mpeg2enc +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-0.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-0.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-1.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-2.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-1.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-3.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-4.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-2.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-5.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-6.m2v +[RemoveVideoList] +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-0.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-0.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-1.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-2.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-3.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-1.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-4.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-2.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-5.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-6.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-3.m2v +------------ end Becca-Giasson-video.lst------------- + + +------------ start Becca-Giasson-audio.lst------------- +[AddAudioList] +Destination = /dati/multimedia/VOB/Becca-Giasson.mpa +Codec = mp2enc +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-0.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-1.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-2.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-0.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-1.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-3.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-2.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-4.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-5.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-3.mpa +[RemoveAudioList] +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-0.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-0.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-1.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-2.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-1.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-3.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-2.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-4.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-3.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-5.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-4.mpa +------------ end Becca-Giasson-audio.lst------------- + +and + +------------ start Becca-Giasson-system.lst------------- +[SystemList] +Destination = /dati/multimedia/VOB/Becca-Giasson.mpeg +Codec = mpeg2enc-mp2enc +MultiplexParams = "-f 8" +BuildOnlyIntermediateFile=0 +[AddVideoList] +Destination = /dati/multimedia/VOB/Becca-Giasson.m2v +Codec = mpeg2enc +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-0.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-0.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-1.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-2.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-1.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-3.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-4.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-2.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-5.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-6.m2v +[RemoveVideoList] +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-0.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-0.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-1.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-2.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-3.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-1.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-4.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-2.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-5.m2v +/dati/multimedia/VOB/Becca-Giasson-hostA-19430-6.m2v +/dati/multimedia/VOB/Becca-Giasson-hostB-29892-3.m2v +[AddAudioList] +Destination = /dati/multimedia/VOB/Becca-Giasson.mpa +Codec = mp2enc +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-0.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-1.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-2.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-0.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-1.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-3.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-2.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-4.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-5.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-3.mpa +[RemoveAudioList] +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-0.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-0.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-1.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-2.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-1.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-3.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-2.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-4.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-3.mpa +/dati/multimedia/VOB/Becca-Giasson-hostA-19434-5.mpa +/dati/multimedia/VOB/Becca-Giasson-hostB-29893-4.mpa +------------ end Becca-Giasson-system.lst------------- + + +9) run tcpvmexportd in batch merge mode + + 9.1) if you plan to use only audio or video component then you can only run + + tcpvmexportd -m -j -f /dati/multimedia/VOB/Becca-Giasson-audio.lst + +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-0.mpa +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-1.mpa +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-2.mpa +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29893-0.mpa +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29893-1.mpa +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-3.mpa +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29893-2.mpa +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-4.mpa +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-5.mpa +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.mpa and remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29893-3.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-0.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29893-0.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-1.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-2.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29893-1.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-3.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29893-2.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-4.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29893-3.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19434-5.mpa +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29893-4.mpa + +or + + tcpvmexportd -m -j -f /dati/multimedia/VOB/Becca-Giasson-video.lst + +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29892-0.m2v +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-0.m2v +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-1.m2v +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-2.m2v +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29892-1.m2v +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-3.m2v +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-4.m2v +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29892-2.m2v +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-5.m2v +[tcpvmexportd] merge into /dati/multimedia/VOB/Becca-Giasson.m2v and remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-6.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-0.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29892-0.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-1.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-2.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-3.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29892-1.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-4.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29892-2.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-5.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostA-19430-6.m2v +[tcpvmexportd] remove file /dati/multimedia/VOB/Becca-Giasson-hostB-29892-3.m2v + + +and the output will be + +-rw-r--r-- 1 mmalanc mmalanc 1996145 Aug 13 11:08 Becca-Giasson.m2v +-rw-r--r-- 1 mmalanc mmalanc 124426 Aug 13 11:07 Becca-Giasson.mpa + + + 9.2) If you plan to join audio and video then run the command + + tcpvmexportd -m -j -f /dati/multimedia/VOB/Becca-Giasson-system.lst + +(if you multiplex the two file produced with 9.1 (Becca-Giasson.m2v Becca-Giasson.mpa) you'll have a mpeg system file with A/V out of sync) + +(with BuildOnlyBatchMergeList=0 in the pvm.cfg file the step 8 produce the final file directly) + +--------------- +* Performance +--------------- + +Number of frame: 5632 + +Switched LAN 100 Mb/s + + +Version of transcode (normal encode): + +transcode v0.6.10 (C) 2001-2003 Thomas Oestreich +[transcode] auto-probing source SanMartinodiCastrozza-04-07-2000.smil (ok) +[transcode] V: import format | Digital Video QuickTime (V=mov|A=mov) +[transcode] V: import frame | 720x576 1.25:1 +[transcode] V: de-interlace | (mode=5) interpolate scanlines / blend frames +[transcode] V: bits/pixel | 0.174 +[transcode] V: decoding fps,frc | 25.000,3 +[transcode] A: import format | 0x1 PCM [32000,16,2] +[transcode] A: export format | 0x50 MPEG layer-2 [32000,16,2] 128 kbps +[transcode] V: encoding fps,frc | 25.000,3 +[transcode] A: bytes per frame | 5120 (5120.000000) +[transcode] A: adjustment | 0@1000 +[transcode] V: IA32 accel mode | sse (sse mmxext mmx asm) +[transcode] V: video buffer | 10 @ 720x576 +[import_xml.so] v0.0.8 (2003-07-09) (video) * | (audio) * +[export_mp2enc.so] v1.0.8 (2003-04-10) (audio) MPEG 1/2 +[export_mpeg2enc.so] v1.1.8 (2003-07-24) (video) MPEG 1/2 + + + +Version of transcode (pvm encode): + +transcode v0.6.10 (C) 2001-2003 Thomas Oestreich +[transcode] auto-probing source SanMartinodiCastrozza-04-07-2000.smil (ok) +[transcode] V: import format | Digital Video QuickTime (V=mov|A=mov) +[transcode] V: import frame | 720x576 1.25:1 +[transcode] V: de-interlace | (mode=5) interpolate scanlines / blend frames +[transcode] V: bits/pixel | 0.174 +[transcode] V: decoding fps,frc | 25.000,3 +[transcode] A: import format | 0x1 PCM [32000,16,2] +[transcode] A: export format | 0x55 MPEG layer-3 [32000,16,2] 128 kbps +[transcode] V: encoding fps,frc | 25.000,3 +[transcode] A: bytes per frame | 5120 (5120.000000) +[transcode] A: adjustment | 0@1000 +[transcode] V: IA32 accel mode | sse (sse mmxext mmx asm) +[transcode] V: video buffer | 10 @ 720x576 +[import_xml.so] v0.0.8 (2003-07-09) (video) * | (audio) * +[export_pvm.so] v0.0.1 (2003-08-12) (video) * | (audio) * +(export_pvm_slave.c) on host hostA pid 23866 recall [export_mpeg2enc.so] v1.1.8 (2003-07-24) (video) MPEG 1/2 +(export_pvm_slave.c) on host hostB pid 11036 recall [export_mpeg2enc.so] v1.1.8 (2003-07-24) (video) MPEG 1/2 +(export_pvm_slave.c) on host hostA pid 23868 recall [export_mp2enc.so] v1.0.8 (2003-04-10) (audio) MPEG 1/2 +(export_pvm_slave.c) on host hostB pid 11037 recall [export_mp2enc.so] v1.0.8 (2003-04-10) (audio) MPEG 1/2 + + +Scenario pvm 1 + host A: pentium 3 866 MHz, 1GB RAM (decode+nfs server+merger+slave process) + host B: pentium 3 1GHz, 256MB RAM (slave process) + + Cmd1: transcode -i SanMartinodiCastrozza-04-07-2000.smil -y pvm -F /dati/multimedia/VOB/pvm.cfg -o /dati/multimedia/VOB/SanMartinodiCastrozza-04-07-2000-pvm -I 5 + Cmd2: transcode -i SanMartinodiCastrozza-04-07-2000.smil -y pvm -F /dati/multimedia/VOB/pvm2.cfg -o /dati/multimedia/VOB/SanMartinodiCastrozza-04-07-2000-pvm -I 5 -w 7500 + Config file: +-----------------------pvm.cfg---------------------------------- +[PvmHostCapability] +NumProcMaxForHost = 1 +MaxProcForCluster = 10 +NumElabFrameForTask = 100 +(Host) +Hostname = hostA +NumProcMax = 2 +(Host) +Hostname = hostB +NumProcMax = 2 + +[VideoMerger] +Hostname=hostA +BuildOnlyBatchMergeList=0 + +[AudioMerger] +Hostname=hostA +BuildOnlyBatchMergeList=0 + +[SystemMerger] +Hostname=hostA +BuildOnlyBatchMergeList=0 +MultiplexParams="-f 8" + +[ExportVideoModule] +Codec=mpeg2enc +Param1=8 +Param2= +Param3= + +[ExportAudioModule] +Codec=mp2enc +Param1= +Param2= +Param3= +-----------------------pvm.cfg---------------------------------- + +Scenario pvm 2 + host A: pentium 3 866 MHz, 1GB RAM (decode+nfs server+merger+slave process) + host B: pentium 3 1 GHz, 256MB RAM (slave process) + host C: pentium 3 497 MHz, 256MB RAM (slave process) + + Cmd1: transcode -i SanMartinodiCastrozza-04-07-2000.smil -y pvm -F /dati/multimedia/VOB/pvm.cfg -o /dati/multimedia/VOB/SanMartinodiCastrozza-04-07-2000-pvm -I 5 + Cmd2: transcode -i SanMartinodiCastrozza-04-07-2000.smil -y pvm -F /dati/multimedia/VOB/pvm2.cfg -o /dati/multimedia/VOB/SanMartinodiCastrozza-04-07-2000-pvm -I 5 -w 7500 + Config file: +-----------------------pvm1.cfg---------------------------------- +[PvmHostCapability] +NumProcMaxForHost = 1 +MaxProcForCluster = 10 +NumElabFrameForTask = 100 +(Host) +Hostname = hostA +NumProcMax = 2 +(Host) +Hostname = hostB +NumProcMax = 2 + +[VideoMerger] +Hostname=hostA +BuildOnlyBatchMergeList=0 + +[AudioMerger] +Hostname=hostA +BuildOnlyBatchMergeList=0 + +[SystemMerger] +Hostname=hostA +BuildOnlyBatchMergeList=0 +MultiplexParams="-f 8" + +[ExportVideoModule] +Codec=mpeg2enc +Param1=6 +Param2="-f 3 -F 3 -n p -q 2 -r 32 -4 1 -2 1" +Param3= + +[ExportAudioModule] +Codec=mp2enc +Param1= +Param2= +Param3= +-----------------------pvm1.cfg---------------------------------- + + +Scenario normal encode + host A: pentium 3 866 MHz, 1GB RAM (mpeg2enc,mp2enc) + + Cmd1: transcode -i SanMartinodiCastrozza-04-07-2000.smil -y mpeg2enc,mp2enc -F 8 -o /dati/multimedia/VOB/SanMartinodiCastrozza-04-07-2000-mpeg2enc-mp2enc -I 5 + Cmd2: transcode -i SanMartinodiCastrozza-04-07-2000.smil -y mpeg2enc,mp2enc -F 6,"-f 3 -F 3 -n p -q 2 -r 32 -4 1 -2 1" -o /dati/multimedia/VOB/SanMartinodiCastrozza-04-07-2000-mpeg2enc-mp2enc -I 5 -w 7500 + + +Results: +Cmd1 + Normal encode : elapsed time 1646 sec (27min 26sec -> 3.4212 fps) + Pvm encode 2 hosts : elapsed time 1410 sec (23min 30sec -> 3.9943 fps) + Pvm encode 3 hosts : elapsed time 1204 sec (20min 04sec -> 4.6777 fps) +Cmd2 + Normal encode : elapsed time 7951 sec (2hour 12min 31sec -> 0.7083 fps) + Pvm encode 2 hosts : elapsed time 4856 sec (1hour 20min 56sec -> 1.1598 fps) + Pvm encode 3 hosts : elapsed time 4173 sec (1hour 9min 33sec -> 1.3496 fps) + + +--------------- +* Tips +--------------- + +1) If you have a single machine with a single CPU don't use the export_pvm (it produce the same file in about 1.2-1.3 time then normal export module) +2) If you have machine with a single CPU set NumProcMaxForHost to 1 max 2 and set MaxProcForCluster to number of host * NumProcMaxForHost + 1 +3) Set 1-2 process for each CPU +4) If the decode process never wait for a free task then you probably found the right configuration (add more slave host is useless: you need to speed up the decode process). +5) If you plan to have a system file don't multiplex the merged audio and video, but run the built in system merge process (this remove an A/V sync problem). +6) If you plan to create a DVD with dvdauthor then set BuildOnlyBatchMergeList=2 in the [SystemMerger] section and pass to dvdauthor the system files generated (force BuildOnlyIntermediateFile=1 in the [SystemList] section). (with dvdauthor alpha 338 use this command dvdauthor -o mydir -c 0:00,x:yz mympeg.mpeg-000000 -c c 0:00,x:yz mympeg.mpeg-000001 ........ where x:yz is the value set in NumElabFrameForTask (e.g. NumElabFrameForTask=99 and PAL x:yz=3:24)) +7) If you enable the multipass option (-R 1,2) the video and audio log will be created in the output directory (option -o and -m). +8) If you plan to create an avi with multipass, you can use the internal multipass (it takes less time then standard multipass option (set InternalMultipass=1)) +9) If you specify InternalMultipass=1 in cfg file and -R (1,2,3) in cmd line, -R option will be used. + + +--------------- +* Change log +--------------- + +2003-09-22 * acinclude.m4 aclocal.m4 docs/export_pvm.txt docs/man/tcpvmexportd.1 export/export_ffmpeg.c export/export_pvm.c export/Makefile.am pvm3/export_pvm_slave.c pvm3/export_pvm_slave.h pvm3/external_codec.c pvm3/external_codec.h pvm3/Makefile.am pvm3/pvm_functions.c pvm3/pvm_functions.h pvm3/pvm_parser.c pvm3/pvm_parser.h pvm3/pvm_version.h pvm3/tcpvmexportd.c pvm3/vob_pack_unpack.c pvm3/vob_pack_unpack.h src/Makefile.am src/tc_func_excl.h src/tc_functions.c src/tc_functions.h src/transcode.c src/transcode.h + +- added support for ffmpeg,divx4,divx5,af6,xvid,xvid2 encode module. +- added multipass and internal multipass support. +- enable pvm3 by default. +- bugfix. + +2003-08-21 * docs/export_pvm.txt export/export_pvm.c pvm3/external_codec.c pvm3/tcpvmexportd.c + +- added support for mpeg encode. + +2003-08-20 * docs/export_pvm.txt docs/man/tcpvmexportd.1 docs/pvm.cfg export/export_pvm.c pvm3/export_pvm_slave.c pvm3/export_pvm_slave.h pvm3/pvm_parser.c pvm3/pvm_parser.h pvm3/pvm_version.h pvm3/tcpvmexportd.c + +- added BuildOnlyBatchMergeList=2 in [SystemMerger] section to build only the intermediate system files and BuildOnlyIntermediateFile in [SystemList] section (dvdauthor don't like a merged file). + +2003-08-12 * first release of export_pvm + + + + +--------------- +* To do +--------------- + +- add a really support for A/V multithread option (-u) (for instance is set to 1). +- create a resource manager +- retrieve encoded frame without nfs +- balancing weight based +- extension to other codec +- remove the nfs dependency +- more.... + + + +--------------- +* Bugs +--------------- + +- please send me an e-mail diff --git a/debian/transcode/transcode-1.1.7/docs/pvm3/pvm_10x.cfg b/debian/transcode/transcode-1.1.7/docs/pvm3/pvm_10x.cfg new file mode 100644 index 00000000..7da7ca49 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/pvm3/pvm_10x.cfg @@ -0,0 +1,79 @@ +[PvmHostCapability] +NumProcMaxForHost = 1 +MaxProcForCluster = 10 +NumElabFrameForTask = 100 +(Host) +Hostname = marzio +NumProcMax = 2 +(Host) +Hostname = elisa +NumProcMax = 2 +(Host) +Hostname = cinzia +NumProcMax = 1 +(Host) +Hostname = lorenzo +NumProcMax = 1 + +[VideoMerger] +Hostname=marzio +BuildOnlyBatchMergeList=0 #if [SystemMerger] exist then BuildOnlyBatchMergeList=1 + +[AudioMerger] +Hostname=marzio +BuildOnlyBatchMergeList=0 #if [SystemMerger] exist then BuildOnlyBatchMergeList=1 + +[SystemMerger] +Hostname=marzio +BuildOnlyBatchMergeList=0 +MultiplexParams="-f 8" #multiplex parameters + +[ExportVideoModule] +Codec=mpeg2enc +Param1=8 +Param2= +Param3= + +[ExportAudioModule] +Codec=mp2enc +Param1= +Param2= +Param3= + +# The section next 5 sections are for internal use of tcpvmexportd +#[SystemList] +#Destination = /my/dest/file.mpeg +#Codec = mpeg2enc-mp2enc +#MultiplexParams="-f 8" +#BuildOnlyBatchMergeList=0 # value 0 build just the system file, 2 build only intermediate system files +#[AddVideoList] +#Destination = /my/dest/file.m1v +#Codec = mpeg2enc +#/tmp/file1.m1v +#/tmp/file2.m1v +#/tmp/file3.m1v +#/tmp/file4.m1v +#/tmp/file5.m1v + +#[RemoveVideoList] +#/tmp/file1.m1v +#/tmp/file2.m1v +#/tmp/file3.m1v +#/tmp/file4.m1v +#/tmp/file5.m1v + +#[AddAudioList] +#Destination = /my/dest/file.mpa +#Codec = mp2enc +#/tmp/file1.mpa +#/tmp/file2.mpa +#/tmp/file3.mpa +#/tmp/file4.mpa +#/tmp/file5.mpa + +#[RemoveAudioList] +#/tmp/file1.mpa +#/tmp/file2.mpa +#/tmp/file3.mpa +#/tmp/file4.mpa +#/tmp/file5.mpa diff --git a/debian/transcode/transcode-1.1.7/docs/pvm3/pvm_11x.cfg b/debian/transcode/transcode-1.1.7/docs/pvm3/pvm_11x.cfg new file mode 100644 index 00000000..e22297b1 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/pvm3/pvm_11x.cfg @@ -0,0 +1,95 @@ +[PvmHostCapability] +NumProcMaxForHost = 1 +MaxProcForCluster = 10 +NumElabFrameForTask = 100 +Nodes = 4 + +[Node1] +Hostname = marzio +NumProcMax = 2 +Enabled = yes # default + +[Node2] +Hostname = elisa +NumProcMax = 2 +Enabled = yes + +[Node3] +Hostname = cinzia +NumProcMax = 1 # default +Enabled = yes + +[Node4] +Hostname = lorenzo +NumProcMax = 1 +Enabled = yes + +# Maximum: 8 nodes + +[VideoMerger] +Hostname=marzio +BuildOnlyBatchMergeList=0 #if [SystemMerger] exist then BuildOnlyBatchMergeList=1 + +[AudioMerger] +Hostname=marzio +BuildOnlyBatchMergeList=0 #if [SystemMerger] exist then BuildOnlyBatchMergeList=1 + +[SystemMerger] +Hostname=marzio +BuildOnlyBatchMergeList=0 +MultiplexParams="-f 8" #multiplex parameters + +[ExportVideoModule] +Codec=mpeg2enc +Param1=8 +#Param2= +#Param3= + +[ExportAudioModule] +Codec=mp2enc +#Param1= +#Param2= +#Param3= + +# The section next 7 sections are for internal use of tcpvmexportd +#[SystemList] +#Destination = /my/dest/file.mpeg +#Codec = mpeg2enc-mp2enc +#MultiplexParams="-f 8" +#BuildOnlyBatchMergeList=0 # value 0 build just the system file, 2 build only intermediate system files +# +#[AddVideo] +#Destination = /my/dest/file.m1v +#Codec = mpeg2enc +# +#[AddVideoList] +#/tmp/file1.m1v +#/tmp/file2.m1v +#/tmp/file3.m1v +#/tmp/file4.m1v +#/tmp/file5.m1v + +#[RemoveVideoList] +#/tmp/file1.m1v +#/tmp/file2.m1v +#/tmp/file3.m1v +#/tmp/file4.m1v +#/tmp/file5.m1v + +#[AddAudio] +#Destination = /my/dest/file.mpa +#Codec = mp2enc +# +#[AddAudioList] +#/tmp/file1.mpa +#/tmp/file2.mpa +#/tmp/file3.mpa +#/tmp/file4.mpa +#/tmp/file5.mpa + +#[RemoveAudioList] +#/tmp/file1.mpa +#/tmp/file2.mpa +#/tmp/file3.mpa +#/tmp/file4.mpa +#/tmp/file5.mpa diff --git a/debian/transcode/transcode-1.1.7/docs/pvm3/pvm_config.txt b/debian/transcode/transcode-1.1.7/docs/pvm3/pvm_config.txt new file mode 100644 index 00000000..297a0b1e --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/pvm3/pvm_config.txt @@ -0,0 +1,192 @@ + + Configuring PVM modules for transcode + ===================================== + + Revision 0.1 - 20070808 Francesco Romani + fromani at gmail dot com + + ~~~ + + Introduction + ============ + +From years, transcode supports clustering via PVM infrastructure. +Clustering is one of trancode's peculiar features, and starting with 1.1.0 +release, is being rethinked, redesigned and rewrote from groundup. +First user-visible change is some small but important incompatibilities +in configuration file syntax from 1.0.x to 1.1.x released. + +This document outlines those changes and explain how to port 1.0.x +configuration file to 1.1.x release. + +See docs/pvm3/pvm_10x.cfg and docs/pvm3/pvm_11x.cfg for valid example +configuration files. + + + Changes between 1.0.x and 1.1.x + =============================== + + +1. Important changes + +In a nutshell: +* Number of cluster nodes must be now provided explicitely +* Each cluster node has it's own configuration section, and can be + disabled independentely +* Listing section can now contain only list data, so some section + are been split. + + +2. Node configuration + +Node configuration was significantly changed. Each node has now +a separate section with the name `NodeX', where `X' is a progressive +index with no special meaning. So, node configuration are NO LONGER +subsections of `PvmHostCapability' section. +`PvmHostCapability' section MUST now explicitely provide the expected +number of nodes in cluster using the new + +Nodes = NUM + +option, where `NUM' is of course the number of nodes avalaible; +A minimum of 1 (one) node must be present in the cluster, and +a maximum of 8 (eight) nodes must be present. + +Each node configuration section has now an +`Enabled' = BOOL {yes,no} +section that permit to disable current node. + +An important thing to notice is that nodes MUST be configured in order. +If you configure, say, three nodes in a cluster, those nodes MUST +be configured in `Node1', `Node2' and `Node3' section, otherwise +PVM configuration parser will complain. This is a techincal limitation +of the configuration parser and it will go away as soon as is possible. + +If you want to temporary disable a node, just set `Enabled = no' for it. + +Example (Configuring nodes): + +1.0.x: ... +1.0.x: +1.0.x: [PvmHostCapability] +1.0.x: NumProcMaxForHost = 1 +1.0.x: MaxProcForCluster = 10 +1.0.x: NumElabFrameForTask = 100 +1.0.x: (Host) +1.0.x: Hostname = foo.buz.lan +1.0.x: NumProcMax = 2 +1.0.x: (Host) +1.0.x: Hostname = bar.buz.lan +1.0.x: NumProcMax = 2 +1.0.x: +1.0.x: ... + +1.1.x: ... +1.1.x: +1.1.x: [PvmHostCapability] +1.1.x: NumProcMaxForHost = 1 +1.1.x: MaxProcForCluster = 10 +1.1.x: NumElabFrameForTask = 100 +1.1.x: Nodes = 4 +1.1.x: +1.1.x: [Node1] +1.1.x: Hostname = foo.buz.lan +1.1.x: NumProcMax = 2 +1.1.x: Enabled = yes +1.1.x: +1.1.x: [Node2] +1.1.x: Hostname = bar.buz.lan +1.1.x: NumProcMax = 2 +1.1.x: Enabled = yes +1.1.x: +1.1.x: ... + + +Example (Disabling a node): + +1.0.x: ... +1.0.x: +1.0.x: [PvmHostCapability] +1.0.x: NumProcMaxForHost = 1 +1.0.x: MaxProcForCluster = 10 +1.0.x: NumElabFrameForTask = 100 +1.0.x: (Host) +1.0.x: Hostname = foo.buz.lan +1.0.x: NumProcMax = 2 +1.0.x: #(Host) +1.0.x: #Hostname = bar.buz.lan +1.0.x: #NumProcMax = 2 +1.0.x: +1.0.x: ... + +1.1.x: ... +1.1.x: +1.1.x: [PvmHostCapability] +1.1.x: NumProcMaxForHost = 1 +1.1.x: MaxProcForCluster = 10 +1.1.x: NumElabFrameForTask = 100 +1.1.x: Nodes = 4 +1.1.x: +1.1.x: [Node1] +1.1.x: Hostname = foo.buz.lan +1.1.x: NumProcMax = 2 +1.1.x: Enabled = yes +1.1.x: +1.1.x: [Node2] +1.1.x: Hostname = bar.buz.lan +1.1.x: NumProcMax = 2 +1.1.x: Enabled = no +1.1.x: +1.1.x: ... + + +3. File listing + +Former AddVideoList and AddAudioList are been split respectively in +AddVideo,AddVideoList pair and AddAudio and AddAudioList pair. +AddAudio and AddVideo will just contain the "Destination" and "Codec" +parameters, while the AddVideoList and AddAudioList contain just the +file list. +It is now considered an error to interleave parameters and list. + +Example: + +1.0.x: ... +1.0.x: +1.0.x: [AddVideoList] +1.0.x: Destination = /my/dest/file.m1v +1.0.x: Codec = mpeg2enc +1.0.x: /tmp/file1.m1v +1.0.x: /tmp/file2.m1v +1.0.x: /tmp/file3.m1v +1.0.x: /tmp/file4.m1v +1.0.x: /tmp/file5.m1v +1.0.x: +1.0.x: ... + +1.1.x: ... +1.1.x: +1.1.x: [AddVideo] +1.1.x: Destination = /my/dest/file.m1v +1.1.x: Codec = mpeg2enc +1.1.x: +1.1.x: ... +1.1.x: +1.1.x: [AddVideoList] +1.1.x: /tmp/file1.m1v +1.1.x: /tmp/file2.m1v +1.1.x: /tmp/file3.m1v +1.1.x: /tmp/file4.m1v +1.1.x: /tmp/file5.m1v +1.1.x: +1.1.x: ... + + +4. Miscelanous + +The limitation of 8 cluster nodes is arbitrary and will be relaxed or just +dropped in next transcode versions. +Same as above for the need to explicitely provide the number of cluster +nodes and for the need to configure nodes in order. + +--------------------------------------------------------------------------- diff --git a/debian/transcode/transcode-1.1.7/docs/tcmkmodhelp.py b/debian/transcode/transcode-1.1.7/docs/tcmkmodhelp.py new file mode 100755 index 00000000..c3533bc4 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tcmkmodhelp.py @@ -0,0 +1,167 @@ +#!/usr/bin/python + +import sys +import os +import os.path +import optparse +import subprocess + +DOC_ID = "*%*" + +class TaggedSource(object): + def __init__(self, f): + self._f = f + def __iter__(self): + return self + def next(self): + for line in self._f: + line = line.strip() + if DOC_ID not in line[:4]: # is documentation line? + continue + line = line[4:].strip() + if not line: + continue + if line == '*%*/': # end of annotation + break + i = line.find('#') + if i >= 0: + line = line[:i] # strip comments, if any + line = line.strip() # to be sure we're naked ;) + if line: + return line + raise StopIteration + +# common XML output ancestor + +class TCModuleDoc(object): + def __init__(self, name, src, srcname=""): + self._name = name + if srcname: + self._srcname = srcname + else: + self._srcname = "unknown" + if src: + self.parse(src) + + def to_xml(self): + # feel free to suggest something nicer. + res = "<!-- %s -->" %(self._srcname) + T = self._tree + if not T: + return res + res += "\n" + \ +" <varlistentry>\n" + \ +" <term>\n" + \ +" <option>%s</option>\n" %(self._name) + \ +" <emphasis>[%s]</emphasis>\n" %(",".join(T["MEDIA"])) + \ +" </term>\n" + \ +" <listitem>\n" + \ +" <para>%s</para>\n" %(T["DESCRIPTION"]) + if "BUILD_DEPENDS" in T: + res += \ +" <para>At compile time, this module requires: %s</para>\n" %(T["BUILD_DEPENDS"]) + if "DEPENDS" in T: + res += \ +" <para>At run time, this module requires: %s</para>\n" %(T["DEPENDS"]) + opttree = T["OPTION"] + if opttree: + res += "<para>This module accepts the following options:</para>\n" + for (n, t), d in opttree.items(): + res += \ +" <variablelist>\n" + \ +" <varlistentry>\n" + \ +" <term>\n" + \ +" <literal>%s (%s)</literal>\n" %(n, t) + \ +" </term>\n" + \ +" <listitem>\n" + \ +" <para>%s</para>\n" %(d) + \ +" </listitem>\n" + \ +" </varlistentry>\n" + \ +" </variablelist>\n" + res += "" + \ +" </listitem>\n" + \ +" </varlistentry>" + return res + def to_text(self): + # the simplest thing that works. + return "\n".join("%s: %s" %(k, self._tree[k]) for k in sorted(self._tree) ) + def parse(self, data): + raise NotImplementedError + +## what about decorator pattern or something like that? + +class TCModuleDocFromTaggedSource(TCModuleDoc): + text_secs = set(("DESCRIPTION", "BUILD-DEPENDS", "DEPENDS", "PROCESSING")) + list_secs = set(("MEDIA", "INPUT", "OUTPUT")) + opts_secs = set(("OPTION",)) + + def _explode(self, opt): + return opt.replace('*', " (preferred)") + def _parse_opts(self, line, data, tree, outsecs): + key, val = line, [] + for line in data: + if line in outsecs: + break + val.append(line) + n, t = key.split() + tree[(n, t.strip('()'))] = " ".join(val) + def parse(self, src): + self._tree = {} + this = TCModuleDocFromTaggedSource + all_secs = this.text_secs|this.list_secs|this.opts_secs + cur_sec = "" # unspecified/unknown + for line in src: + if line in all_secs: + cur_sec = line + continue + if cur_sec in this.text_secs: + if cur_sec in self._tree: + self._tree[cur_sec] += " " + line + else: + self._tree[cur_sec] = line + if cur_sec in this.list_secs: + self._tree[cur_sec] = [ o.replace('*', " (preferred)") + for o in line.split(',') ] + if cur_sec in this.opts_secs: + if cur_sec not in self._tree: + self._tree[cur_sec] = {} + self._parse_opts(line, src, self._tree[cur_sec], all_secs) + +def _main(): + parser = optparse.OptionParser() + parser.add_option("-s", "--source", dest="use_source", + action="store_true", default=False, + help="analyse sources of the module") + parser.add_option("-b", "--binary", dest="use_binary", + action="store_true", default=False, + help="analyse module objects using tcmodinfo") + options, args = parser.parse_args() + + if not options.use_source and not options.use_binary: + print "either source or binary analysis mode must be selected" + sys.exit(1) + + if options.use_binary: + print "not yet supported!" + sys.exit() + if options.use_source: + Src = TaggedSource + + print "<!-- begin module list -->" + for mod in args: + try: + modname = os.path.basename(mod) + pre, name = modname.split('_') + root, ext = os.path.splitext(name) + doc = TCModuleDocFromTaggedSource(root, + TaggedSource(open(mod)), + modname) + print doc.to_xml() + except IOError: + pass # XXX + print "<!-- end module list -->" + +if __name__ == "__main__": + _main() + +# eof diff --git a/debian/transcode/transcode-1.1.7/docs/tech/Makefile.am b/debian/transcode/transcode-1.1.7/docs/tech/Makefile.am new file mode 100644 index 00000000..e0efc8ce --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/Makefile.am @@ -0,0 +1,22 @@ +# # Process this file with automake to produce Makefile.in. + +EXTRA_DIST = \ + $(docs_DATA) + +SUBDIRS = html + +docsdir = $(datadir)/doc/transcode/tech + +docs_DATA = \ + OPTIMIZERS \ + architecture.txt \ + avi_comments.txt \ + clone.txt \ + export-API.txt \ + filter-API.txt \ + ibp_support.txt \ + import-API.txt \ + libraries.txt \ + module-system-API.txt \ + filter_template.c + diff --git a/debian/transcode/transcode-1.1.7/docs/tech/Makefile.in b/debian/transcode/transcode-1.1.7/docs/tech/Makefile.in new file mode 100644 index 00000000..d59f6aa6 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/Makefile.in @@ -0,0 +1,727 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# # Process this file with automake to produce Makefile.in. + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/tech +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(docsdir)" +DATA = $(docs_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +A52_CFLAGS = @A52_CFLAGS@ +A52_LIBS = @A52_LIBS@ +ACLIB_LIBS = @ACLIB_LIBS@ +ACLOCAL = @ACLOCAL@ +ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVILIB_LIBS = @AVILIB_LIBS@ +AWK = @AWK@ +BSDAV_CFLAGS = @BSDAV_CFLAGS@ +BSDAV_LIBS = @BSDAV_LIBS@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXXCPP = @CXXCPP@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLDARWIN_CFLAGS = @DLDARWIN_CFLAGS@ +DLDARWIN_LIBS = @DLDARWIN_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FAAC_CFLAGS = @FAAC_CFLAGS@ +FAAC_LIBS = @FAAC_LIBS@ +FGREP = @FGREP@ +FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ +FREETYPE2_LIBS = @FREETYPE2_LIBS@ +GREP = @GREP@ +IBP_LIBS = @IBP_LIBS@ +ICONV_CFLAGS = @ICONV_CFLAGS@ +ICONV_LIBS = @ICONV_LIBS@ +IMAGEMAGICK_CFLAGS = @IMAGEMAGICK_CFLAGS@ +IMAGEMAGICK_LIBS = @IMAGEMAGICK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAME_CFLAGS = @LAME_CFLAGS@ +LAME_LIBS = @LAME_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBAVCODEC_CFLAGS = @LIBAVCODEC_CFLAGS@ +LIBAVCODEC_LIBS = @LIBAVCODEC_LIBS@ +LIBAVFORMAT_CFLAGS = @LIBAVFORMAT_CFLAGS@ +LIBAVFORMAT_LIBS = @LIBAVFORMAT_LIBS@ +LIBDVDREAD_CFLAGS = @LIBDVDREAD_CFLAGS@ +LIBDVDREAD_LIBS = @LIBDVDREAD_LIBS@ +LIBDV_CFLAGS = @LIBDV_CFLAGS@ +LIBDV_LIBS = @LIBDV_LIBS@ +LIBJPEG_CFLAGS = @LIBJPEG_CFLAGS@ +LIBJPEG_LIBS = @LIBJPEG_LIBS@ +LIBMPEG2CONVERT_CFLAGS = @LIBMPEG2CONVERT_CFLAGS@ +LIBMPEG2CONVERT_LIBS = @LIBMPEG2CONVERT_LIBS@ +LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@ +LIBMPEG2_LIBS = @LIBMPEG2_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBPOSTPROC_CFLAGS = @LIBPOSTPROC_CFLAGS@ +LIBPOSTPROC_LIBS = @LIBPOSTPROC_LIBS@ +LIBQUICKTIME_CFLAGS = @LIBQUICKTIME_CFLAGS@ +LIBQUICKTIME_LIBS = @LIBQUICKTIME_LIBS@ +LIBS = @LIBS@ +LIBTCAUDIO_LIBS = @LIBTCAUDIO_LIBS@ +LIBTCVIDEO_LIBS = @LIBTCVIDEO_LIBS@ +LIBTC_LIBS = @LIBTC_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ +LIBV4L2_LIBS = @LIBV4L2_LIBS@ +LIBV4LCONVERT_CFLAGS = @LIBV4LCONVERT_CFLAGS@ +LIBV4LCONVERT_LIBS = @LIBV4LCONVERT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LZO_CFLAGS = @LZO_CFLAGS@ +LZO_LIBS = @LZO_LIBS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MJPEGTOOLS_CFLAGS = @MJPEGTOOLS_CFLAGS@ +MJPEGTOOLS_LIBS = @MJPEGTOOLS_LIBS@ +MKDIR_P = @MKDIR_P@ +MOD_PATH = @MOD_PATH@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_AWK = @PATH_TO_AWK@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PROF_PATH = @PROF_PATH@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PVM3_CFLAGS = @PVM3_CFLAGS@ +PVM3_LIBS = @PVM3_LIBS@ +PVM3_PVMGS = @PVM3_PVMGS@ +RANLIB = @RANLIB@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIMD_FLAGS = @SIMD_FLAGS@ +STRIP = @STRIP@ +THEORA_CFLAGS = @THEORA_CFLAGS@ +THEORA_LIBS = @THEORA_LIBS@ +USE_DLDARWIN = @USE_DLDARWIN@ +VERSION = @VERSION@ +VORBIS_CFLAGS = @VORBIS_CFLAGS@ +VORBIS_LIBS = @VORBIS_LIBS@ +WAVLIB_LIBS = @WAVLIB_LIBS@ +X264_CFLAGS = @X264_CFLAGS@ +X264_LIBS = @X264_LIBS@ +XIO_CFLAGS = @XIO_CFLAGS@ +XIO_LIBS = @XIO_LIBS@ +XMKMF = @XMKMF@ +XVID_CFLAGS = @XVID_CFLAGS@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +a52_config = @a52_config@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +bsdav_config = @bsdav_config@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +faac_config = @faac_config@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +iconv_config = @iconv_config@ +imagemagick_config = @imagemagick_config@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +lame_config = @lame_config@ +libdir = @libdir@ +libdvdread_config = @libdvdread_config@ +libexecdir = @libexecdir@ +libjpeg_config = @libjpeg_config@ +libjpegmmx_config = @libjpegmmx_config@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lzo_config = @lzo_config@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pvm3_config = @pvm3_config@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xvid_config = @xvid_config@ +EXTRA_DIST = \ + $(docs_DATA) + +SUBDIRS = html +docsdir = $(datadir)/doc/transcode/tech +docs_DATA = \ + OPTIMIZERS \ + architecture.txt \ + avi_comments.txt \ + clone.txt \ + export-API.txt \ + filter-API.txt \ + ibp_support.txt \ + import-API.txt \ + libraries.txt \ + module-system-API.txt \ + filter_template.c + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tech/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tech/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-docsDATA: $(docs_DATA) + @$(NORMAL_INSTALL) + test -z "$(docsdir)" || $(MKDIR_P) "$(DESTDIR)$(docsdir)" + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docsdir)" || exit $$?; \ + done + +uninstall-docsDATA: + @$(NORMAL_UNINSTALL) + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(docsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(docsdir)" && rm -f $$files + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(docsdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-docsDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-docsDATA + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-docsDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am uninstall-docsDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/debian/transcode/transcode-1.1.7/docs/tech/OPTIMIZERS b/debian/transcode/transcode-1.1.7/docs/tech/OPTIMIZERS new file mode 100644 index 00000000..089c57bf --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/OPTIMIZERS @@ -0,0 +1,145 @@ +You want to improve you programming skills? +You cannot stand wasted CPU cycles? +You know how to write good/fast/efficient code? +Then this might be for you. + +Transcode has a lot of filter plugins which are not optimized. Filters +in transcode usually get a single video frame and do transformations on +that frame. The filter API is as simple as efficient it is explained in +great detail in /docs/filter-API.txt with sample code for a dummy +filter. + +All filters in transcode are in the filter/ directory and are mostly a +single C file. The variety of filters ranges from very simple filters +-- like filter_invert.c -- to complex stuff like filter_yuvdenoise.c. + +The audio filters are per definition less CPU intensive than the video +filters because they have to deal with less data. + +Here is an overview of filters which would be glad about a speedup +(lexicographical order) + +* filter_32detect.c + Is a interlace detection plugin. The detection algorithm could be + improved as well as the speed. + +* filter_aclip.c + Audio filter which generate audio clips from source + +* filter_astat.c + Audio filter which collects statistics about the audio stream. + +* filter_cshift.c + A chroma-lag shifter. It shifts the color components of the video to + the left or right. For RGB mode, the filter converts the data to YUV and + back again. + +* filter_dnr.c + A denoiser with no SIMD optimizations It uses a different algorithm + than the yuvdenoiser. + +* filter_fields.c + A very efficient and well written filter. + +* filter_invert.c + Simple filter which inverts the video. + +* filter_logo.c + renders a logo into the video stream. + +* filter_logoaway.c + removes a logo from the video stream. + +* filter_mask.c + Filter through a rectangular mask, everything outside the masked will + be blacked out. + +* filter_normalize.c + Normalizes the audio stream. The filter is based on mplayers volnorm + filter. + +* filter_resample.c + Resamples to audio stream doing conversions from eg. 48000Hz to + 44100Hz. The code is based on code from the sox application. + +* filter_smartdeinter.c + This filter provides a smart, motion-based deinterlacing + capability. In static picture areas, interlacing artifacts do + not appear, so data from both fields is used to provide full + detail. In moving areas, deinterlacing is performed. + + The filter was written for VirtualDub by Donald Graft. It produces + very good results. It was written with the RGB colorspace in mind. To + use it in transcode with YUV mode enabled a yuv2rgb and rgb2yuv + wrapper has been built around this filter. It would speed up a lot, if + rewritten for native YUV mode. There are probably other areas in this + filter which are a candidate for a speedup. + +* filter_smooth.c + Is a single-frame smoothing plugin. It is very CPU intensive + +* filter_testframe.c + It generates stream of testframes. Optimizing this filter is probably + not worth it but it is a good testbed for generating problematic + testframes. + +* filter_xsharpen.c + This filter performs a subtle but useful sharpening effect. The + result is a sharpening effect that not only avoids amplifying + noise, but also tends to reduce it. A welcome side effect is that + files processed with this filter tend to compress to smaller files. + + The filter was written for VirtualDub by Donald Graft. It was written + with the RGB colorspace in mind. To be useful with transcodes YUV + mode, the filter has been partially rewritten. + +* filter_yuvdenoise.c + This filter comes from the mjpeg tools and denoises the video by doing + a motion analyse. There are some SIMD parts in this filter but it could + be much faster. + +* filter_yuvmedian.c + This filter comes from the mjpeg tools and smoothes the video by + appying a median algorithm. It is CPU intensive. + + +/* ****************************************************************** */ + +Colorspaces +In transcode, the filter gets a char* which points to the raw video +data. Only two colorspaces are possible in transcode. + +* RGB +This is actually RGB24 meaning there are 24 bits or 3 Bytes available +for each pixel. It is a packed format, each component is 1 byte large. +The size of the image is Width*Height*3. +The memory layout is + + ___________________________________ +|__R__|__G__|__B__|__R__|__G__|__B__| .... + \_______________/ \_______________/ + Pixel(0,0) Pixel(1,0) + +* YUV (4:2:0) +This is actually YUV420P (I420) with 1+1/2 byte per pixel. It is a planar +format meaning first all Y data then Cb and then Cr. +The memory layout is + + __________________ ... ______ ... _____ +|__Y__|__Y__|__Y__| ... |__Cb_| ... |__Cr_| .... + \___/ \___/ \___/ + (0,0) (1,0) (2,0) + +There are Width*Height Y bytes, Width*Height/4 Cb bytes and +Width*Height/4 Cr bytes. The size of the image is Width*Height*3/2. + + +* YUV (4:2:2) +This is YUV422 8-bit planar, with 2 bytes per pixel. The layout is the +same as for YUV420P, but the Cb and Cr planes are twice as high (double +vertical resolution). + +Size of the image is 2*W*H. + +(c) 2003 Tilmann Bitterberg <[email protected]> +Modified: $Date: 2007-03-21 20:17:10 $ diff --git a/debian/transcode/transcode-1.1.7/docs/tech/architecture.txt b/debian/transcode/transcode-1.1.7/docs/tech/architecture.txt new file mode 100644 index 00000000..119c6222 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/architecture.txt @@ -0,0 +1,262 @@ +==================================================== +A video frame in transcode -- Birth, life and death. +==================================================== + +This article has information about the generic stages of a frame in +the transcode core. It may help you when you want to do a filter for +transcode or just understand how transcode works. + +Transcode is a threaded application. The different threads which are +of importance here are one decoder thread, one encoder thread and N +frame processing threads. N is a number the user can control via +the second argument of transcodes -u option. + +Each frame is put into a frame_list_t (/src/framebuffer.h) +structure. The frames are buffered internally in a double linked +list. The order of an frame in this list denotes the decoding (and +therefore) the encoding order (/src/video_buffer.c) + +The import module decompresses a frame from the input file into a +format the core of transcode likes. Just after the frame arrives in +the decoder, the status of the frame is set to FRAME_WAIT. +the first frame pre-processing takes place here. + +1) preprocess_vid_frame() (/src/frame_preprocess.c) + If the frame number is out-of-range as denoted by -c, the skipped + attribute is attached to the frame and it is ignored by further + processing routines. If the user has given --pre_clip, this will + happen here. + +After the very early clipping the filters get their draw with the tag: + +2) TC_PRE_S_PROCESS + The _S_ stands for synchronous. This means for the filter it will + recieve one frame after another in decoding order. The filter is + executed by the decoding thread and runs inside this thread + putting the decoder on halt for its execution time. + +When all filters are done with TC_PRE_S_PROCESS, the frame leaves +the decoder and the sychronous part and now waits to be picked up by +one of the frame processing threads (/src/frame_threads.c). One +frame processing thread does the following: It grabs one frame from +the frame_list and sets its state to FRAME_LOCK to make sure no +other frame processing thread will take this frame. Now the frame +enters the filters again: + +3) TC_PRE_M_PROCESS + The frame passes all the filters in the order specified on the + command line. The frame ordering is not garanteed any more; the + frames may arrive in the filter in any order. The filter must be + reentrant in some way. + +Next, the internal processing routines take place: + +4) process_vid_frame() (/src/video_trans.c) + The following operations are applied to the frame in the hereby + given order + -j (clip) -I (deinterlace) -X (fast scale up) -B (fast scale + down) -Z (slow zoom) -Y (clip) -r (scale half) -z (flip) + -l (mirror) -k (rgbswap) -K (make grayscale) -G (gamma) + -C (antialias) + short: "jIXBZYrzlkKGC" + +The frame wanders off into the filters a third time: + +5) TC_POST_M_PROCESS + (the same as for 3) applies here, too) + +The frame processing thread now sets the status of the frame to +FRAME_READY which means the frame can now be picked up by the +encoder. The encoder does again some processing and calls the +filters for the fourth and last time. + +6) TC_POST_S_PROCESS + (the same as for 2) applies here, too) + +After this a internal post processing takes place: + +7) postprocess_vid_frame() (/src/frame_postprocess.c) + Very last clipping if the user wants this via --post_clip + +Finally, the processed frame is made available to preview filters with +the tag: + +8) TC_PREVIEW + This tag is intended only for the "preview" and "pv" filters (and any + new ones created with the same purpose), and allows the final video + frame after clipping via --post_clip to be shown to the user. The + frame should not be modified here. + +When the frame has the skip flag set it will not be encoded, all +other frames will encoded and freed. + + +=================== +Graphical structure +=================== + + decode() + | + 1) preprocess() + | + 2) filters(TC_PRE_S_PROCESS) + | + _____________/ | \______________ + / | | | \ + / | | | \ + N F R A M E P R O C E S S I N G T H R E A D S + / . . . . + | . . . . + | + 3) filters(TC_PRE_M_PROCESS) + | + 4) process_vid_frame() + | + 5) filters(TC_POST_M_PROCESS) + | + | . . . . + \ . . . . + \ | | | / + \________|______ | ______|_______/ + \ | / + | + 6) filters(TC_POST_S_PROCESS) + | + 7) postprocess() + | + 8) filters(TC_PREVIEW) + | + encode() + + +============== +Cloning Frames +============== + +A filter can clone a frame. What this means and when it is possible +to do it will be the topic of this section. We only consider the +filters slots since non of the core video function does cloning. +"Cloning a frame" means a frame gets duplicated (cloned) and encoded +twice. Of course, if the cloned frame gets modified, a different +cloned frame gets encoded. As the reader might know, there are four +filter slots in transcode (excluding TC_PREVIEW, which is not +relevant to this discussion). I'll abbrevate them for easier reading: + + Slot | Abb. | Comment + ---------------------+------+---------------------------------- + TC_PRE_S_PROCESS | ES | synchronous pre processing + TC_PRE_M_PROCESS | EM | multithreaded pre processing + TC_POST_M_PROCESS | OM | multithreaded post processing + TC_POST_S_PROCESS | OS | synchronous post processing + +Every filter in every slot can clone frames but the filter may not +be called again with the cloned frame again. This depends on the +slot the filter lives in. Note that a filter can live in several +slots, for example, it can set the clone flag at ES time and catch +the cloned frame at OM time if it likes to do so. The filter must +keep in mind, that the cloned frame may have different geometry at +OM time because it may be rescaled or resampled. + +How to read the following table. The field "Slot" denotes the slot +the filter is in when it sets CLONE. The "Slots to pass" field tells +the slots the cloned frame will pass. + + Slot | Slots to pass | Slots NOT passed + ------+---------------+----------------- + ES | EM OM OS | ES + EM | EM OM OS | ES + OM | OS | ES EM OM + OS | OS | ES EM OM + +Example 1: +A filter in ES sets CLONE. The filter itself will not see the cloned +frame, but all filters in following slots will. + +Example 2: +A filter in EM sets CLONE. The filter _will_ see the cloned frame +again and all consecutive slots will get it again, too. + +Notes on Cloning. +To clone a frame, the filter adds TC_FRAME_IS_CLONED to the frame +pointer attributes. The frame ID never gets incremented to reflect +the count of cloned frames. If the filter decides to clone a frame, +it gets the frame back with the same ID but with TC_FRAME_WAS_CLONED +set, so its easy to distinguish between the frame with the original +ID and the duplicated ID. + + +=============== +Skipping Frames +=============== + +A filter can apply the skipped attribute to a frame which tells +transcode the frame is not to be encoded but dropped. Not all slots +can skip a frame; only slots where there is asynchronous A/V are +allowed to do so. + + Slot | slot in which the frame will be dropped + ------+---------------------------------------- + ES | Before EM + EM | After EM, before OM + OM | After OM, before OS + OS | After OS, before encode + +In other words, a skipped frame gets dropped right after the filter +has returned. + +================================= +Choosing the Slot for your Filter +================================= + +If you want to do a filter you may not be sure in which slot it +should be in. This section helps you in finding the correct slot for +your filter. + +Multithreaded vs. Synchronous + + You should try as hard as possible to put your filter into one of + the _M_ slots. An _M_ slot is usually faster than an _S_ slot. + Imagine the decoder waits for data to arrive from the harddrive and + the encoder is busy. Having your filter run in _M_ could use the + time while noone else is doing something to process the frame. + The _S_ stages are run directly by the decoder respectivly the + encoder and will block the de/encoder in doing their real work. + + However, its not always possible to put a filter in _M_. In _M_ + slots the filter may recieve the frames in any order. So if the + filter does depend on correct frame ordering it cannot be in _M_. + It may be possible to rewrite the filter in a way so that it does + not depend on the order of frames, check if it can be done for your + filter. + +PRE vs. POST + + This decision is merely driven by the fact what your filter + actually does and which kind of data you want to have. Its usually + true, that a POST filter has to deal with less data than a PRE + filter. Of course, this is only true, if the user scales down and + not up but this is what most users do. + + As an example, a deinterlace should always be run as a PRE filter + before the the up/down scaling of the frame happens in + transcode-core. A denoiser can be either run in PRE or in POST + because it just does not matter. One can assume that if the user + wants deinterlacing, in POST you can be pretty sure that you work + with progressive material. + +Always keep in mind that a filter can be in multiple slots. It +depends on the filter which tag it wants. + + +================================= +Multiple Instances of your Filter +================================= + +If your you want to be able to run XXX: see /filter/filter_32detect.c + +======================= +Linked Framebuffer List +======================= +// XXX: WRITEME + +// vim: tw=68 diff --git a/debian/transcode/transcode-1.1.7/docs/tech/avi_comments.txt b/debian/transcode/transcode-1.1.7/docs/tech/avi_comments.txt new file mode 100644 index 00000000..b8a2709b --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/avi_comments.txt @@ -0,0 +1,117 @@ +# INFO +# +# The AVI file format supports so-called tomb-stone data. It can be +# used to write annotations into the AVI file. +# +# You can use this file as the argument to the transcode option +# --avi_comments. When the file is read, empty lines and lines +# starting with '#' are ignored. +# The syntax is: "TAG<space>STRING". The order of the tags does not +# matter. If a tag has no string following it, it is ignored. That +# means, you can use this file as input and only fill out the fields +# you want. +# +# A very simple example is: +# ----------------snip---------------- +# INAM My 1st Birthday +# ISBJ My first steps! +# IART My proud family +# ----------------snip---------------- +# +# Keep in mind that there is no endless space in the AVI header, +# most likely its around 1000 bytes. + + +# INAM - Stores the title of the subject of the file, such as +# "Seattle from Above." +INAM + +# ISBJ - Describes the contents of the file, such as +# "Aerial view of Seattle." +ISBJ + +# Lists the artist of the original subject of the file; +# for example, "Michaelangelo." +IART + +# Records the copyright information for the file; for example, +# "Copyright Encyclopedia International 1991." If there are multiple +# copyrights, separate them by semicolon followed by a space. +ICOP + +# Lists the name of the person or organization that commissioned +# the subject of the file; for example "Pope Julian II." +ICMS + +# Provides general comments about the file or the subject +# of the file. If the comment is several sentences long, end each +# sentence with a period. Do not include new-line characters. +ICMT + +# Indicates where the subject of the file is archived +IARL + +# Creation date. Specifies the date the subject of the file was created. List +# dates in year-month-day format, padding one-digit months and days with +# a zero on the left; for example, "1553-05-03" for May 3, 1553. +ICRD + +# Describes whether an image has been cropped and, if so, how it +# was cropped; for example, "lower-right corner." +ICRP + +# Specifies the size of the original subject of the file; for +# example, "8.5 in h, 11 in w." +IDIM + +# Stores dots per inch setting of the digitizer used to +# produce the file, such as "300." +IDPI + +# Stores the of the engineer who worked on the file. If there are +# multiple engineers, separate the names by a semicolon and a blank; +# for example, "Smith, John; Adams, Joe." +IENG + +# Describes the original work, such as "landscape,", "portrait," +# "still liefe," etc. +IGNR + +# Provides a list of keywords that refer to the file or subject of the +# file. Separate multiple keywords with a semicolon and a blank; +# for example, "Seattle, aerial view; scenery." +IKEY + +# ILGT - Describes the changes in the lightness settings on the digitizer +# required to produce the file. Note that the format of this information +# depends on the hardware used. +ILGT + +# IMED - Decribes the original subject of the file, such as +# "computer image," "drawing," "lithograph," and so on. +IMED + +# IPLT - Specifies the number of colors requested when digitizing +# an image, such as "256." +IPLT + +# IPRD - Specifies the name of title the file was originally intended +# for, such as "Encyclopedia of Pacific Northwest Geography." +IPRD + +# ISHP - Identifies the change in sharpness for the digitizer +# required to produce the file (the format depends on the hardware used). +ISHP + +# ISRC - Identifies the name of the person or organization who +# suplied the original subject of the file; for example, "Try Research." +ISRC + +# ISRF - Identifies the original form of the material that was digitized, +# such as "slide," "paper," "map," and so on. This is not necessarily +# the same as IMED +ISRF + +# ITCH - Identifies the technician who digitized the subject file; +# for example, "Smith, John." +ITCH diff --git a/debian/transcode/transcode-1.1.7/docs/tech/clone.txt b/debian/transcode/transcode-1.1.7/docs/tech/clone.txt new file mode 100644 index 00000000..fa8ba9d1 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/clone.txt @@ -0,0 +1,101 @@ +---------------------------------------------------- +More accurate and up-to-date information is in /docs/architecture.txt +---------------------------------------------------- + +HOWTO clone frames + +I want to contribute a quick how-to how to use the new attribute +TC_FRAME_IS_CLONED. + +I have written two filters tc_video and tc_audio as an +demonstration example of the clone flag doing actually something +useful. These filters telecine a NTSC_FILM to NTSC_VIDEO +(23.9->29.9 fps) for video and audio. The input material must be +in 23.9 fps or weird results come out. Of course, you can use +ivtc+decimate to reverse the process and restore the original +video :) + +The best documentation is (as always) the source but let me +summarize my experience. + +A filter can clone (duplicate) a frame by setting the clone flag +to a frame by + ptr->attributes |= TC_FRAME_IS_CLONED; + +The encoder then deletes the flag and sets another flag named +TC_FRAME_WAS_CLONED. This is necessary for the filter because +frame IDs never get incremented. + +The filter has to live in the TC_POST_M_PROCESS or in the +TC_POST_S_PROCESS (synchronous) slot for this to work and its +quite a difference between TC_POST_M_PROCESS and TC_POST_S_PROCESS + +TC_POST_M_PROCESS: + The filter can set the the clone flag which causes the frame + to get encoded twice. The filter WON'T see the frame again, so + it cannot make modifications to the frame. This is what the + demo filter_clone uses. + + import -> .. -> filter (set_clone) -> encoder (frame)-, + / / + \______<<<________/ + +TC_POST_S_PROCESS: + The filter can set the clone flag which causes the frame to + get encoded and run through the filter again with the + was_cloned flag set. The filter can now check if this frame + already was cloned and not clone it again. This is very handy + when doing modulo insertions of frames. + + import -> .. -> filter (if !was_cloned -> encoder (frame)-, + / then set_clone) / + \_________<<<________________<<<____________/ + + +Definitions: +The frame ID never gets incremented to reflect the count of +cloned frames. If the filter decides to clone a frame, it gets the +frame back with the same ID but with TC_FRAME_WAS_CLONED set, so +its easy to distinguish between the frame with the original ID +and the duplicated ID. + +Limitations/Bugs: +- It is not possible to rerun the frame through the complete + filter pipeline. TC_POST_S_PROCESS is the most far away point + the frame can get back. + +- transcode's encoding frame counter is wrong, but the final + message, ie + [transcode] encoded 331 frames (0 dropped), clip length 11.04 s + is correct. + +Notes: +TC_FRAME_WAS_CLONED is introduced in this patch and is not +available in earlier transcode versions. + +Notes on the included filters: +The tc_video filter is pretty straight forward, doing a normal +telecine. Thanks to Thanassis Tsiodras who explained very +precise what telecine and what inverse telecine is. The code is +commented to show its work flow and workings. + +The tc_audio filter is a bit trickier, because the audio frames +have to get "repackaged". The audio import bufsize is tweaked to +read the frames in chunks suitable for 23.9 fps and the filter +then moves them back and forth to repackage them suitable for +29.9 fps. Considering this example. + + Import: 48000,16,2 @ 23.9 fps -> bufsize = 8008 + export: 48000,16,2 @ 29.9 fps -> bufsize = 6408 + + The filter does a conversion from 4 frames * 8008 to + 5 frames * 6408 + +No data is added or removed. + +I think this feature is now pretty usable so start hacking on +frame rate conversion filters :) + +Version 0.1 + +2002 Tilmann Bitterberg <[email protected]> diff --git a/debian/transcode/transcode-1.1.7/docs/tech/export-API.txt b/debian/transcode/transcode-1.1.7/docs/tech/export-API.txt new file mode 100644 index 00000000..bb74c9ff --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/export-API.txt @@ -0,0 +1,111 @@ + EXPORT MODULE WRITING HOWTO + --------------------------- +Changes: 2001-08-13: changed order of init/open + and stop/close calls. + +Some very short documentation on writing export modules for transcode + +include this file: +------------------ + +#include "transcode.h" //definition of vob_t and transfer_t structure + +data exchange structure for modules: +------------------------------------ + +typedef struct _vob_t { +//see transcode.h for details +} vob_t; + +typedef struct _transfer_t { + + int flag; // specifies context: TC_VIDEO for video + TC_AUDIO for audio + // or passes an integer to the module + + FILE *fd; // file handle for input stream + // NULL if import module performs reading + // unused in export module + + int size; // total amount of bytes in the buffer + + char *buffer; // pointer to data array with frame data + +} transfer_t; + + +single function interface: +-------------------------- + +int tc_export(int option, void *para1, void *para2); + +exit codes: all handled by transcode +TC_EXPORT_UNKNOWN option not supported +TC_EXPORT_OK no error, hopefully the default +TC_EXPORT_ERROR a critical error occured + +input parameter: +option contains the requested action id +para1/2 its actually meaning depends on option + +requested method: + +transcode calls the following routines in this order +for both export modules, i.e., first for video and then for the +audio context flag set. An export module should in general +be able to deal with audio and video and write it to +a common file. But the interface is more general. + +[1] +option=TC_EXPORT_NAME +para1=_transfer_t +para2=NULL +requested action: print out some general modules infos to stderr + and inherit transcode verbosity flag + (optional return capability flag) + + //>0.3.3 of transcode interpret flag returned + //to read module capabilities for sanity checks +status: optional + +[2] +option=TC_EXPORT_INIT +para1=_transfer_t +para2=_vob_t +requested action: initialize the encoder +status: required + + +[3] +option=TC_EXPORT_OPEN +para1=_transfer_t +para2=_vob_t +requested action: open outputfile +status: required + + +[4] +option=TC_EXPORT_ENCODE +para1=_transfer_t +para2=NULL +requested action: use this frame data to encode the next frame + in the sequence +status: required + + +[5] +option:TC_EXPORT_CLOSE +para1=_transfer_t +para2=NULL +requested action: close open files +status: required + + +[6] +option=TC_EXPORT_STOP +para1=_transfer_t +para2=NULL +requested action: stop the encoder, free memory and prepare for + module removal +status: required + diff --git a/debian/transcode/transcode-1.1.7/docs/tech/filter-API.txt b/debian/transcode/transcode-1.1.7/docs/tech/filter-API.txt new file mode 100644 index 00000000..002b6fdf --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/filter-API.txt @@ -0,0 +1,136 @@ + + // ================ + // API explanation: + // ================ + // + // (1) need more infos, than get pointer to transcode global + // information structure vob_t as defined in transcode.h. + // + // (2) 'tc_get_vob' and 'verbose' are exported by transcode. + // + // (3) filter is called first time with TC_FILTER_INIT flag set. + // + // (4) make sure to exit immediately if context (video/audio) or + // placement of call (pre/post) is not compatible with the filters + // intended purpose, since the filter is called 4 times per frame. + // + // (5) see framebuffer.h for a complete list of frame_list_t variables. + // + // (6) filter is last time with TC_FILTER_CLOSE flag set. This is important. + // The filter should be left in a state so that it could be called again + // with TC_FILTER_INIT. + // + // (Anytime) A filter may be called with TC_FILTER_GET_CONFIG to read the + // current config (optional) See /src/optstr.h for explanation + + + Notes and Hints about filter programming: + * Statics: All information and data you have calculated at INIT time and you + want to reuse later must be declared static (tables, flags, etc) + * The optstr_get function provides a convenient way for a developer to parse + human readable option strings. You are encouraged to use this function. + * If your filter shall be called multiple times during and encode session + (maybe first as a pre fileter and than as a post process filter) _you_ have + to take care to not overwrite your own data. A frame_list_t element has a + field called `instance' which will help you to keep your adress space clean. + See 32detect for an implementation. + * When TC_FILER_GET_CONFIG flag is set, the filter should return its + available parameters using the optstr_param and optstr_filter_desc funtions. + The last parameters of optstr_param are ranges with valid arguments for + this paramter. Sometimes it does not make sense to set the ranges, (e.g. if + the parameter "foo" is valid from 0 to "all frames in this file", so it is + considered good practice to use "oo" - the mathematical symbol for infinity + as the upper limit. + +Example filter code: + +#define MOD_NAME "filter_null.so" +#define MOD_VERSION "v0.1 (2003-10-12)" +#define MOD_CAP "demo filter plugin" +#define MOD_AUTHOR "Jon Doe <me@there>" + +#include "filter.h" +#include "optstr.h" + +int tc_filter(frame_list_t *ptr, char *options) +{ + + int pre, vid; + static int dummy_option = 0; + + static vob_t *vob=NULL; + + //---------------------------------- + // + // filter get config + // + //---------------------------------- + + if(ptr->tag & TC_FILTER_GET_CONFIG) { + if (options) { + optstr_filter_desc (MOD_NAME, MOP_CAP, MOD_VERSION, MOD_AUTHOR, "VARY", "1"); + + optstr_param (options, "dummy_options", // name + "This options does nothing", // comment + "%d", // format + "0", // default value + "0", // valid from + "255" // valid to + ); + } + return (0); + } + + //---------------------------------- + // + // filter init + // + //---------------------------------- + + if(ptr->tag & TC_FILTER_INIT) { + + if((vob = tc_get_vob())==NULL) return(-1); + + if (options) { + optstr_get (options, "dummy_option", "%d", &dummy_option); + } + + // filter init ok. + if(verbose) printf("[%s] %s %s\n", MOD_NAME, MOD_VERSION, MOD_CAP); + + return(0); + } + + //---------------------------------- + // + // filter close + // + //---------------------------------- + + + if(ptr->tag & TC_FILTER_CLOSE) { + // free memory, etc .. + return(0); + } + + //---------------------------------- + // + // filter frame routine + // + //---------------------------------- + + // tag variable indicates, if we are called before + // transcodes internal video/audo frame processing routines + // or after and determines video/audio context + + + if(ptr->tag & TC_PRE_M_PROCESS) pre=1; + if(ptr->tag & TC_POST_M_PROCESS) pre=0; + + if(ptr->tag & TC_VIDEO) vid=1; + if(ptr->tag & TC_AUDIO) vid=0; + + printf("[%s] frame [%06d] %s %16s call\n", MOD_NAME, ptr->id, (vid)?"(video)":"(audio)", (pre)?"pre-process filter":"post-process filter"); + + return(0); +} diff --git a/debian/transcode/transcode-1.1.7/docs/tech/filter_template.c b/debian/transcode/transcode-1.1.7/docs/tech/filter_template.c new file mode 100644 index 00000000..4f754a9f --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/filter_template.c @@ -0,0 +1,294 @@ +/* + * filter_template.c -- template code for NMS and back compatible + * transcode filters + * Written by Andrew Church <[email protected]> + * Templatized by Francesco Romani <fromani at gmail dot com> + * + * This file is part of transcode, a video stream processing tool. + * transcode is free software, distributable under the terms of the GNU + * General Public License (version 2 or later). See the file COPYING + * for details. + */ + +#define MOD_NAME "filter_template.so" +#define MOD_VERSION "v1.1.0 (2007-05-31)" +#define MOD_CAP "WRITE SUMMARY OF THE MODULE HERE" +#define MOD_AUTHOR "Andrew Church, Francesco Romani" + +#define MOD_FEATURES \ + TC_MODULE_FEATURE_FILTER|TC_MODULE_FEATURE_VIDEO|TC_MODULE_FEATURE_AUDIO +#define MOD_FLAGS \ + TC_MODULE_FLAG_RECONFIGURABLE + +#include "transcode.h" +#include "filter.h" +#include "libtc/libtc.h" +#include "libtc/optstr.h" +#include "libtc/tcmodule-plugin.h" + +static const char help_string[] = \ + "WRITE LONG AND DETAILED DESCRIPTION OF THE MODULE HERE"; + +/*************************************************************************/ + +typedef struct { + ; +} PrivateData; + +/*************************************************************************/ +/*************************************************************************/ + +/* Module interface routines and data. */ + +/*************************************************************************/ + +/** + * template_init: Initialize this instance of the module. See + * tcmodule-data.h for function details. + */ + +static int template_init(TCModuleInstance *self, uint32_t features) +{ + PrivateData *pd; + + TC_MODULE_SELF_CHECK(self, "init"); + TC_MODULE_INIT_CHECK(self, MOD_FEATURES, features); + + pd = tc_malloc(sizeof(PrivateData)); + if (!pd) { + tc_log_error(MOD_NAME, "init: out of memory!"); + return TC_ERROR; + } + self->userdata = pd; + + /* initialize data */ + + if (verbose) { + tc_log_info(MOD_NAME, "%s %s", MOD_VERSION, MOD_CAP); + } + return TC_OK; +} + +/*************************************************************************/ + +/** + * template_fini: Clean up after this instance of the module. See + * tcmodule-data.h for function details. + */ + +static int template_fini(TCModuleInstance *self) +{ + PrivateData *pd; + + TC_MODULE_SELF_CHECK(self, "fini"); + + pd = self->userdata; + + /* free data allocated in _init */ + + tc_free(self->userdata); + self->userdata = NULL; + return TC_OK; +} + +/*************************************************************************/ + +/** + * template_configure: Configure this instance of the module. See + * tcmodule-data.h for function details. + */ + +static int template_configure(TCModuleInstance *self, + const char *options, vob_t *vob) +{ + PrivateData *pd = NULL; + + TC_MODULE_SELF_CHECK(self, "configure"); + + pd = self->userdata; + + if (options) { + /* optstr_get() them */ + } + + /* handle other options */ + + return TC_OK; +} + +/*************************************************************************/ + +/** + * template_stop: Reset this instance of the module. See tcmodule-data.h + * for function details. + */ + +static int template_stop(TCModuleInstance *self) +{ + PrivateData *pd = NULL; + + TC_MODULE_SELF_CHECK(self, "stop"); + + pd = self->userdata; + + /* reverse all stuff done in _configure */ + + return TC_OK; +} + +/*************************************************************************/ + +/** + * template_inspect: Return the value of an option in this instance of + * the module. See tcmodule-data.h for function details. + */ + +static int template_inspect(TCModuleInstance *self, + const char *param, const char **value) +{ + PrivateData *pd = NULL; + + TC_MODULE_SELF_CHECK(self, "inspect"); + TC_MODULE_SELF_CHECK(param, "inspect"); + TC_MODULE_SELF_CHECK(value, "inspect"); + + pd = self->userdata; + + if (optstr_lookup(param, "help")) { + *value = help_string; + } + /* put back configurable options */ + + return TC_OK; +} + +/*************************************************************************/ + +/** + * template_filter_video: Perform the filter operation on the video + * stream. See tcmodule-data.h for function details. + */ + +static int template_filter_video(TCModuleInstance *self, vframe_list_t *frame) +{ + PrivateData *pd = NULL; + + TC_MODULE_SELF_CHECK(self, "filter_video"); + TC_MODULE_SELF_CHECK(frame, "filter_video"); + + pd = self->userdata; + + /* do the magic */ + + return TC_OK; +} + +/*************************************************************************/ + +/** + * template_filter_audio: Perform the filter operation on the audio + * stream. See tcmodule-data.h for function details. + */ + +static int template_filter_audio(TCModuleInstance *self, aframe_list_t *frame) +{ + PrivateData *pd = NULL; + + TC_MODULE_SELF_CHECK(self, "filter_audio"); + TC_MODULE_SELF_CHECK(frame, "filter_audio"); + + pd = self->userdata; + + /* do the magic */ + + return TC_OK; +} + +/*************************************************************************/ + +static const TCCodecID template_codecs_in[] = { + TC_CODEC_ERROR +}; +static const TCCodecID template_codecs_out[] = { + TC_CODEC_ERROR +}; +static const TCFormatID template_formats[] = { + TC_FORMAT_ERROR +}; + +static const TCModuleInfo template_info = { + .features = MOD_FEATURES, + .flags = MOD_FLAGS, + .name = MOD_NAME, + .version = MOD_VERSION, + .description = MOD_CAP, + .codecs_in = template_codecs_in, + .codecs_out = template_codecs_out, + .formats_in = template_formats, + .formats_out = template_formats +}; + +static const TCModuleClass template_class = { + .info = &template_info, + + .init = template_init, + .fini = template_fini, + .configure = template_configure, + .stop = template_stop, + .inspect = template_inspect, + + .filter_video = template_filter_video, + /* We have to handle the audio too! */ + .filter_audio = template_filter_audio, +}; + +extern const TCModuleClass *tc_plugin_setup(void) +{ + return &template_class; +} + +/*************************************************************************/ + +static int template_get_config(TCModuleInstance *self, char *options) +{ + PrivateData *pd = NULL; + + TC_MODULE_SELF_CHECK(self, "get_config"); + + pd = self->userdata; + + optstr_filter_desc(options, MOD_NAME, MOD_CAP, MOD_VERSION, + MOD_AUTHOR, "VAMEO", "1"); + + /* use optstr_param to do introspection */ + + return TC_OK; +} + +static int template_process(TCModuleInstance *self, + frame_list_t *frame) +{ + TC_MODULE_SELF_CHECK(self, "process"); + + /* choose what to do by frame->tag */ + + return TC_OK; +} + +/*************************************************************************/ + +/* Old-fashioned module interface. */ + +TC_FILTER_OLDINTERFACE(template) + +/*************************************************************************/ + +/* + * Local variables: + * c-file-style: "stroustrup" + * c-file-offsets: ((case-label . *) (statement-case-intro . *)) + * indent-tabs-mode: nil + * End: + * + * vim: expandtab shiftwidth=4: + */ diff --git a/debian/transcode/transcode-1.1.7/docs/tech/html/Makefile.am b/debian/transcode/transcode-1.1.7/docs/tech/html/Makefile.am new file mode 100644 index 00000000..e64cd267 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/html/Makefile.am @@ -0,0 +1,15 @@ +EXTRA_DIST = \ + $(docs_DATA) + +docsdir = \ + $(datadir)/doc/transcode/tech/html + +docs_DATA = \ + index.html \ + tc_basic.css \ + tc_frame_buffer.html \ + tc_input_rotation.html \ + tc_libraries.html \ + tc_logo.png + + diff --git a/debian/transcode/transcode-1.1.7/docs/tech/html/Makefile.in b/debian/transcode/transcode-1.1.7/docs/tech/html/Makefile.in new file mode 100644 index 00000000..bc597711 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/html/Makefile.in @@ -0,0 +1,520 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = docs/tech/html +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(docsdir)" +DATA = $(docs_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +A52_CFLAGS = @A52_CFLAGS@ +A52_LIBS = @A52_LIBS@ +ACLIB_LIBS = @ACLIB_LIBS@ +ACLOCAL = @ACLOCAL@ +ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVILIB_LIBS = @AVILIB_LIBS@ +AWK = @AWK@ +BSDAV_CFLAGS = @BSDAV_CFLAGS@ +BSDAV_LIBS = @BSDAV_LIBS@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXXCPP = @CXXCPP@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLDARWIN_CFLAGS = @DLDARWIN_CFLAGS@ +DLDARWIN_LIBS = @DLDARWIN_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FAAC_CFLAGS = @FAAC_CFLAGS@ +FAAC_LIBS = @FAAC_LIBS@ +FGREP = @FGREP@ +FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ +FREETYPE2_LIBS = @FREETYPE2_LIBS@ +GREP = @GREP@ +IBP_LIBS = @IBP_LIBS@ +ICONV_CFLAGS = @ICONV_CFLAGS@ +ICONV_LIBS = @ICONV_LIBS@ +IMAGEMAGICK_CFLAGS = @IMAGEMAGICK_CFLAGS@ +IMAGEMAGICK_LIBS = @IMAGEMAGICK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAME_CFLAGS = @LAME_CFLAGS@ +LAME_LIBS = @LAME_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBAVCODEC_CFLAGS = @LIBAVCODEC_CFLAGS@ +LIBAVCODEC_LIBS = @LIBAVCODEC_LIBS@ +LIBAVFORMAT_CFLAGS = @LIBAVFORMAT_CFLAGS@ +LIBAVFORMAT_LIBS = @LIBAVFORMAT_LIBS@ +LIBDVDREAD_CFLAGS = @LIBDVDREAD_CFLAGS@ +LIBDVDREAD_LIBS = @LIBDVDREAD_LIBS@ +LIBDV_CFLAGS = @LIBDV_CFLAGS@ +LIBDV_LIBS = @LIBDV_LIBS@ +LIBJPEG_CFLAGS = @LIBJPEG_CFLAGS@ +LIBJPEG_LIBS = @LIBJPEG_LIBS@ +LIBMPEG2CONVERT_CFLAGS = @LIBMPEG2CONVERT_CFLAGS@ +LIBMPEG2CONVERT_LIBS = @LIBMPEG2CONVERT_LIBS@ +LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@ +LIBMPEG2_LIBS = @LIBMPEG2_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBPOSTPROC_CFLAGS = @LIBPOSTPROC_CFLAGS@ +LIBPOSTPROC_LIBS = @LIBPOSTPROC_LIBS@ +LIBQUICKTIME_CFLAGS = @LIBQUICKTIME_CFLAGS@ +LIBQUICKTIME_LIBS = @LIBQUICKTIME_LIBS@ +LIBS = @LIBS@ +LIBTCAUDIO_LIBS = @LIBTCAUDIO_LIBS@ +LIBTCVIDEO_LIBS = @LIBTCVIDEO_LIBS@ +LIBTC_LIBS = @LIBTC_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ +LIBV4L2_LIBS = @LIBV4L2_LIBS@ +LIBV4LCONVERT_CFLAGS = @LIBV4LCONVERT_CFLAGS@ +LIBV4LCONVERT_LIBS = @LIBV4LCONVERT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LZO_CFLAGS = @LZO_CFLAGS@ +LZO_LIBS = @LZO_LIBS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MJPEGTOOLS_CFLAGS = @MJPEGTOOLS_CFLAGS@ +MJPEGTOOLS_LIBS = @MJPEGTOOLS_LIBS@ +MKDIR_P = @MKDIR_P@ +MOD_PATH = @MOD_PATH@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_AWK = @PATH_TO_AWK@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PROF_PATH = @PROF_PATH@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PVM3_CFLAGS = @PVM3_CFLAGS@ +PVM3_LIBS = @PVM3_LIBS@ +PVM3_PVMGS = @PVM3_PVMGS@ +RANLIB = @RANLIB@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIMD_FLAGS = @SIMD_FLAGS@ +STRIP = @STRIP@ +THEORA_CFLAGS = @THEORA_CFLAGS@ +THEORA_LIBS = @THEORA_LIBS@ +USE_DLDARWIN = @USE_DLDARWIN@ +VERSION = @VERSION@ +VORBIS_CFLAGS = @VORBIS_CFLAGS@ +VORBIS_LIBS = @VORBIS_LIBS@ +WAVLIB_LIBS = @WAVLIB_LIBS@ +X264_CFLAGS = @X264_CFLAGS@ +X264_LIBS = @X264_LIBS@ +XIO_CFLAGS = @XIO_CFLAGS@ +XIO_LIBS = @XIO_LIBS@ +XMKMF = @XMKMF@ +XVID_CFLAGS = @XVID_CFLAGS@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +a52_config = @a52_config@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +bsdav_config = @bsdav_config@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +faac_config = @faac_config@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +iconv_config = @iconv_config@ +imagemagick_config = @imagemagick_config@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +lame_config = @lame_config@ +libdir = @libdir@ +libdvdread_config = @libdvdread_config@ +libexecdir = @libexecdir@ +libjpeg_config = @libjpeg_config@ +libjpegmmx_config = @libjpegmmx_config@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lzo_config = @lzo_config@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pvm3_config = @pvm3_config@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xvid_config = @xvid_config@ +EXTRA_DIST = \ + $(docs_DATA) + +docsdir = \ + $(datadir)/doc/transcode/tech/html + +docs_DATA = \ + index.html \ + tc_basic.css \ + tc_frame_buffer.html \ + tc_input_rotation.html \ + tc_libraries.html \ + tc_logo.png + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tech/html/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tech/html/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-docsDATA: $(docs_DATA) + @$(NORMAL_INSTALL) + test -z "$(docsdir)" || $(MKDIR_P) "$(DESTDIR)$(docsdir)" + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docsdir)" || exit $$?; \ + done + +uninstall-docsDATA: + @$(NORMAL_UNINSTALL) + @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(docsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(docsdir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(docsdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-docsDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-docsDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-docsDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-docsDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/debian/transcode/transcode-1.1.7/docs/tech/html/index.html b/debian/transcode/transcode-1.1.7/docs/tech/html/index.html new file mode 100644 index 00000000..2b6b1e04 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/html/index.html @@ -0,0 +1,45 @@ +<?xml version="1.0"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content= + "HTML Tidy for Linux (vers 12 April 2005), see www.w3.org" /> + + <title>transcode internals</title> + <meta http-equiv="Content-Type" content= + "text/html; charset=us-ascii" /> + <meta name="Author" content="Francesco Romani" /> + <meta name="Keywords" content="transcode architecture internals" /> + <meta name="Generator" content="ViM 7.x" /> + <link rel="StyleSheet" href="tc_basic.css" type="text/css" media= + "screen" /> +</head> + +<body> + <div id="title" class="title"> + <h1>Transcode Internals</h1> + <img src="tc_logo.png" class="centered" alt="transcode logo" /> + </div> + + <div id="index"> + <h2>Contents</h2> + <table> + <tr> + <td><a href="tc_libraries.html">Internal libraries</a></td> + <td><p>Overview of private transcode libraries and main components.</p></td> + </tr> + <tr> + <td><a href="tc_input_rotation.html">Input Rotation</a></td> + <td><p>Design principles and notes about multiple-inputs handling.</p></td> + </tr> + <tr> + <td><a href="tc_frame_buffer.html">Frame Buffering</a></td> + <td><p>How internal frame (fifo) buffer works, and future directions.</p></td> + </tr> + </table> + </div> +</body> +</html> + diff --git a/debian/transcode/transcode-1.1.7/docs/tech/html/tc_basic.css b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_basic.css new file mode 100644 index 00000000..2f34a2b6 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_basic.css @@ -0,0 +1,96 @@ + +body { + margin: 20px; + padding: 10px; + font-size: 12px; + background-color: #CDB5CD; +} + +div { + margin: 10px; + padding: 5px; + background-color: #FFFFFF; +} + +h1 { + margin: 10px; + padding: 5px; + font-size: 26px; + text-align: center; + background-color: #E9E9E9; +} + +table { + align: center; +} + +h2 { + font-size: 22px; + font-weight: bold; + line-height: 22px; + margin: 5px 5px; + background-color: #E9E9E9; +} + +h3 { + font-size: 16px; + line-height: 14px; + background-color: #E9E9E9; +} + +h4 { + background-color: #E9E9E9; +} + +p { + margin: 10px; + padding: 5px; + background-color: #E9E9E9; +} + +pre { + font-size: 10px; + text-align: left; +} + +blockquote { + font-style: italic; +} + +.centered { + align: center; + text-align: center; +} + +.version { + font-size: 8px; + text-align: right; + margin: 5px 5px 5px 5px; + padding: 5px 0px 0px 5px; +} + +.note { + align: right; + text-align: right; +} + +.banner { + align: right; + text-align: right; +} + +.title { + margin: 10px 10px 10px 10px; + padding: 10px 5px 5px 10px; + font-size: 16px; + align: center; + text-align: center; +} + +.footer { + margin: 5px 5px 5px 5px; + padding: 5px 0px 0px 5px; + font-size: 8px; + align: center; + text-align: center; +} diff --git a/debian/transcode/transcode-1.1.7/docs/tech/html/tc_frame_buffer.html b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_frame_buffer.html new file mode 100644 index 00000000..93004576 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_frame_buffer.html @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content= + "HTML Tidy for Linux (vers 12 April 2005), see www.w3.org" /> + + <title>transcode internals</title> + <meta http-equiv="Content-Type" content= + "text/html; charset=us-ascii" /> + <meta name="Author" content="Francesco Romani" /> + <meta name="Keywords" content="transcode architecture internals" /> + <meta name="Generator" content="ViM 7.x" /> + <link rel="StyleSheet" href="tc_basic.css" type="text/css" media= + "screen" /> +</head> + +<body> + <div id="title" class="title"> + <h1>Transcode - TITLE OF PAGE</h1> + </div> + + <div id="summary"> + <h3>Summary</h3> + <p>a few lines (1-30) describing the page content and highlights</p> + </div> + + <hr /> + + <div id="index"> + <table> + <tr> + <td><a href="#foo">Paragraph 1</a></td> + <td><p>short description of paragraph 1</p></td> + </tr> + <tr> + <td><a href="#bar">Paragraph 2</a></td> + <td><p>short description of paragraph 2</p></td> + </tr> + <tr> + <td><a href="#baz">Paragraph N</a></td> + <td><p>short description of paragraph N</p></td> + </tr> + </table> + </div> + + <hr /> + + <div id="paragraph1"> + <a name="foo"><h4>Paragraph 1</h4></a> + <p>body of paragraph 1</p> + </div> + + <div id="paragraph2"> + <a name="bar"><h4>Paragraph 2</h4></a> + <p>body of paragraph 2</p> + </div> + + <div id="paragraphN"> + <a name="baz"><h4>Paragraph N</h4></a> + <p>body of paragraph N</p> + </div> +</body> +</html> diff --git a/debian/transcode/transcode-1.1.7/docs/tech/html/tc_input_rotation.html b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_input_rotation.html new file mode 100644 index 00000000..6b7adad5 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_input_rotation.html @@ -0,0 +1,124 @@ +<?xml version="1.0"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content= + "HTML Tidy for Linux (vers 12 April 2005), see www.w3.org" /> + + <title>transcode internals</title> + <meta http-equiv="Content-Type" content= + "text/html; charset=us-ascii" /> + <meta name="Author" content="Francesco Romani" /> + <meta name="Keywords" content="transcode architecture internals input rotation" /> + <meta name="Generator" content="ViM 7.x" /> + <link rel="StyleSheet" href="tc_basic.css" type="text/css" media= + "screen" /> +</head> + +<body> + <div id="title" class="title"> + <h1>Transcode - Input files rotation</h1> + </div> + + <div id="summary"> + <h3>Summary</h3> + <p> + This page describe the design principles and notes of new (as in 1.1.0 version) input rotation code. + Input rotation intelligently handles directory containing almost-homogeneous content, and perform + a smart contatenation of inputs (as opposed to "blind cat" previously performed on 1.0.x and former + releases). Application scenario and intended use of new code is described first; this lead to + explanation of design princples. Design notes and some implementation details are then provided. + </p> + </div> + + <hr /> + + <div id="index"> + <table> + <tr> + <td><a href="#usecases">Intended application cases</a></td> + <td><p>describe the common use-cases scenario(s) for multiple inputs</p></td> + </tr> + <tr> + <td><a href="#principles">Design principles</a></td> + <td><p>design principles of input rotation infrastructure</p></td> + </tr> + <tr> + <td><a href="#probing">Design notes - probing</a></td> + <td><p>design notes about probing and input rotation</p></td> + </tr> + <tr> + <td><a href="#decoding">Design notes - importing</a></td> + <td><p>design notes on how transcode (main program) deals with input rotation</p></td> + </tr> + </table> + </div> + + <hr /> + + <div id="usecases"> + <a name="usecases"><h4>Intended application cases</h4></a> + <p> + New input rotation code introduced in 1.1.0 is a revision from the ground up of how multiple input + should be handled in transcode. First and foremost, some basic usage cases are identified: + </p> + <ul> + <li> + <p> + Jack wants to make a video clip from a bunch of JPEG images. + </p> + </li> + <li> + <p> + Tyler records TV using transcode itself, and he wants now to transcode a group of low-compressed AVIs + into XviD. + </p> + </li> + <li> + <p> + Marla has some NUV files and she wants to join them and transcode it to DVD. + </p> + </li> + </li> + </ul> + <p> + Some key aspects emerge from examination of intended use cases: + </p> + <ul> + <li> + <p> + Each input file can contains one <strong>or more</strong> source frame(s). + </p> + </li> + <li> + <p> + Multiple input need to be intelligently merged before to import (think to AVI case). + </p> + </li> + <li> + <p> + New code should handle grafefully and efficiently <strong>a lot</strong> of input files. + </p> + </li> + + </ul> + </div> + + <div id="principles"> + <a name="principles"><h4>Design principles</h4></a> + <p>body of paragraph</p> + </div> + + <div id="probing"> + <a name="probing"><h4>Design notes - probing</h4></a> + <p>body of paragraph</p> + </div> + + <div id="decoding"> + <a name="decoding"><h4>Design notes - decoding</h4></a> + <p>body of paragraph</p> + </div> +</body> +</html> diff --git a/debian/transcode/transcode-1.1.7/docs/tech/html/tc_libraries.html b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_libraries.html new file mode 100644 index 00000000..c3318e13 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_libraries.html @@ -0,0 +1,256 @@ +<?xml version="1.0"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content= + "HTML Tidy for Linux (vers 12 April 2005), see www.w3.org" /> + + <title>transcode </title> + <meta http-equiv="Content-Type" content= + "text/html; charset=us-ascii" /> + <meta name="Author" content="Francesco Romani" /> + <meta name="Keywords" content="transcode architecture libraries" /> + <meta name="Generator" content="ViM 7.x" /> + <link rel="StyleSheet" href="tc_basic.css" type="text/css" media= + "screen" /> +</head> + +<body> + <div id="title" class="title"> + <h1>Transcode - overview of libraries</h1> + </div> + + <div id="summary"> + <h3>Summary</h3> + <p> + As part of 1.1.0 development cycle, an huge internal reorganization + effort has undergone. Reorganization isn't yet (as 1.1.0 released) + complete, and will involve every component in transcode codebase. + This document provide an overview of reorganized internal transcode + libraries, internal dependencies and purposes. + </p> + <h4>General Warning:</h4> + <p> + transcode libraries are quite carefully designed and implemented + in order to be independent, self contained as much as is possible, + but they <strong>are not</strong> intended to be easily separated by transcode + codebase and to be used in external projects. <strong>We don't care too + much about API/ABI stability yet, and we don't do testing on + this direction</strong>. Help us to improve code, or use it at own risk :) + </p> + </div> + + <hr /> + + <div id="index"> + <table> + <tr> + <td><a href="#aclib">aclib</a></td> + <td><p>low-level, optimized core routines.</p></td> + </tr> + <tr> + <td><a href="#avilib">avilib</a></td> + <td><p>simple AVI I/O support.</p></td> + </tr> + <tr> + <td><a href="#libtc">libtc</a></td> + <td><p>core utilities repository.</p></td> + </tr> + <tr> + <td><a href="#libtcaudio">libtcaudio</a></td> + <td><p>audio manipulation routines.</p></td> + </tr> + <tr> + <td><a href="#libtcvideo">libtcvideo</a></td> + <td><p>video manipulation routines.</p></td> + </tr> + </table> + </div> + + <hr /> + + <div id="aclib"> + <a name="aclib"><h4>aclib</h4></a> + <table> + <tr> + <td> + <h5>Dependencies:</h5> + </td> + <td> + <h5>Introduced in version:</h5> + </td> + </tr> + <tr> + <td> + <p>None</p> + </td> + <td> + <p>0.6.x or before</p> + </td> + </tr> + <tr> + <td> + <h5>Description:</h5> + <p> + provides accelerated, machine-dependent, utility functions like memcpy, colorspace conversion routines and so on. + </p> + </td> + </tr> + <tr> + <td> + <h5>Notes:</h5> + <ul> + <li> + <p><strong>"AC"</strong> stands originally for "<strong>A</strong>dvanced + <strong>C</strong> <strong>lib</strong>rary, + but at present day meaning of "AC" has been unspecified :) + </p> + </li> + <li> + <p>Rewritten completely during 1.1.0 cycle by Andrew Church.</p> + </li> + </ul> + </td> + </tr> + </table> + </div> + + <div id="avilib"> + <a name="avilib"><h4>avilib</h4></a> + <table> + <tr> + <td> + <h5>Dependencies:</h5> + </td> + <td> + <h5>Introduced in version:</h5> + </td> + </tr> + <tr> + <td> + <p>None</p> + </td> + <td> + <p>0.6.x or before</p> + </td> + </tr> + <tr> + <td> + <h5>Description:</h5> + <p> + provides I/O stream access to AVI files. Only multiplexing/demultiplexing, no encoding/decoding. + </p> + </td> + </tr> + <tr> + <td> + <h5>Notes:</h5> + <p>Scheduled for an heavy reorganization/refactoring during 1.2.0/1.3.0 cycle.</p> + </td> + </tr> + </table> + </div> + + <div id="libtc"> + <a name="libtc"><h4>libtc</h4></a> + <table> + <tr> + <td> + <h5>Dependencies:</h5> + </td> + <td> + <h5>Introduced in version:</h5> + </td> + </tr> + <tr> + <td> + <p>None</p> + </td> + <td> + <p>1.0.x</p> + </td> + </tr> + <tr> + <td> + <h5>Description:</h5> + <p> + utility/helpers collection. Provides memory allocation/disposal, string + manipulation, I/O helper functions. Also holds all low-level code + shared between modules. + </p> + </td> + </tr> + <tr> + <td> + <h5>Notes:</h5> + <p>Greatly enhanced during 1.1.0 cycle.</p> + </td> + </tr> + </table> + </div> + + <div id="libtcaudio"> + <a name="libtcaudio"><h4>libtcaudio</h4></a> + <table> + <tr> + <td> + <h5>Dependencies:</h5> + </td> + <td> + <h5>Introduced in version:</h5> + </td> + </tr> + <tr> + <td> + <p>None</p> + </td> + <td> + <p>1.1.x</p> + </td> + </tr> + <tr> + <td> + <h5>Description:</h5> + <p> + provides various audio manipulation functions used by transcode core and modules. + </p> + </td> + </tr> + </table> + </div> + + <div id="libtcvideo"> + <a name="libtcvideo"><h4>libtcvideo</h4></a> + <table> + <tr> + <td> + <h5>Dependencies:</h5> + </td> + <td> + <h5>Introduced in version:</h5> + </td> + </tr> + <tr> + <td> + <p><a href="#aclib">aclib</a></p> + </td> + <td> + <p>1.1.x</p> + </td> + </tr> + <tr> + <td> + <h5>Description:</h5> + <p> + provides various video manipulation functions used by transcode core and modules. + </p> + </td> + </tr> + </table> + </div> + + +</body> +</html> diff --git a/debian/transcode/transcode-1.1.7/docs/tech/html/tc_logo.png b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_logo.png Binary files differnew file mode 100644 index 00000000..c06396ce --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_logo.png diff --git a/debian/transcode/transcode-1.1.7/docs/tech/html/tc_template_page.html b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_template_page.html new file mode 100644 index 00000000..f29fd16f --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/html/tc_template_page.html @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content= + "HTML Tidy for Linux (vers 12 April 2005), see www.w3.org" /> + + <title>transcode technical documentation template page</title> + <meta http-equiv="Content-Type" content= + "text/html; charset=us-ascii" /> + <meta name="Author" content="Francesco Romani" /> + <meta name="Keywords" content="transcode architecture internals template page" /> + <meta name="Generator" content="ViM 7.x" /> + <link rel="StyleSheet" href="tc_basic.css" type="text/css" media= + "screen" /> +</head> + +<body> + <div id="title" class="title"> + <h1>Transcode - TITLE OF PAGE</h1> + </div> + + <div id="summary"> + <h3>Summary</h3> + <p>a few lines (1-30) describing the page content and highlights</p> + </div> + + <hr /> + + <div id="index"> + <table> + <tr> + <td><a href="#foo">Paragraph 1</a></td> + <td><p>short description of paragraph 1</p></td> + </tr> + <tr> + <td><a href="#bar">Paragraph 2</a></td> + <td><p>short description of paragraph 2</p></td> + </tr> + <tr> + <td><a href="#baz">Paragraph N</a></td> + <td><p>short description of paragraph N</p></td> + </tr> + </table> + </div> + + <hr /> + + <div id="paragraph1"> + <a name="foo"><h4>Paragraph 1</h4></a> + <p>body of paragraph 1</p> + </div> + + <div id="paragraph2"> + <a name="bar"><h4>Paragraph 2</h4></a> + <p>body of paragraph 2</p> + </div> + + <div id="paragraphN"> + <a name="baz"><h4>Paragraph N</h4></a> + <p>body of paragraph N</p> + </div> +</body> +</html> diff --git a/debian/transcode/transcode-1.1.7/docs/tech/ibp_support.txt b/debian/transcode/transcode-1.1.7/docs/tech/ibp_support.txt new file mode 100644 index 00000000..5eeae97c --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/ibp_support.txt @@ -0,0 +1,65 @@ +IBP support for transcode + +This is the web page about IBP and related tools +http://loci.cs.utk.edu/ + +Binary utilities can user lors URI for input and/or output file. + +If we want to access file in the IBP depot then URI in form + +lors://host:port/local_path/file?bs=number&duration=number&copies=number&threads=number&timeout=number&servers=number&size=number + +is used. User can also use the short form URI + +lors:///local_path/file + +When we want to read an IBP file, the local_path/file specifies local file +where is stored exNode with XML specification. When writing an IBP file the +local_path/file specifies local file where to store exNode with XML +specification of IBP depots used. + +The paremeters in the full form of URI mean as follows: + +host specification of L-Bone server location +port specification of L-Bone server port (default 6767) +bs specification of block-size for transfer in megabytes (default 10) +duration specification of allocation duration in seconds (default 3600s) +copies specification of number of copies (default 1) +threads specification of number of threads (concurrent TCP streams) (default 1) +timeout specification of timeout in seconds (default 100) +servers specification of number of unique IBP depots (default 1) +size specification of assumed file size in bytes (default 10MB) + +There are environment variables that can be used instead of URI parameters for +the LoRS layer. + +LBONE_SERVER specifies L-Bone server location +LBONE_PORT specifies L-Bone server port (default 6767) +LORS_BLOCKSIZE specifies block-size for transfer in megabytes (default 10) +LORS_DURATION specifies duration of allocation in seconds (default 3600s) +LORS_COPIES specifies number of copies (default 1) +LORS_THREADS specifies number of threads (concurrent TCP streams) (default 1) +LORS_TIMEOUT specifies timeout in seconds (default 100) +LORS_SERVERS specifies number of unique IBP depots (default 1) +LORS_SIZE specifies assumed file size in bytes (default 10MB) + +At least LBONE_SERVER or host must be set. + +Transcode program can be used in almost traditional way. If we want to store +the file to the IBP depot then URI in form lors:///local_path/file is used +instead of local file name. The environment variables should be set unless user +specifies URI in its full form. The same form of URI can be used for loading +the file from the IBP depot. Transcode can read and write ordinary local files +as well. The prefix lors:// is required for accessing IBP, otherwise local file +is used. + +For example: + +LBONE_SERVER=our.ibp.host; +transcode -i lors:///video.dv.xnd -P1 -N 0x1 -y raw -o lors:///temp1-remux.avi.xnd -E 44100,16,2 -J resample + +Transcode will use source file identified by serialized description of IBP +exNode stored in video.dv.xnd file on local disc in the current directory. The +L-Bone server location is taken from environment variable (referring to +our.ibp.host) and resulting serialized exNode XML description will be +stored in the current directory as temp1-remux.avi.xnd diff --git a/debian/transcode/transcode-1.1.7/docs/tech/import-API.txt b/debian/transcode/transcode-1.1.7/docs/tech/import-API.txt new file mode 100644 index 00000000..e3c7958e --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/import-API.txt @@ -0,0 +1,95 @@ + IMPORT MODULE WRITING HOWTO + --------------------------- + +Some very short documentation on writing import modules for transcode + +include this file: +------------------ + +#include "transcode.h" // definition of vob_t and transfer_t structures + + +data exchange structures for modules: +----------------------------------- + +typedef struct _vob_t { +// see transcode.h for details +} vob_t; + +typedef struct _transfer_t { + + int flag; // specifies context: TC_VIDEO for video + TC_AUDIO for audio + // or passes an integer to the module + + FILE *fd; // file handle for input stream + // NULL if import module performs reading + + int size; // total amount of bytes in the buffer + + char *buffer; // pointer to data array with frame data + char *buffer2; + + int attributes; + +} transfer_t; + + +single function interface: +-------------------------- + +int tc_import(int opt, void *para1, void *para2); + +exit codes: all handled by transcode +TC_IMPORT_UNKNOWN option not supported +TC_IMPORT_OK no error, hopefully the default +TC_IMPORT_ERROR a critical error occurred + +input parameter: +opt contains the requested action id +para1/2 its actually meaning depends on option + +requested method: + +transcode calls the following routines in this order +for both import modules, i.e., first for video and subsequent with the +audio context flag set. + +[1] +opt=TC_IMPORT_NAME +para1=_transfer_t +para2=NULL +requested action: print out some general module infos to stderr + and inherit transcode verbosity flag + (optional return capability flag) + + //>0.3.3 of transcode interpret flag returned + //to read module capabilities for sanity checks +status: optional + +[2] +opt=TC_IMPORT_OPEN +para1=_transfer_t +para2=_vob_t +requested action: return a file handle for reading from the pipe or + return NULL if import modules handles data read +status: required if following option is not implemented + +[3] +opt=TC_IMPORT_DECODE +para1=_transfer_t +para2=_vob_t +requested action: return a frame and the total amount of bytes read + + //>0.3.3 of transcode accepts import module returned amount + //of bytes in buffer. Module does the error checks anyway. + +status: required if previous option is not implemented + +[4] +opt=TC_IMPORT_CLOSE +para1=_transfer_t +para2=NULL +requested action: close streams or any open files, free memory and prepare + module removal +status: required diff --git a/debian/transcode/transcode-1.1.7/docs/tech/libraries.txt b/debian/transcode/transcode-1.1.7/docs/tech/libraries.txt new file mode 100644 index 00000000..5120754b --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/libraries.txt @@ -0,0 +1,63 @@ +TRANSCODE LIBRARIES ORGANIZATION +================================ + + +Summary +------- + +As part of 1.1.0 development cycle, an huge internal reorganization +effort has undergone. Reorganization isn't yet (as 1.1.0 released) +complete, and will involve every component in transcode codebase. +This document provide an overview of reorganized internal transcode +libraries, internal dependencies and purposes. + +GENERAL WARNING: +transcode libraries are quite carefully designed and implemented +in order to be independent, self contained as much as is possible, +but they *are not* intended to be easily separated by transcode +codebase and to be used in external projects. We don't care too +much about API/ABI stability yet, and we don't do testing on +this direction. Help us to improve code, or use it at own risk :) + + +Overview +-------- + +Library: aclib +Dependencies: None +Purpose: + provides accleretad, machine-dependent, utility functions + like memcpy, colorspace conversion routines and so on. + +Library: avilib +Dependencies: None +Purpose: + provide I/O stream access to AVI files. Only multiplexing/demultiplexing, + no encoding/decoding. + +Library: libtc +Dependencies: None +Purpose: + utility/helpers collection. Provides memory allocation/disposal, string + manipulation, I/O helper functions. Also holds all low-level code + shared between modules. + +Library: libtcinput +Dependencies: libtc +Purpose: + input layer abstraction. Provide access to stream data from heterogeneous + media through a common layer. That's `tccat' program foundation. + +Library: libtcaudio +Dependencies: None +Purpose: + provides various audio manipulation functions used by transcode core + and modules. + +Library: libtcvideo +Dependencies: aclib +Purpose: + provides various video manipulation functions used by transcode core + and modules. + + diff --git a/debian/transcode/transcode-1.1.7/docs/tech/module-system-API.txt b/debian/transcode/transcode-1.1.7/docs/tech/module-system-API.txt new file mode 100644 index 00000000..9d8ee9c3 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/tech/module-system-API.txt @@ -0,0 +1,660 @@ + + Module System for Transcode 1.1.0 and later + =========================================== + + Francesco Romani <[email protected]>, Andrew Church <[email protected]> + - + Revision 0.5, 17 August 2006 + + Index: +--------------------------------------------------------------------------- + 1. Introduction + 2. Overview + 3. Core API + 3.1. What you need to use NMS + 3.2. Example code + 3.3. The module factory + 3.4. Creating and destroying modules + 3.5. TCModule + 3.6. Using modules + 4. Plugin API + 4.1. What you need to use NMS (as a plugin writer) + 4.2. Example code + 4.3. Structure of a NMS plugin + 4.4. The registration process + 5. Plugin-Writing-HOWTO + 6. Internal structure + 6.1. Why the factory? + 6.2. About multithreading safeness + 6.3. On explicit reference counting + 6.4. Possibile API and ABI breakage + 6.5. init VS configure, fini VS stop + 6.6. A bit more about multiplexors and demultiplexors + 7. Final notes + 8. Appendix A: planned improvements in 1.2.0 and beyond + + + *** + + 1. Introduction +--------------------------------------------------------------------------- + +This document provides basic informations about the new module system +introduced in transcode 1.1.0. New system has API, ABI and even semantic +incompatible with old one. This breakage was needed to address the +recognized problems of old model. We (designers and coders) hope that new +one will serve better our purposes. Anyway, new model hasn't any claim of +generality or effectiveness outside transcode use cases: new API was +designed to be the simplest and cleanest thing that work in transcode +environment, and it doesn't provide any guarantee outside this field. +I (Francesco) have chosen to reimplement our module system from scratch, +despite the fact that well-known libraries such glib provides own ones, +to lower as much as possible the dependencies count for transcode itself. +Other developers agrees on the importance of this objective, where it +is feasible to do (of course we hardly reimplement from scratch some +Audio/Video codecs!). +Header and source code files was written trying to achieve readability +and clarity. Reader is encouraged to take a look at source code and, +especially, header files to get more informantions and more precise +documentation about the functions and data structures provided. + +Feel free to suggest improvements to API and/or to this documentation. +PLEASE! report inconsistencies between this documentation and header +and/or source code files. +Send suggestions on [email protected] mailing list. +Help us to make transcode better! + +Francesco's notes: +I'm not a native english speaker. Send me corrections about documentation +rather than code, and I will apply as soon as is possible :) + +Quick terminology overview: +- NMS: + Acronym of (transcode's) New Module System +- plugin: + a shared object (usually) on disk that implements one or more + 'module's. +- module: + the central abstract object handled by NMS. + A 'module' is a piece of C code that respect some given constraints + (see more) and is usable by transcode. Often a 'plugin' implements + only a 'module' (or a single 'module' is packed in a single 'plugin'), + but there isn't a such constraint, that's only the current practice. +- module instance: + a 'module' specify both the procedures and the data needed to be used + properly. We call 'instance' of a module the unshared, private portion + of such data. So, if a 'module' is created and runned multiple times, + each one has his private context and his private data, so everyone can + run independently from each other. Please note that 'modules' _always_ + have some common, shared (and unmodifiable) data. +- module class: + every module can belong to one or more 'module class'. A 'module class' + describe what a given module is supposed to do; this usually means + specifyng what functions and/or capabilities a given module supports + and/or provides. + + +2. Overview +--------------------------------------------------------------------------- + +The new module system (NMS) aims to provide a generic framework for +module handling through transcode, including external programs and +helper tools like tcmodinfo. +NMS aims also to incourage people writing of clean multi-instance plugins, +avoiding the 'single huge function syndrome' that affects most of filter +plugins as in transcode < 1.1.0. NMS provide a new and richer capabilities +support code, supporting a wider range of plugin classes: no more only +import (demux + decoding), filter and export (encoding + mux). + +NMS supports now five module classes, and is a fundamental part of module +revision process taken starting from transcode 1.1.0. +Please note that a given module CAN belong to more than one class (this +means that such module just implements more functions). + +- demuxing module: + take care of reading stream data and extract audio stream, + video stream and so on +- decoding module: + decodes A/V frame to raw data +- filter module: + apply some transformation to A/V raw data +- encoding module: + encodes raw data in a user-defined format +- muxing module: + packs encoded data in a user-defined container + +More module classes (notably an input and/or output abstraction) +can be added in future releases, but class count should not increase +too much in NMS lifespan. + +Exact specification and documentation about such extended module classes +are partially beyond the purpose of this document; they are further +examined only for the parts related to NMS. + +NMS has quite different usage from old module system. +A piece of code that want to use a transcode plugin through NMS should +roughly: + +- start a module factory: this will initialize the subsystem; the + most important parameter is the module search path, that is no longer + hardcoded into code. +- ask to a module factory to create a given module. This will trasparently + load a plugin if needed, resolve needed symbols, initialize it and + finally pass back as a reference to client code. In short, module factory + does all black magic for you ;) +- use the module exposed functions as you wish. + Above module classes requires roughly the implementation of one module + for each one plus some mandatory support methods. For example, filter + class requires the implementation of 'filter_video' or 'filter_audio' + (or both) operation, (WARNING: as in transcode 1.1.0, this is not + enforced, yet) but a given module can implement more than one class + simply providing more methods implementation. + As an user of a module, just request the operation and check + the returned code :) + Of course, you can also use the new capabilities system to peek what + a loaded module is supposed to do. More on this topic later. +- when you're set, ask to factory to unload the module. You CAN'T just + free your module manually, since factory needs again to do some black + magic to handle things nicely. +- eventually shutdown the module factory itself. Do this only when + you have released all modules instances, or factory will complain loudly. + +NMS Core API (from module *user* viewpoint) will be covered with greater +detail into section 3 of this document. +For interested people, section 6 of this document contains design notes +and some documentation about the NMS internals. + +From module writer viewpoint, some there are major changes too. +First af all, all new-style modules have a unified entry point with +following signature (defined in tcmodule-plugin.h): + +const TCModuleClass *tc_plugin_setup(void); + +If NMS code can't find such symbol defined in your shared object, +it assumes that given SO *IS NOT* a valid NMS module, and it will go +ahead. +NMS entry point is no longer the main entry point for a given module, +but it's simply the entry point for whole registration process. +Real execution of module code will happen through some function pointers +that each module should register into core as initialization stage. +This registration happen, as well as other needed intialization code, +into new entry point. + +So, NMS requires that each module provides (roughly) a single function +for each implemented operation. Formerly, this was already a good module +writing pratice, but was not required by former old module system which +used a single function interface to do everything. + +NMS has also explicit support for module instance data. Each module +descriptor provide an opaque pointer to module-defined data, which is +opaque to core and can be used freely by module code. + +To summarize, a NMS-compliant module will + +- provide a separate function for each implemented operation, plus + a few function for support routines (initialization, shutdown, + configuration, stop, introspection) which must conform to a + give signature. + Each method will handle explicitely private (instance) data. +- provide a single uniform entry point for registration process. + core uses module specific methods via some function pointers, + so real code can be made static and private; module itself + should give back to core valid function pointers to his methods + as part of registration process +- register his capabilities in the exported module initialziation + hook. This means registration of methods but also notification + of module capabilities. A module can do arbitrary operations + other than required ones, even this should never be needed. + +NMS Plugin API (from module *writer* viewpoint) will be covered with greater +detail into section 3 of this document. +Section 4 of this document will provide some hints for a module writer. + + +3. Core API +--------------------------------------------------------------------------- + +The reader of this section is encouraged to take a look of documentation +of functions and data structures embedded into header files of NMS to +become confident with the notions exposed here. +Interesting files: + + libtc/tcmodule-core.h + libtc/tcmodule-data.h + libtc/tcmodule-info.h + +This section will not explore the semantic and the meaning of parameters +of core API functions, interested reader should be better served just +reading comments on interesting header files. +This section will instead explore the semantic of NMS core API and will +serve to basic usage tutorial. + + +3.1. What you need to use NMS +----------------------------- + +To use transcode's NMS, you need to include some header files on your code: + +#include "tcmodule-core.h" +#include "tcmodule-info.h" + +Build system for transcode take care to setup the right include search path. +Otherwise, you should give explictely to gcc (code isn't tested on +different compilers due to lack of software): + +gcc $YOUR_OPTS -I/path/to/tc/src/libtc/ ... + +You also need to link libtc. + +Once you have set the gritty details, you are read to start. + + +3.2. Example code +----------------- + +Take a look into tools/tcmodinfo to get maybe the simplest way to use +the NMS. tcmodinfo will just load a user-requested module and will print +out it's capabilities. Future releases of this document will perhaps add +more (pseudo)code examples. + +You can also want to look NMS bundled test (in testsuite/ and or libtc/, in +latter case test is embedded, as a comment in tcmodule.c) to get some more +examples. + + +3.3. The module factory +----------------------- + +A key element in NMS is the module factory. From the point of view +of a module user, a factory is represented by a totally opaque handler +enterely managed by tcmodule code. +The factory take care of loading plugins (the real shared object holding +plugin code) if needed, unloading them if no longer need, accounting, +and create instances. In short, factory does all the dirty work for you. + +In order to obtain, and release, a factory handler, you must use the +tc_new_module_factory and tc_del_module_factory functions. +Arguments and syntax of this functions is documented on tcmodule-core.h +header file. + +Client code can theorically request an arbitrary number of factories, +but each factory can handle ONLY modules created by herself. To +request a factory to do an operation on a module NOT built by herself +will cause a undefined behaviour (expect crash or some other weird things). +In a just few words: DON'T DO THIS! :) +In the common case, "one factory will be enough for everyone". + + +3.4. Creating and destroying modules +------------------------------------ + +It's really simple. Just ask to your factory to create a brand new module +belonging to a given class and from a given name. +When the module is built, you must configure it passing some options +packed in a string using the configure function (tc_module_configure). +some modules can be reconfigured multiple times, some other can +be reconfigured just the first time; This behaviour is fully +module-(class-)dependent. +Options are specific to a module, and there is no way to describe they +in a general fashion. +Since a module can be (or must be, for multiplexors) reconfigured +a run time, the need for inspecting module settings arise. +NMS provide an explicit operation for inquiry the actual settings of +a module, the 'inspect' operation. Client code can request to know +the status each and/or all module configurable parameters using this +operation. + +Please note that NMS *NOT* knows _before_ to loading what every module +is capable to do, nor the class of a given module. Everything +is detected after the loading using new capabilities code. +This means that you can ask to load a given module without to already +know it's class, nor you ask to load all modules of a given class. +Both above requests will lead to an error. +As in transcode 1.1.0, module class and module name are in facts +tightly bound and can't be handled separately. + +Known module classes as in transcode 1.1.0: + + demultiplex, + decode, + filter, + encode, + multiplex + +Destroying a module is really simple. Just invoke the destruction +function using your factory and the module, and the latter will be +destroyed. But remember that real originating plugin will be +unloaded only with all spawned modules are destroyed. +In facts, destruction of last module triggers plugin +unloading. The factory can detect at any time if a given module is +the last one or not. You should'nt worry about this. + +Take care to check the return code of tc_del_module, since it +triggers plugin unloading it can fail. Some debug messages are +sent to (real) users using tc_log*(). +Future releases perhaps will add some detailed error codes than +actual ones, which just carries a "failed/succeeded" information. + + +3.5. TCModule +------------- + +The reader might also take a look at tcmodule-data.h. +The `TCModule' data structure represent a module instance. +It is composed by two main components: the module class data, +comprehending function pointers to real module and capabilities +information, and the module instance section, private for each module. + +You can see the declarations in tcmodule-data.h for more details. +Most of details are handled by NMS code, so you normally don't need +to access neither module class or module private instance data. +In facts, instance data should be accessed only by module code, and +should be opaque both for NMS and for client code. + +It's safe to access (in read-only) the class data, and this is also +needed to effectively use a module, since function pointers to module +methods are embedded in class data. For this purpose a few commodities +macro are provided. Direct access is also possible. +The only 'critical' field in a class structure is the 'id' one. +This field is used internally by NMS (see code) and should not be even +considered by client code. + +You can notice that both module instance data and module class data +have a 'id' field. These two fields are in fact independent, and both +must be considered opaque by client code. + + +3.6. Using modules +------------------ + +Usage of a module, if we want to ignore the internals and the gory details, +should be really easy and straightforwarded. +For each possibile module operation, there is a convenience (inline) function +for easier usage and to avoid clumsy module->operation(module, ... ) syntax. + +The list of supported operations follows: + +tc_module_configure(module, options, vob) + (re)configure a module, changing it's internal settings; + modules *requires* to be configure()d _explicitely_ + before the usage. + +tc_module_stop(module) + stop a module and prepare it for a new safe (re)configuration. + this means flushing all buffers, closing files and so on. + +tc_module_inspect(module, param, *value) + query about the actual value of a given parameter. + +tc_module_encode_video(module, inframe, outframe) +tc_module_encode_audio(module, inframe, outframe) + encode a give video or audio frame and store data in another one. + +tc_module_decode_video(module, inframe, outframe) +tc_module_decode_audio(module, inframe, outframe) + decode a give video or audio frame and store data in another one. + +tc_module_filter_video(module, vframe) +tc_module_filter_audio(module, aframe) + apply a filter in place to a video or audio frame. + +tc_module_multiplex(module, vframe, aframe) + pack given encoded audio and video frame (both at once or just one) + +tc_module_demultiplex(module, vframe, aframe) + unpack encoded audio and video frame (both or just one) + +Just use any of above functions in your code. Do not forget to check the +return code. In the common case, return value of -1 means 'error', +and 0 means 'succesfull'. + +A few special parameters exists for 'inspect': + +for 'inspect': +* "all" option will force the module to return to calling environment + a representation of /all/ internal parameters, packed in a single + string. This string will be packed in the same format accepted by + module option string +* "help" option will force the module to return a textual, human readable + overview of the module, along with an explanation of name, value range + and meaning of accepted parameters. Special parameters will not be + present in this description. + + +4. Plugin API +--------------------------------------------------------------------------- + +The reader of this section is encouraged to take a look of documentation +of functions and data structures embedded into header files of NMS to +become familiar with the notions exposed here. +Interesting files: + + libtc/tcmodule-plugin.h + libtc/tcmodule-data.h + libtc/tcmodule-info.h + + +4.1. What you need to use NMS (as a plugin writer) +-------------------------------------------------- + +Simply include the header file in your plugin source file (or in your main +plugin source file): + +#include "tcmodule-plugin.h" + +and you have access to all data structures, constants and functions +(in fact just one :) ) that you need. Of course, you must design your +plugin accordingly to NMS structure (covered later on this section and in +the following section). +Of course, your plugin must be compiled as shared object. + + +4.2. Example code +----------------- + +You can take a look to filter/filter_null.c multiplex/multiplex_null.c +or encode/encode_null.c. + +Future releases of this document will perhaps add more (pseudo)code +examples. + + +4.3. Structure of a NMS plugin +------------------------------ + +There is quite a few strict constraints about the structure of a NMS +plugin. Obviously, due to multiple-function-pointers structure, you +must provide a separate function for each method implemented. +This is intended to avoid the Single Huge Function Syndrome sometimes +found on old-style filters ;) + +Is recommended to keep the biggest number of symbols on your plugin +as private (just use 'static' qualifier for functions and reduce +the usage of global variables, better to avoid it totally if it's +feasible -and usually it's-). +NMS has explicit support for module private data, so you should not +need to use static variables on your plugin. +Of course you can still use these, but _you_ must take care of +multi-instances problems and so on. + +The only exception for above rule can be the capabilities data for +a plugin. This data is used only during the registration process +(see below for some other detail about this process), but is *copied* +into core in order to avoid dirty tricks. So you can just provide +a reference to some private variables. This is the preferred way +since it seems the most simple one. + +To see a simple skeleton of a NMS plugin, take a look at +filter/filter_null.c or multiplex/multiplex_null.c or +encode/encode_null.c + + +4.4. The registration process +----------------------------- + +The plugin registration process consist simply into a invocation +of tc_plugin_setup entry point. This function will return a +TCModuleClass filled by plugin with description informations +and with valid function pointers to operations implemented +by plugin. + +Core will do some sanity checks on this descriptor returned +by plugin, and use the given informations to fill it's +own descriptor. Core WILL NOT change the informations provided +by a plugin, unless they are detected as incorrect. In this +case an error will be emitted (via tc_log*()) and more. +Core will also setup sensible fallback values for all informations, +or operations, not provided by a given plugin. + +Once a plugin is registered, there is no way to change registered +data, nor to re-register or de-register itself. + + +4.5. The plugin entry point +--------------------------- + +(WRITEME) + +4.6. Intialization and finalization of a module +------------------------------------------------ + +There is a couple of mandatory operations that a module must implement +still not covered in this document. Those operations are the 'init' +intialization operation and the 'fini' finalization operation. +Those operations WILL NOT be exported to client code, and are used +*only* trasparently by NMS code. +'init' operation take care of initializing the part of a module that +isn't changed by configure() operation and sets defaults. +'fini' operation must cleanup everything and release *all* resources +acquired by a module. Is the 'one and true' finalization routine, the +last that is executed during the module life. + + +4.7. Differences between module classes +--------------------------------------- + +(WRITEME) + + +5. Plugin-Writing-HOWTO +--------------------------------------------------------------------------- + +FIXME: WRITEME + + +6. Internal structure +--------------------------------------------------------------------------- + +This section holds sparse design notes about NMS current implementation. +The reader is encouraged to take a look to source files (libtc/tcmodule*.c) +to see the gory details. + + +6.1. Why the factory? +--------------------- + +The factory descriptor was make explicite for generality and extendability. +Having explicit factory descriptor make it possible to use more than +one factory at time, even if this will be unlikely useful. +There are some use cases for this on actual codebase at time of writing. +Anyway, it's trivial to force code to use just one factory using something +like: + +/* some_tc_header.h */ + +extern TCModuleFactory main_factory; + +#define tc_load_module(type, name) \ + tc_new_module(main_factory, type, name) +#define tc_unload_module(type, name) \ + tc_del_module(main_factory, mod) + + +6.2. About multithreading safeness +---------------------------------- + +Multiple thread CANNOT execute operations concurrently on the same factory +descriptor. +It is safe to execute concurrently operations if each module operate on +it's own descriptor. This means different threads can safely use different +TCModule, but using one TCModule, or one TCFactory by two or more threads +won't work. + + +6.3. On explicit reference counting +----------------------------------- + +On linux systems, dlopen() manpage reports that dl code can trasparently +handle reference count of dlopen()ed modules, so there is no strict need +of explictely do reference counting and avoid multiple loading on NMS. +I don't know yet if this behaviour is portable. +Moreover, I don't still want to drop explicit reference count on NMS, +since it not complicate things too much and it can helps on accounting +and debug purposes. This can change in future releases, but this should +be a change totally transparent to client code. + + +6.4. Possibile API and ABI breakage +----------------------------------- + +Needs a careful review and a bit of discussion on transcode-devel. + + +6.5. init VS configure, fini VS stop +------------------------------------ + +This section will higlight and summarize the differences between the +init/configure and the stop/fini couple. + +init: ALWAYS executed BEFORE 'configure'. + Runs one and only one time during the life of a module. +configure: ALWAYS executed AFTER 'init'. + Can run one or more times during the life of a module. + Modules REQUIRES that configure is runned at least once. + It is possible that invokations of configures after the first + will be ignored by a given module. + +fini: ALWAYS executed AFTER 'stop'. + Runs one and only one time during the life of a module. + it is possible (and usually happens) that fini invokes 'stop'. +stop: ALWAYS executed BEFORE 'fini'. + Can run zero or more times during the life of a module. + Modules REQUIRES that stop is runned before to be re-configure()d. + It is possible that this function will do not anything useful. + + +7. Final notes +--------------------------------------------------------------------------- + +send any comment to <[email protected]>. Thanks for reading this. +Corrections about english are welcome. + + +8. Appendix A: planned improvements in 1.2.0 and beyond +--------------------------------------------------------------------------- +(without a particular order) + +1. Generic init/fini functions. Most of them are boilerplate code and + there is no need to replicate them every time. +2. New filter operations with explicit destination argument: + + int (*process_video)(TCModuleInstance self, vframe_list_t *src, vframe_list_t *dst); + int (*process_audio)(TCModuleInstance self, aframe_list_t *src, aframe_list_t *dst); + +3. Add open/close functions to improve (de)multiplexors: + + int (*open)(TCModuleInstance self, const char *name, uint32_t flags); + int (*close)(TCModuleInstance self); + +4. Needs careful planning: subdivide modules in separate classes to + reduce function bloat. +5. Make modules arguments explicit and handled by core: that semplifies + modules, reduce duplication, adds sanity checks for free. +6. Related to above: overhaul or get rid of optstr* stuff. +7. More docs, more sample code. +8. Make explicit preferred (native?) colorspace for modules (the one for which + the module is designed about, so it provide bests results). +9. Improve (make explicit?) flush API in muxers. +10. better muxing API (using chunks?). + +# EOF diff --git a/debian/transcode/transcode-1.1.7/docs/template.cfg.txt b/debian/transcode/transcode-1.1.7/docs/template.cfg.txt new file mode 100644 index 00000000..1e0144a6 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/docs/template.cfg.txt @@ -0,0 +1,99 @@ +#--------------------------------------------------- +#-- Description of encoder/multiplexer-parameters -- +#--------------------------------------------------- + +0. Legend +========= +Type: B = boolean + I = integer + D = double + S = string + +most default values depends on what using as base-profile +-> this will marked with "!base-prof." + + +1. Encoder Prameters +==================== + +Param-Name Type Description default +----------------------------------------------------------------------------- +verbose B switch verbosity mode on (=1) or off (=0) [0] +gop_size I total number of frames for one GOP !base-prof. +p_distance I distance between P-frames [3] +aspect I picture aspect-ratio [like src] + 1:1 (=1), 4:3 (=2|8|12), 16:9 (=3), + 2.21:1 (=4) +frame_rate D video frame-rate (23.0-30.0) [25.0] + -> use "25.0" for PAL, 29.97 for NTSC +fixed_vbv_delay B calculation of vbv-delay on (=1) or of(=0) !base-prof. +vbv_buffer_size I sizeof vbv-Buffer in 16kB-Units (23-112) !base-prof. +prog_seq B interlaced (=0) or progressive (=1) seq. !base-prof. +prog_frame B interlaced (=0) or progressive (=1) frame !base-prof. +fieldpic B frame (=0) or field (=1) pictures !base-prof. +topfirst B top field 1st. (=1) or 2nd. (=0), valid + only, if "fielpic (=1) +repeatfirst B repeat 1st. field (=1), otherwise (=0) +use_seq_end B generate sequence end-code on encoder-exit !base-prof. +use_seq_dspext B generate sequence display-extension header !base-prof. +use_pic_dspext B generate picture display-extension header !base-prof. +cbr B encode with constant (=1) or variable (=0) !base-prof. + bitrate -> in CBR-Mode "cbr_bitrate" will + be used -> in VBR-Mode "max_/min_/avg_ + bitrate" may be used (if > 0). +cbr_bitrate D BBR-Mode bitrate -> only valid with + "cbr" (=1), (500000.0 - 6000000.0) bits/s !base-prof. +quant_value I quanitzer value for VBR-Mode -> only valid !base-prof. + with "cbr (=0), range (1-31), + best/biggest (=1) worst/smallest (=31) +max_bitrate D (0|500000.0-6000000.0) -> if 0, max. + bitrate will not controlled +min_bitrate D (0|500000.0-6000000.0) -> if 0, min + bitrate will not controlled +avg_bitrate D (0|500000.0-6000000.0) -> if 0, no + +qscale_type B mpeg1 and low bitrate-mpeg2 (=0), !base-prof. + otherwise (=1) +dc_prec I precision of dc-coeffizient !base-prof. + 8-Bit (=0) 9-Bit (=1) 10-Bit (=2) +iqname S file-name for external intra-quantizer [none] + matrix (8x8 values) +niqname S file-name for external non intra-quantizer [none] + matrix (8x8 values) +denoise B high-frequency denoiser off (=0), on (=1) [0] + +2. Encoder + Muxer Prameters +============================ + +Param-Name Type Description default +----------------------------------------------------------------------------- +max_file_size I max. file size in MByte for output-files [0] + after this limit is reached, a new fileset + (<outfile-name>-%03d.m1v/m2v,.mpa,.mpg) + will be startet. Value (=0) will disable + this feature. + +3. Muxer Prameters +================== + +Param-Name Type Description default +----------------------------------------------------------------------------- +vbr_mux B (=0) to multiplex CBR-Videos, otherwise !base-prof. + (=1) to multiplex VBR-Videos. +video_buf_size I Video-Buffer size (46-224) kBytes !base-prof. +sector_size I packet- (sector-)size usual values are !base-prof. + 2048 (DVD) or 2324 (VCD/SVCD) +use_comp_bitrate I unused (=0), average (=1), max (=2) !base-prof. +forced_mux_rate I (=0) compute muxrate on base of !base-prof. + "use_comp_bitrate", otherwise value of + forced muxrate in 50 bytes/sec units. +always_sys_hdr B generate always sys-headers (=1) or (=0) !base-prof. + for only on beginning of video. +align_seq_hdr B align sequence headers on sector !base-prof. + boundaries (=1), no alignment (=0) +svcd_scan_ofs B (=1) generate SVCD scan-offets, otherwise !base-prof. + (=0) no not generate. +use_private2 B (=1) to generate private2-headers, otherwise !base-prof. + (=0) none. +use_prg_end B (=1) to write program end-code, otherwise !base-prof. + (=0) no program end-code is produced. |