Re: kompresia videa
To |
Debian CZ/SK project discussion list <czdebian-l zavinac debian bod cz> |
From |
wochter <wochter zavinac seznam bod cz> |
Date |
Tue, 22 Jul 2008 14:13:25 +0200 |
User-agent |
Thunderbird 2.0.0.14 (X11/20080505) |
ahoj,
mozes mi prosim ta este raz poslat ten script na upravu videa?
Mail encoding to polamal a nejak sa mi to nedari poskladat.
Daj to ako prilohu prosim ta.
Dakujem.
juraj
Marek Nožka wrote / napísal(a):
> On Mon, 14 May 2007 10:41:16 +0200 Marek Nožka <tlapicka zavinac centrum bod
> cz>
> wrote to czdebian-l zavinac debian bod cz:
>
>> na to napsal skript.
> že by mi to nevzalo tu přílohu?
>
>
> #!/bin/bash
>
> # Licence: GNU GPL 2.0
>
> if [ -z $1 ]; then
> # Help
> echo -e "--- Help for avi-x264-lame.sh ---\n";
> echo -e "This skript is for encoding video.";
> echo -e "Mencoder is needed to run this script. Encoding goes
> in two passes."; echo -e "Video-codec: x264";
> echo -e "Audio-codec: lame";
> echo -e "Mutimedia-contejner: avi";
>
> echo -e "\n --Syntax:"
> echo -e "avi-x264-lame <infile> <outfile> [other parametrs for
> mencoder]\n"; else
> #program
> #check of needed programs
> for PROGRAM in mencoder; do
> echo "Checking $PROGRAM:"
> { which $PROGRAM && [ -x $(which $PROGRAM) ]; } || {
> echo -e "***\n Can't find program $PROGRAM\n
> Exit\n***" exit 2
> }
> echo -e "*"
> done
> INFILE=$1
> shift
> OUTFILE=$1
> shift
>
> if [ -z $OUTFILE ]; then
> echo "Please enter <outfile>"
> exit 1
> fi
>
>
> echo -e "\n Enter AUDIO mode:"
> select CHOISE in "stereo" "joint-stereo" "dualchannel" "mono";
> do echo "You have chosen "$REPLY", it is: $CHOISE"
> echo -n 'Continue? [Y/n] ' && read YESNO
> if [ -z $YESNO ] || [ $YESNO = y ] || [ $YESNO = Y ];
> then case $REPLY in
> 1) AUDIOMODE=0; break;;
> 2) AUDIOMODE=1; break;;
> 3) AUDIOMODE=2; break;;
> 4) AUDIOMODE=3; break;;
> *) echo "Bad enter. Please chose 1-4.";;
> esac;
> fi
> done;
>
> echo -e "\n Enter AUDIO bitrate:"
> select CHOISE in "224 kbps" "192 kbps" "160 kbps" "128 kbps"
> "96 kbps" "80 kbps" "64 kbps" "48 kbps"; do echo "You have chosen
> "$REPLY", it is: $CHOISE" echo -n 'Continue? [Y/n] ' && read YESNO
> if [ -z $YESNO ] || [ $YESNO = y ] || [ $YESNO = Y ];
> then case $REPLY in
> 1) AUDIOBITRATE=224; break;;
> 2) AUDIOBITRATE=192; break;;
> 3) AUDIOBITRATE=160; break;;
> 4) AUDIOBITRATE=128; break;;
> 5) AUDIOBITRATE=96; break;;
> 6) AUDIOBITRATE=80; break;;
> 7) AUDIOBITRATE=64; break;;
> 8) AUDIOBITRATE=48; break;;
> *) echo "Bad enter. Please chose 1-8.";;
> esac;
> fi
> done;
>
> # echo -e "\n Enter ASPECT RATIO:"
> # select CHOISE in "4:3" "16:9"; do
> # echo "You have chosen "$REPLY", it is: $CHOISE"
> # echo -n 'Continue? [Y/n] ' && read YESNO
> # if [ -z $YESNO ] || [ $YESNO != n ]; then
> # case $REPLY in
> # 1|2) ASPECT=$CHOISE; break;;
> # *) echo "Bad enter. Please chose 1 or
> # 2.";; esac;
> # fi
> # done;
>
> echo -e "\nEnter number of passes for encoding:"
> select CHOISE in "1 passes -- for speed" "2 passes -- for high
> quality " "3 passes -- for experts"; do echo "You have chosen "$REPLY",
> it is: $CHOISE" echo -n 'Continue? [Y/n] ' && read YESNO
> if [ -z $YESNO ] || [ $YESNO = y ] || [ $YESNO = Y ];
> then case $REPLY in
> 1) PASS=1; ONEPASSOUTFILE=$OUTFILE;
> break;;
> 2) PASS=2;
> ONEPASSOUTFILE="/dev/null";PASSTURBO="pass=1:turbo=1:"; break;;
> 3) PASS=3;
> ONEPASSOUTFILE="/dev/null";PASSTURBO="pass=1:turbo=1:"; break;; *) echo
> "Bad enter. Please chose 1 to 3.";; esac;
> fi
> done;
>
> echo -e "\nEnter encoding mode:"
> select CHOISE in "Quick encoding" "High quality" "Very high
> quality -- slow endoding"; do echo "You have chosen "$REPLY", it is:
> $CHOISE" echo -n 'Continue? [Y/n] ' && read YESNO
> if [ -z $YESNO ] || [ $YESNO = y ] || [ $YESNO = Y ];
> then case $REPLY in
> 1)
> ENCOPTS="frameref=1:bframes=2:subq=4:me=dia:b_pyramid:weight_b";break;;
> 2)
> ENCOPTS="frameref=3:bframes=3:subq=5:me=hex:b_pyramid:weight_b:partitions=all:8x8dct";break;;
>
> 3)
> ENCOPTS="frameref=5:bframes=4:subq=6:me=umh:b_pyramid:weight_b:partitions=all:8x8dct";break;;
> *) echo "Bad enter. Please chose 1 to 3.";; esac;
> fi
> done;
>
> echo -e "\n This is a choise for rescale filter\nEnter
> RESOLUTION of encoding video:" select CHOISE in "768x576 (4:3) --
> Full-PAL"\ "640x480 (4:3)"\
> "512x384 (4:3)"\
> "384x288 (4:3) -- Half PAL"\
> "256x192 (4:3)"\
> "1024x576 (16:9)"\
> "768x432 (16:9)"\
> "512x288 (16:9)"\
> "256x144 (16:9)"\
> "No change, no rescale. Aspect ratio is 4:3"\
> "No change, no rescale. Aspect ratio is 16:9"; do
> echo "You have chosen "$REPLY", it is: $CHOISE"
> echo -n 'Continue? [Y/n] ' && read YESNO
> if [ -z $YESNO ] || [ $YESNO = y ] || [ $YESNO = Y ];
> then case $REPLY in
> 1) SCALE="scale=768:576";ASPECT="4:3";
> break;;
> 2) SCALE="scale=640:480";ASPECT="4:3";
> break;;
> 3) SCALE="scale=512:384";ASPECT="4:3";
> break;;
> 4) SCALE="scale=384:288";ASPECT="4:3";
> break;;
> 5) SCALE="scale=256:192";ASPECT="4:3";
> break;;
> 6)
> SCALE="scale=1024:576";ASPECT="16:9"; break;;
> 7) SCALE="scale=768:432";ASPECT="16:9";
> break;;
> 8) SCALE="scale=512:288";ASPECT="16:9";
> break;;
> 9) SCALE="scale=256:144";ASPECT="16:9";
> break;;
> 10) ASPECT="4:3"; break;;
> 11) ASPECT="16:9"; break;;
> *) echo "Bad enter. Please chose
> 1-11.";; esac;
> fi
> done;
>
>
>
> YESNO="n"
> while [ $YESNO ] && { [ $YESNO = n ] || [ $YESNO = N ];}; do
> echo -e "\n Enter VIDEO bitrate: (500 to 2500 kbps)"
> read VIDEOBITRATE
> echo -en "Bitrate is $VIDEOBITRATE\n Continue? [Y/n] "
> && read YESNO done
>
>
> # Others x264 chois
> ENCOPTS="qcomp=0.8:${ENCOPTS}"
>
>
> echo -en " "
> echo -en "\nForce no frames skipping. This is good if you have
> problems with A-V synchronization." echo -en "\nForce no frames
> skipping? [y/N] " && \ read SKIP
> if [ $SKIP ] && { [ $SKIP = y ] || [ $SKIP = Y ];} ; then
> SKIP="-mc 0 -noskip"
> else
> SKIP=""
> fi
>
> echo -en "\nDo you want to use deinterlacing filter? [y/N] " &&
> \ read YESNO
> if [ $YESNO ] && { [ $YESNO = y ] || [ $YESNO = Y ];}; then
> DEINTERLACE="pp=lb"
> else
> DEINTERLACE=""
> fi
>
>
> echo -en "\nDo you want to use denoise filter? [y/N] " && \
> read YESNO
> if [ $YESNO ] && { [ $YESNO = y ] || [ $YESNO = Y ];}; then
> echo " ---> --->"
> echo -en "\t Enter spatial luma strength (default: 4) "
> && \ read luma
> if [ -z $luma ]; then luma=4; fi
> echo -en "\n\t Enter spatial chroma strength (default:
> 3) " && \ read chroma
> if [ -z $chroma ]; then chroma=3; fi
> echo -en "\n\t Enter temporal strength (default: 6) "
> && \ read time
> if [ -z $time ]; then time=6; fi
> DENOISE="hqdn3d=$luma:$chroma:$time"
> echo " <--- <---"
> else
> DENOISE=""
> fi
>
> # filter togather
> for I in $DEINTERLACE $DENOISE $SCALE; do
> if [ $FILTERS ]; then
> FILTERS="${FILTERS},$I"
> else
> FILTERS="$I"
> fi
> done
> if [ $FILTERS ]; then
> FILTERS="-vf $FILTERS"
> fi
>
> # if [ $DEINTERLACE$SCALE ]; then
> # FILTERS="-vf"
> # if [ $DEINTERLACE ]; then
> # FILTERS="$FILTERS $DEINTERLACE"
> # if [ $SCALE ]; then
> # FILTERS="$FILTERS","$SCALE"
> # fi
> # else
> # FILTERS="$FILTERS $SCALE"
> # fi
> # fi
>
> echo -e "\n Comands:"
> echo "** 1. PASS **"
> echo mencoder $INFILE -o $ONEPASSOUTFILE $@ -oac mp3lame
> -lameopts cbr:br="$AUDIOBITRATE":mode="$AUDIOMODE":aq=0 -ovc x264
> -x264encopts bitrate=${VIDEOBITRATE}:${PASSTURBO}${ENCOPTS} $FILTERS
> $SKIP -aspect "$ASPECT" if [ $PASS != "1" ]; then echo "** 2/3.
> PASS **" echo mencoder $INFILE -o $OUTFILE $@ -oac mp3lame
> -lameopts cbr:br="$AUDIOBITRATE":mode="$AUDIOMODE":aq=0 -ovc x264
> -x264encopts bitrate=${VIDEOBITRATE}:pass=${PASS}:${ENCOPTS} $FILTERS
> $SKIP -aspect "$ASPECT" fi echo -en "\nContinue? [Y/n] " && read
> CONTINUE if [ $CONTINUE ] && { [ $CONTINUE = n ] || [ $CONTINUE =
> N ];}; then exit 0 fi
>
> echo -e " \n**************************"
> echo "** 1. PASS **"
> echo "**************************"
> mencoder $INFILE -o $ONEPASSOUTFILE $@ -oac mp3lame -lameopts
> cbr:br="$AUDIOBITRATE":mode="$AUDIOMODE":aq=0 -ovc x264 -x264encopts
> bitrate=${VIDEOBITRATE}:${PASSTURBO}${ENCOPTS} $FILTERS $SKIP -aspect
> "$ASPECT" ONE=$? if [ $PASS = "1" ]; then exit $ONE
> fi
>
>
> if [ $ONE = 0 ]; then
> echo "**************************"
> echo "** 2. PASS **"
> echo "**************************"
> mencoder $INFILE -o $OUTFILE $@ -oac mp3lame -lameopts
> cbr:br="$AUDIOBITRATE":mode="$AUDIOMODE":aq=0 -ovc x264 -x264encopts
> bitrate=${VIDEOBITRATE}:pass=${PASS}:${ENCOPTS} $FILTERS $SKIP -aspect
> "$ASPECT" TWO=$? if [ $TWO = 0 ] && [ $PASS = 3 ]; then echo
> "**************************" echo "** 3. PASS **"
> echo "**************************"
> mencoder $INFILE -o $OUTFILE $@ -oac mp3lame
> -lameopts cbr:br="$AUDIOBITRATE":mode="$AUDIOMODE":aq=0 -ovc x264
> -x264encopts bitrate=${VIDEOBITRATE}:pass=${PASS}:${ENCOPTS} $FILTERS
> $SKIP -aspect "$ASPECT" TWO=$? fi
>
> else
> echo "First pass failed. Exit."
> exit 1
> fi
>
> if [ $TWO = 0 ]; then
> echo "**************************"
> echo "** FINISHED **"
> echo "**************************"
> else
> echo "Second pass failed. Exit."
> exit 1
> fi
>
>
> fi
>
> ________________________________________________
> CZdebian-l maillist - CZdebian-l zavinac debian bod cz
> http://www.debian.cz/mailman/listinfo/czdebian-l
> E-mail (un)subscriptions: czdebian-l-request zavinac debian bod cz
>
Partial thread listing:
iceweasel a sun_java v etchi nefunguje
Petr Jakubec