Скрипт для кодирования видео с помощью Mencoder |
[исправить] |
Ниже скрипт, который делает двухпроходное видео.
Как пользовать:
Для начала скатываем фильм с 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
|
|
|
03.04.2006
|
Раздел: Корень / Пользователю / Обработка изображений и видео |
1.1, Vs (??), 10:08, 05/04/2006 [ответить]
| +/– |
непонятно, нахреня надо копировать диск на винт (типа, дуром свободного места?), да и вообще я больше привык без скриптов. Что там скриптовать-то? ;) | |
1.2, Глобалист (?), 10:32, 05/04/2006 [ответить]
| +/– |
Поправьте, опечатку "Ниже скрипт, который делает двухпроходное вид_е_о"
2 Vs: когда цифруем с винта, а не с DVD скорость прилично увелииться может. | |
1.4, StreSS (?), 13:09, 05/04/2006 [ответить]
| +/– |
2 VS мне диски принося и тутуже забируют
И меня ломает каждый раз писать в консоли.
А тогда нафига нужен вообще шелл :) | |
1.5, petr999 (ok), 15:30, 28/06/2006 [ответить]
| +/– |
помогите мне пожалуйста! скажите, с такими настройками на каком языке сохранится звук и титры, если они на нескольких языках? хочется двухслойный лицензионный двд сбекапить с отключаемыми субтитрами, а получается фигня какая-то... может, этим скриптом можно сразу все языки скопировать? | |
|
2.6, blzz (?), 18:10, 20/03/2008 [^] [^^] [^^^] [ответить]
| +/– |
-alang ru звук
-slang ru сабы
привычно звук бывает на en/ru
| |
|
|