Ниже скрипт, который делает двухпроходное видио.Как пользовать:
Для начала скатываем фильм с DVD
mencoder dvd:// -oac copy -ovc copy -o name.vob
Заметьте что имя файла имеет разширение vob (маленькими буками),
скрипт сам переделает его потом в avi. 2. Считаем переменную CROP вот так
mplayer -vf cropdetect name.vob
Должны появиться строки что-то вроде этого
crop area: X: 10..711 Y: 73..497 (-vf crop=688:416:18:78).6% 0 0
crop area: X: 10..711 Y: 73..497 (-vf crop=688:416:18:78).6% 0 0
crop area: X: 10..711 Y: 73..497 (-vf crop=688:416:18:78).6% 0 0
В данном случае нас интерисует "688:416:18:78", именно это и ставим в значение переменной
ТОЛЬКО ОБЯЗАТЕЛЬНО ПРОВЕРЬТЕ ПРАВИЛЬНО ЛИ ПОЛУЧЕНЫ ЗНАЧЕНИЯ.
Иногда mencoder ошибается. Поправте значение ABITRATE (битрейд аудио потока) усли нужно.
Далее запускам:
./coder -a
Это заставит mencoder выдать битрейд для видео.
После того как поправили значение VBITRATE (битрейд видео потока), запускаем
./coder
Текст скрипта:
#!/bin/sh
IN_FILE="`ls -1|grep *.vob`"
OUT_FILE="`echo ${IN_FILE}|sed s/vob/avi/`"
VBITRATE=""
ABITRATE="128"
CROP=""
ASPECT=""
EQ="eq=0:0"
XY="640"
PASS1="pass=1"
PASS2="pass=2"
PP="pp=hb/vb/dr/ci"
#/al - авто яркость
OVC="-ovc xvid -xvidencopts bitrate=${VBITRATE}:vhq=4"
OAC="-oac mp3lame -lameopts br=${ABITRATE}:vbr=3 -alang ru"
CODER="mencoder"
VFILTER="${ASPECT} -vf ${EQ},${PP},crop=${CROP},scale -zoom -xy ${XY} -ofps 24"
AFILTER="-af volnorm,volume=0:1"
MAIL="stress@stress.volot.net"
WD="${PWD}"
DATA="`date`"
clean ()
{
rm -fr frameno.avi
}
audio_convert ()
{
clean;
${CODER} ${IN_FILE} \
-ovc frameno \
${OAC} \
${AFILTER} \
${VFILTER} \
-o /dev/null
clean;
}
video_convert ()
{
clean
if [ -z "${VBITRATE}" ]
then
{
echo "Битрейд видео потока не установлен!"
}
fi
if [ "${1}" != "d" ]
then
{
OUT_FILE_1="/dev/null"
}
else
{
OUT_FILE_1="${OUT_FILE}"
}
fi
nice -n 19 ${CODER} ${IN_FILE} \
${OVC}:${PASS1} \
-oac copy \
${VFILTER} \
-o ${OUT_FILE_1} && \
nice -n 19 ${CODER} ${IN_FILE} \
${OVC}:${PASS2} \
${OAC} \
${AFILTER} \
${VFILTER} \
-o ${OUT_FILE}
}
#send_mail [a,v]
#a - аудио обработка; v - видео обработка
send_mail ()
{
MSG="/tmp/coder"
A="аудио"
V="видео"
if [ $1 = "a" ]
then
{
WORK=${A}
}
fi
if [ $1 = "v" ]
then
{
WORK=${V}
}
fi
echo "" >> ${MSG}
echo "Закончена ${WORK} обратотка файла" >> ${MSG}
echo "Директория ${WD}" >> ${MSG}
echo "Входящий файл ${IN_FILE}" >> ${MSG}
echo "Исходящий файл ${OUT_FILE}" >> ${MSG}
echo "Обработка файла начата ${DATA}"
echo "Обработка закончена `date`"
cat $MSG | mail -s "coder in ${WD}" ${MAIL} \
-a "Content-Type: text/plain; charset=\"koi8-r\"" -a "Content-Transfer-Encoding: 7bit"
rm -f ${MSG}
}
if [ "${1}" = "-a" ]
then
{
audio_convert && \
send_mail a
}
fi
if [ "${1}" = "-d" ]
then
{
video_convert d && \
send_mail v
}
fi
if [ "${1}" = "" ]
then
{
video_convert && \
send_mail v
}
fi
URL:
Обсуждается: http://www.opennet.me/tips/info/1001.shtml