<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.campisano.org/wiki/Script_mencoder.sh/history?feed=atom</id>
	<title>Script mencoder.sh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.campisano.org/wiki/Script_mencoder.sh/history?feed=atom"/>
	<link rel="alternate" type="text/html" href="https://www.campisano.org/wiki/Script_mencoder.sh/history"/>
	<updated>2026-07-15T11:07:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://www.campisano.org/mediawiki/index.php?title=Script_mencoder.sh&amp;diff=489&amp;oldid=prev</id>
		<title>imported&gt;T1t0: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://www.campisano.org/mediawiki/index.php?title=Script_mencoder.sh&amp;diff=489&amp;oldid=prev"/>
		<updated>2011-08-28T05:54:46Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ] || [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
    echo	&amp;quot;Usage: $0 &amp;lt;input-file&amp;gt; &amp;lt;output-file&amp;gt; [other-opts]&amp;quot;;&lt;br /&gt;
    exit -1;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if [ ! -x &amp;quot;`which mencoder`&amp;quot; ]; then&lt;br /&gt;
    echo	&amp;quot;Can&amp;#039;t find mencoder command&amp;quot;;&lt;br /&gt;
    exit;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if [ ! -f &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
    echo	&amp;quot;Can&amp;#039;t find input file&amp;quot;;&lt;br /&gt;
    exit;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OTHEROPTS=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ARRAY=(&amp;quot;$@&amp;quot;)&lt;br /&gt;
COUNT=2&lt;br /&gt;
#while test $COUNT -lt $#; do&lt;br /&gt;
while test $COUNT -lt &amp;quot;$#&amp;quot;; do&lt;br /&gt;
    OTHEROPTS=&amp;quot;$OTHEROPTS ${ARRAY[COUNT]}&amp;quot;;&lt;br /&gt;
    COUNT=$((COUNT+1));&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;input-file=\t$1&amp;quot;&lt;br /&gt;
echo -e &amp;quot;output-file=\t$2&amp;quot;&lt;br /&gt;
echo -e &amp;quot;other-opts=\t$OTHEROPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nice -5 ffmpeg -t 1 -i &amp;quot;$1&amp;quot; -f null - &amp;amp;&amp;gt; ___time.log;&lt;br /&gt;
TIME=`cat ___time.log | grep Duration | cut -d . -f 1 | cut -d &amp;#039; &amp;#039; -f 4`;&lt;br /&gt;
if [ $? -ne 0 ]; then&lt;br /&gt;
    echo	&amp;quot;qualcosa e&amp;#039; andato storto durante la lettura della durata del filmato&amp;quot;;&lt;br /&gt;
    exit -1&lt;br /&gt;
fi;&lt;br /&gt;
rm -f ___time.log;&lt;br /&gt;
echo &amp;quot;movie time               :	$TIME&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
SECONDS=$(( $(echo $TIME | cut -d : -f 1)*3600 + $(echo $TIME | cut -d : -f 2)*60 +  $(echo $TIME | cut -d : -f 3) ));&lt;br /&gt;
if [ $? -ne 0 ]; then&lt;br /&gt;
    echo	&amp;quot;qualcosa e&amp;#039; andato storto durante il calcolo della durata in secondi&amp;quot;;&lt;br /&gt;
    exit -1&lt;br /&gt;
fi;&lt;br /&gt;
echo &amp;quot;movie time in seconds    :	$SECONDS&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
MAXSIZE=700&lt;br /&gt;
AUDIOBITRATE=128;&lt;br /&gt;
VIDEOBITRATE=$(( ($MAXSIZE*1024*8) /$SECONDS - $AUDIOBITRATE));&lt;br /&gt;
# tolgo il 10% per essere sicuro che rientri in $MAXSIZE&lt;br /&gt;
VIDEOBITRATE=$(($VIDEOBITRATE- ($VIDEOBITRATE/10)));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;defined audio bitrate    :	$AUDIOBITRATE&amp;quot;;&lt;br /&gt;
echo &amp;quot;extimated vidio bitrate  :	$VIDEOBITRATE&amp;quot;;&lt;br /&gt;
echo&lt;br /&gt;
echo&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# codec usato per la codifica audio&lt;br /&gt;
OAC=&amp;quot;mp3lame -srate 44100 -lameopts vbr=2:q=9:vol=8&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# codec usato nella codifica video a 1 passaggio&lt;br /&gt;
LAVAC_OPTS=&amp;quot;lavc -lavcopts vcodec=mpeg4:keyint=50:vbitrate=$VIDEOBITRATE:vhq:v4mv:mbd=2:vlelim=-4:vcelim=9:lumi_mask=0.05:dark_mask=0.03&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OVC=&amp;quot;$LAVAC_OPTS -mc 1 -sws 1 -vf pp=0x20000,$CROP$SCALE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# codec usato nella codifica video a 2 passaggi&amp;quot;&lt;br /&gt;
#OVC_PASS1=&amp;quot;$LAVAC_OPTS:vpass=1 -mc 1 -sws 1 -vf hqdn3d=2:1:2,$CROP$SCALE&amp;quot;&lt;br /&gt;
OVC_PASS1=&amp;quot;$LAVAC_OPTS:vpass=1 -mc 1 -sws 1 -vf pp=0x20000,$CROP$SCALE&amp;quot;;&lt;br /&gt;
OVC_PASS2=&amp;quot;$LAVAC_OPTS:vpass=2 -mc 1 -sws 1 -vf pp=0x20000,$CROP$SCALE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### Encoding in ONE pass&lt;br /&gt;
mencoder &amp;quot;$1&amp;quot; \&lt;br /&gt;
    -ovc $OVC \&lt;br /&gt;
    -oac $OAC \&lt;br /&gt;
    $OTHEROPTS \&lt;br /&gt;
    -o &amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### Encoding in TWO pass&lt;br /&gt;
&lt;br /&gt;
# 1st pass: the statistics of the video are recorded&lt;br /&gt;
#mencoder &amp;quot;$1&amp;quot; \&lt;br /&gt;
#    -ovc $OVC_PASS1 \&lt;br /&gt;
#    -oac $OAC \&lt;br /&gt;
#    $OTHEROPTS \&lt;br /&gt;
#    -o &amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# 2nd pass: the video is generated at the exact requested bitrate&lt;br /&gt;
#mencoder &amp;quot;$1&amp;quot; \&lt;br /&gt;
#    -ovc $OVC_PASS2 \&lt;br /&gt;
#    -oac $OAC \&lt;br /&gt;
#    $OTHEROPTS \&lt;br /&gt;
#    -o &amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
ls -sh &amp;quot;$2&amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### Encoding in ONE pass&lt;br /&gt;
&lt;br /&gt;
nice -5 ffmpeg -i &amp;quot;$1&amp;quot; \&lt;br /&gt;
-f avi -deinterlace \&lt;br /&gt;
-vcodec mpeg4 -b $VIDEOBITRATE \&lt;br /&gt;
-acodec mp3 -ar 44100 -ac 1 -ab $AUDIOBITRATE \&lt;br /&gt;
$OTHEROPTS \&lt;br /&gt;
&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### Encoding in TWO pass&lt;br /&gt;
&lt;br /&gt;
# 1st pass: the statistics of the video are recorded&lt;br /&gt;
#nice -5 ffmpeg -i &amp;quot;$1&amp;quot; \&lt;br /&gt;
#-f avi -deinterlace \&lt;br /&gt;
#-vcodec mpeg4 -b $VIDEOBITRATE \&lt;br /&gt;
#-acodec mp3 -ar 44100 -ac 1 -ab $AUDIOBITRATE \&lt;br /&gt;
#-pass 1 -passlogfile ___ffmpeg.log \&lt;br /&gt;
#$OTHEROPTS \&lt;br /&gt;
#___pass1.avi&lt;br /&gt;
&lt;br /&gt;
# 2nd pass: the video is generated at the exact requested bitrate&lt;br /&gt;
#nice -5 ffmpeg -i &amp;quot;$1&amp;quot; \&lt;br /&gt;
#-f avi -deinterlace \&lt;br /&gt;
#-vcodec mpeg4 -b $VIDEOBITRATE \&lt;br /&gt;
#-acodec mp3 -ar 44100 -ac 1 -ab $AUDIOBITRATE \&lt;br /&gt;
#-pass 2 -passlogfile ___ffmpeg.log \&lt;br /&gt;
#$OTHEROPTS \&lt;br /&gt;
#&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
ls -sh &amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#echo test&lt;br /&gt;
#ffmpeg -t 10 -v 5 -i &amp;quot;$2&amp;quot; -f null -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#rm -f ___test.avi ___ffmpeg.log&lt;br /&gt;
&lt;br /&gt;
#ffmpeg -i &amp;quot;$1&amp;quot; \&lt;br /&gt;
#-acodec mp3 -ar 44100 -ab $AUDIOBITRATE \&lt;br /&gt;
#-vcodec mpeg4 -hq -4mv -b $VIDEOBITRATE \&lt;br /&gt;
#-pass 1 -passlogfile ___ffmpeg.log \&lt;br /&gt;
#___test.avi&lt;br /&gt;
&lt;br /&gt;
##ffmpeg -i &amp;quot;$1&amp;quot; \&lt;br /&gt;
##-acodec copy \&lt;br /&gt;
##-vcodec mpeg4 \&lt;br /&gt;
##-pass 1 -passlogfile ___ffmpeg.log \&lt;br /&gt;
##___test.avi&lt;br /&gt;
&lt;br /&gt;
#if [ $? -ne 0 ]; then&lt;br /&gt;
#    echo	&amp;quot;qualcosa e&amp;#039; andato storto durante il primo passaggio della codifica!&amp;quot;;&lt;br /&gt;
#    exit -1&lt;br /&gt;
#fi;&lt;br /&gt;
&lt;br /&gt;
#ffmpeg -i &amp;quot;$1&amp;quot; \&lt;br /&gt;
#-acodec mp3 -ar 44100 -ab $AUDIOBITRATE \&lt;br /&gt;
#-vcodec mpeg4 -hq -4mv -b $VIDEOBITRATE \&lt;br /&gt;
#-pass 2 -passlogfile ___ffmpeg.log \&lt;br /&gt;
#&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -s 352x288 \&lt;br /&gt;
#-an \&lt;br /&gt;
#-acodec mp3 -ar 44100 -ab $AUDIOBITRATE \&lt;br /&gt;
#-vcodec mpeg4 -hq -4mv -b $VIDEOBITRATE \&lt;br /&gt;
#-deinterlace -async 1 -s 640x460 \&lt;br /&gt;
#-croptop 110 -cropbottom 110 -cropleft 6 -cropright 6 \&lt;br /&gt;
#-pass 1 -passlogfile ___ffmpeg.log \&lt;br /&gt;
# End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo RICORDATI DI SETTARE I DATI IN DEFINE.SH&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
sleep 1s;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# questo lo scegli tu, esempio&lt;br /&gt;
#   INPUT=&amp;quot;dvd://1-3&amp;quot;;			(riproduci solo i titoli da 1 a 3)&lt;br /&gt;
#   INPUT=&amp;quot;dvd://1 -chapter 5-7&amp;quot;;	(riproduci solo i capitoli da 5 a 7)&lt;br /&gt;
INPUT=&amp;quot;dvd://&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# file prodotto dal coding audio&lt;br /&gt;
OUT_FILE=&amp;quot;$2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# questo lo leggi da language.log dopo aver eseguito 1_get_language.sh&lt;br /&gt;
#LANGUAGE_ID=&amp;quot;-aid 128&amp;quot;;&lt;br /&gt;
#SUBTITLE_ID=&amp;quot;-sid 0&amp;quot;;		# decommenta se non vuoi sottotitoli&lt;br /&gt;
# al posto degli identificativi  puoi mettere i codici a lettere, ma lo sconsiglio&lt;br /&gt;
LANGUAGE_ID=&amp;quot;-alang it&amp;quot;;&lt;br /&gt;
#SUBTITLE_ID=&amp;quot;-slang es&amp;quot;;	# decommenta se non vuoi sottotitoli&lt;br /&gt;
&lt;br /&gt;
# questo riduce le dimensioni, ma consiglio di non ridimensionare il video&lt;br /&gt;
# attenti lasciare la virgola finale &amp;quot;..w:h,&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#SCALE=&amp;quot;scale=640:480,&amp;quot;;		# commenta se non vuoi ridimensionare&lt;br /&gt;
#SCALE=&amp;quot;scale=800:450,&amp;quot;;		# ovvero 16/9 (commenta come sopra)&lt;br /&gt;
&lt;br /&gt;
# questo lo leggi da crop.log dopo aver eseguito 2_get_crop.sh&lt;br /&gt;
# bisogna settare la scala PRIMA di eseguire 2_get_crop.sh !!! (o meglio non la si setta affatto)&lt;br /&gt;
# attenti lasciare la virgola finale &amp;quot;..w:h:x:y,&amp;quot;&lt;br /&gt;
CROP=&amp;quot;crop=718:548:2:14,&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# questo lo leggi da audio.log dopo aver eseguito 3_mk_audio.sh&lt;br /&gt;
BITRATE=&amp;quot;700&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# questo lo abiliti se vuoi creare una piccola anteprima&lt;br /&gt;
#IF_PROVA=&amp;quot;-ss 0:25:0 -endpos 35&amp;quot;;	 # decommenta se non vuoi una anteprima&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# codec usato per la codifica audio&lt;br /&gt;
OAC=&amp;quot;mp3lame -lameopts vbr=2:q=9:vol=8 $LANGUAGE_ID $SUBTITLE_ID -srate 44100&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# codec usato nella codifica video a 1 passaggio&lt;br /&gt;
LAVAC_OPTS=&amp;quot;lavc -lavcopts vcodec=mpeg4:keyint=50:vbitrate=$BITRATE:vhq:v4mv:mbd=2:vlelim=-4:vcelim=9:lumi_mask=0.05:dark_mask=0.03&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OVC=&amp;quot;$LAVAC_OPTS -mc 1 -sws 1 -vf pp=0x20000,$CROP$SCALE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# codec usato nella codifica video a 2 passaggi&lt;br /&gt;
OVC_PASS1=&amp;quot;$LAVAC_OPTS:vpass=1 -mc 1 -sws 1 -vf hqdn3d=2:1:2,$CROP$SCALE&amp;quot;&lt;br /&gt;
OVC_PASS2=&amp;quot;$LAVAC_OPTS:vpass=2 -mc 1 -sws 1 -vf hqdn3d=2:1:2,$CROP$SCALE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# End&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
. Define.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm -f log/language.log&lt;br /&gt;
&lt;br /&gt;
# questo per capire l&amp;#039;id del auidio in italiano, esempio di output ottenuto:&lt;br /&gt;
mencoder -v &amp;quot;$INPUT&amp;quot; \&lt;br /&gt;
    | grep language &amp;gt; log/language.log &lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo&lt;br /&gt;
echo&lt;br /&gt;
cat log/language.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# End&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
. Define.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm -f log/crop.log&lt;br /&gt;
&lt;br /&gt;
# ottengo il crop consigliato&lt;br /&gt;
mplayer &amp;quot;$INPUT&amp;quot; \&lt;br /&gt;
    -ss 0:15:0 -frames 300 \&lt;br /&gt;
    -vop cropdetect,$SCALE\&lt;br /&gt;
    | grep crop | tail -20 &amp;gt; log/crop.log&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo&lt;br /&gt;
echo&lt;br /&gt;
cat log/crop.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# End&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
. Define.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm -f log/audio.log&lt;br /&gt;
&lt;br /&gt;
# Rimuovi il file temporaneo che va in conflitto:&lt;br /&gt;
rm -f frameno.avi&lt;br /&gt;
&lt;br /&gt;
mencoder &amp;quot;$INPUT&amp;quot; \&lt;br /&gt;
    -oac $OAC \&lt;br /&gt;
    -ovc frameno \&lt;br /&gt;
    -o frameno.avi \&lt;br /&gt;
    | grep Recommended &amp;gt; log/audio.log&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo&lt;br /&gt;
echo&lt;br /&gt;
cat log/audio.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;T1t0</name></author>
	</entry>
</feed>