diff --git a/rmov b/rmov index ab278a7..0c4d3fd 100755 --- a/rmov +++ b/rmov @@ -1,7 +1,7 @@ #!/bin/sh # Re-encode movie files, using mencoder # $Id$ -# (c)2003 by HIROSE Yuuji [yuuji@gentei.org] +# (c)2003-2004 by HIROSE Yuuji [yuuji@gentei.org] myname=`basename $0` @@ -19,6 +19,7 @@ vb='' force='' newX='' newY='' +otheropt='' # if echo a | tr -u a a >/dev/null 2>&1; then # TR='tr -u' # else @@ -48,6 +49,7 @@ '-s 0.5' generates 0.5 of original geometry -x WIDTH Width of generated movie -y HEIGHT Height of generated movie + -xy WIDTH Height of generated movie[mencoder's option] -g GAMMA GAMMA correction value (1.2) -ac CODEC One of mp3lame, pcm, raw -vc CODEC One of mpeg4, msmpeg4, mjpeg, rv10 mpg1video @@ -78,7 +80,7 @@ -ext) shift; ext=$1 ;; -ch*) shift; channels="$1" ;; -mz) oac=pcm channels=1 ;; - -sl) vb=2000 ;; + -sl) otheropt='-lameopts cbr:ratio=1:br=128:vol=1' vb=2000 ;; -o) shift; outdir="$1" ;; -ss) shift; start="$1" ;; -end*) shift; end="$1" ;; @@ -86,6 +88,8 @@ -vb) shift; vb="$1" ;; -x) shift; newX="$1" newY='' ;; -y) shift; newY="$1" newX='' ;; + -xy) shift; xy="-xy $1 -zoom" ;; + -vts) shift; vts="$1" ;; -f) force=1 ;; -h) usage ;; *) @@ -114,6 +118,7 @@ -s 0.5 �Ȥ���ȸ���0.5�ܡ� -x �� ������ư��ե�������� [�⤵�����ά��ǽ] -y �⤵ ������ư��ե�����ι⤵ [�������ά��ǽ] + -xy �� ������ư��ե�������� [�������mencoder��Ǥ��] -g �������� �������Ǥ����뤵�����(1.2) -ac CODEC mp3lame, pcm, raw �Τɤ줫 -vc CODEC mpeg4, msmpeg4, mjpeg, rv10 mpg1video �Τɤ줫 @@ -125,10 +130,13 @@ -end �ÿ� ���󥳡��ɤ����ÿ� -fps FPS ����ư��� �ե졼��/�� -vb V�졼�� ����ư��β�������ץ�󥰥졼��kHz + -vts �ִ��� VTS(DVDVTR)�ե�����̾����ʬ����ִ���פˤ��� -f �����ե������ɤ�ɤ��� (��񤭤��ʤ�) $myname �ˤ� mencoder �� netpbm �� jpeglib(djpeg)��ɬ�פǤ��� Unix��Dz��������򤹤�ˤϷ礫���ʤ��ġ���ʤΤ����Ф˥��󥹥ȡ��뤷�ޤ��礦�� +-vb ��320x240����Ȥ���Ȥ� 300=���� 400=�ޤ��ޤ� 600=�դĤ� +640x480�ʤ�4�ܤˤ������� Type "$myname -h" for English help. _EOU_ @@ -136,8 +144,13 @@ fi newname() { - # $1=base $2=ext + # $1=base $2=ext $3=original base="$1" + if [ "$vts" -a -x /usr/bin/stat ]; then + time=`stat -t %Y-%m%d.%H%M -f %Sm "$3"` + prefix="$time-$vts" + base=`echo $base|sed -e "s/[Vv][Tt][Ss]_[0-9]*/$prefix/"` + fi if [ ! -f "$base.$ext" -o "$force" ]; then echo "$base.$ext" return @@ -154,7 +167,7 @@ # Referring global variable, $SCALE, $newX and $newY if [ -z "$newX" -a -z "$newY" ]; then case $SCALE in - *:*) echo "-vop scale=$SCALE" + *:*) echo "-vf scale=$SCALE" return ;; [.0-9]*) ;; ''|*) echo "Specify size as XxY or 0.75 (eg.)." 1>&2 @@ -181,24 +194,26 @@ newwidth=`echo $width \* $SCALE | bc | sed 's/\..*//'` newheight=`echo $height \* $SCALE | bc | sed 's/\..*//'` fi - echo "-vop scale=${newwidth}:${newheight}" + echo "-vf scale=${newwidth}:${newheight}" } reconv() { #dir=`dirname "$1"` base=`basename "$1"` root="$outdir"/`expr "$base" : '\(.*\)\..*'` - new=`newname $root $ext` + new=`newname $root $ext "$1"` [ $verbose ] && echo "Set outfile to $new" if [ -z "$newX" -a -z "$newY" -a -z "$SCALE" ]; then - vop='-vop ' + vf='-vf scale' else - vop=`checksize "$1"` + vf=`checksize "$1"` fi - vop="$vop,eq2=$gamma" - [ $quiet ] || echo "$1 -> $new $vop" - mencoder -ovc lavc -lavcopts vcodec=$vcodec -oac $oac $vop $opts \ - -channels $channels -o "$new" "$1" 2> /dev/null + vf="$vf,eq2=$gamma" + [ $quiet ] || echo "$1 -> $new $vf" + cmdline="mencoder -ovc lavc -lavcopts vcodec=$vcodec -oac $oac $vf $opts \ + $xy -channels $channels -o '$new' $otheropt '$1'" + echo "$cmdline" + eval "$cmdline" 2> /dev/null touch -r "$1" $new # | nkf -u | perl -e '$|=1; select((select(0), $|=1)[0]); # while (<>) {s/\n/\r/; print}' @@ -209,6 +224,7 @@ [ "$end" ] && opts="$opts -endpos $end" [ "$ofps" ] && opts="$opts -ofps $ofps" [ "$vb" ] && vcodec="${vcodec}:vbitrate=$vb" +vcodec="${vcodec}:vhq" for f in $files; do reconv "$f"