- e-mail

 

 -

   ZAISMIT

 -

( : 1) linux

 -

 LiveInternet.ru:
: 06.04.2004
: 441
: 133
: 494

:


, 12 2005 . 14:39 +
VideoCD

, 15 17 DVD , ( 29" ), ... , ... .

:

VCD - MPEG-1 352x288, 1150kbps 224kbps . (74 - 80)

SVCD - MPEG-2 , 480576. 2600kbps 34 384kbps. 40 55 , .

XVCD, CVCD - DVD ( ). 90 .

: MPlayer, Transcode (http://theorie.physic.uni-goettingen.de/~ostreich/transcode), MJEG Tools (http://mjpeg.sourceforge.net), VCDImager (http://www.vcdimager.org), perl :)

, , ? Divx2VCD

Divx2VCD - , , , VCD:

#!/bin/bash

DIR=`pwd`
TEMPFOLDER=/tmp/divx2vcd-$RANDOM
TEMP_TEMPLATE=/tmp/tcm-template-$RANDOM

# 74 (650) => CDSIZE=735
# 80 (700) => CDSIZE=795
# , , ,
#

VIDEORATE=1150
AUDIORATE=224
if [ $# -eq 0 ]; then
echo "Usage:"
echo " divx2vcd "
exit 1
fi
FILE=$1
if [ "$1" == "`basename \"$l"`" ]; then
FILE="$DIR\$1"
fi

mkdir $TEMPFOLDER
cd $TEMPFOLDER
tcprobe -i "$FILE" > $TEMPFOLDER/info
WIDTH=`grep '\[avilib\] V:' $TEMPFOLDER/info | \ perl -e ' $line= ; $line = ~ /width=(\d+)/ ; print $1 `
HEIGHT=`grep '\[avilib\] V:' $TEMPFOLDER/info | \ perl -e ' $line= ; $line = ~ /height=(\d+)/ ; print $1 `
FPS=`grep '\[avilib\] V:' $TEMPFOLDER/info | \ perl -e ' $line= ; $line =~ /V: (.+?) fps/ ; print $1 `
FPS 1= `echo "scale=1 ; $FPS/1"| bc -l`
FRAMES=`grep '\[avilib\] V:' $TEMPFOLDER/info | \ perl -e ' $line= ; $line =~ /frames=(d+)/ ; print $1 `
SECONDS_TOTAL=`echo "scale=0 ; ($FRAMES / $FPS)"| bc -l' `
HOURS=`echo "scale=0 ; ($SECONDS_TOTAL / 3600)"| bc -l' `
MINUTES=`echo "scale=0 ; (($SECONDS_TOTAL - 3600 * $HOURS) / 60)"| bc -l' `
SECONDS=`echo "scale=0 ; ($SECONDS_TOTAL % 60)"| bc -l' `
echo "**************FILE INFO*******************"
echo "Frame Size: ${WIDTH}x${HEIGHT} - FPS: $FPS"
echo "Lenght: $FRAMES - Seconds: $SECONDS_TOTAL"
echo "$HOURS Hours, $MINUTES Minutes, $SECONDS Seconds"

if [ $FPS_1 == "29.9" -o $FPS_1 == "30" -o $FPS_1 == "23.9" ] ; then
WIDTH_OUT=352
HEIGHT_OUT=240
else
WIDTH_OUT=352
HEIGHT_OUT=288
fi

echo "Video output: ${WIDTH_OUT}x${HEIGHT_OUT}"

#

B_WIDTH_1_1_OUT=`echo ($HEIGHT_OUT / ¾)| bc l`
B_HEIGHT_OUT=`echo ($HEIGHT / ($WIDTH / $B_HEIGHT_OUT))| bc l `

#

B_HEIGHT_OUT=`echo scale=0 ; $B_WIDTH_1_1_OUT/1)| bc l `

# ,

B_HEIGHT_OUT=`echo scale=0 ; $B_HEIGHT_OUT+$B_HEIGHT_OUT%2 | bc l `
BORDER=`echo scale=0 ; ($HEIGHT_OUT-$B_HEIGHT_OUT)/2 | bc l`
echo : $HEIGHT_OUT , : $BORDER

#

rm F Movie.mlv Movie.mpa
cd $TEMPFOLDER

echo transcode i \$FILE\ V x mplayer y mpeg2enc , mp2enc \ -F l Z ${WIDTH_OUT}x$B_HEIGHT-OUT Y -$BORDER,0,-$BORDER,0 \ -export_asr 2 E 44100 b $AUDIORATE o $DIR/Movie

transcode i $FILE V x mplayer y mpeg2enc,mp2enc \ -F l Z ${WIDTH_OUT}x$B_HEIGHT-OUT Y -$BORDER,0,-$BORDER,0 \ -export_asr 2 E 44100 b $AUDIORATE o $DIR/Movie
rm rf $TEMPFOLDER
cd $DIR

[ -f Movie.mlv a f Movie.mpa ] || exit 1
rm f Movie*.mpg
echo maxFileSize = $CDSIZE > $TEMP_TEMPLATE
tcmplex i Movie.mlv p Movie.mpa o Movie.mpg \ -m 1 F $TEMP_TEMPLATE
rm $TEMP_TEMPLATE

#

for i in `ls Movie*.mpg ; do vcdimager t vcd2 c $i.bin
done

VCD .

Divx2CVCD: avi , . QUANTUM ( 2 31)(2 ). AUDIORATE.

, , , /:

CDSIZE=795 # ,
QUANTUM=5
#MAXRATE=900 #
AUDIORATE=128

Divx2SVCD: . CDSIZE, QUANTUM, MAXVIDEORATE AUDIORATE.

CDSIZE=795
QUANTUM=7
MAXVIDEORATE=4000000
AUDIORATE=160

#
if [ $FPS ==29.9 o $FPS == 30 o $FPS ==23.9 ]; then

WIDHT_OUT=480
HEIGHT_OUT=480
MPEG_OPTIONS=s,3,$TEMPLATE
else
WIDTH_OUT=480
HEIGHT_OUT=576
MPEG_OPTIONS=s,3,$TEMPLATE

:

: avi .

!

: [1] []
 

:
: 

: ( )

:

  URL