summaryrefslogtreecommitdiffstats
path: root/debian/transcode/transcode-1.1.7/docs/pvm3/export_pvm.txt
diff options
context:
space:
mode:
Diffstat (limited to 'debian/transcode/transcode-1.1.7/docs/pvm3/export_pvm.txt')
-rw-r--r--debian/transcode/transcode-1.1.7/docs/pvm3/export_pvm.txt881
1 files changed, 881 insertions, 0 deletions
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 <marzio_malanchini@vodafone.it>
+
+---------------
+* 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