URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 14249
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Скрипт для кодирования видео с помощью Mencoder"

Отправлено auto_tips , 05-Апр-06 10:08 
Ниже скрипт, который делает двухпроходное видио.

Как пользовать:

Для начала скатываем фильм с 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


Содержание

Сообщения в этом обсуждении
"Скрипт для кодирования видео с помощью Mencoder"
Отправлено Vs , 05-Апр-06 10:08 
непонятно, нахреня надо копировать диск на винт (типа, дуром свободного места?), да и вообще я больше привык без скриптов. Что там скриптовать-то? ;)

"Скрипт для кодирования видео с помощью Mencoder"
Отправлено Глобалист , 05-Апр-06 10:32 
Поправьте, опечатку "Ниже скрипт, который делает двухпроходное вид_е_о"

2 Vs: когда цифруем с винта, а не с DVD скорость прилично увелииться может.


"Скрипт для кодирования видео с помощью Mencoder"
Отправлено Глобалист , 05-Апр-06 10:34 
s/цифруем/транскодируем/
:-)

"Скрипт для кодирования видео с помощью Mencoder"
Отправлено StreSS , 05-Апр-06 13:09 
2 VS мне диски принося и тутуже забируют
И меня ломает каждый раз писать в консоли.
А тогда нафига нужен вообще шелл :)

"Скрипт для кодирования видео с помощью Mencoder"
Отправлено petr999 , 28-Июн-06 15:30 
помогите мне пожалуйста! скажите, с такими настройками на каком языке сохранится звук и титры, если они на нескольких языках? хочется двухслойный лицензионный двд сбекапить с отключаемыми субтитрами, а получается фигня какая-то...  может, этим скриптом можно сразу все языки скопировать?

"Скрипт для кодирования видео с помощью Mencoder"
Отправлено blzz , 20-Мрт-08 18:10 
-alang ru  звук
-slang ru  сабы
привычно звук бывает на en/ru