понедельник, 26 сентября 2011 г.

Двухпроходное кодирование mencoder + XVID

Формула расчёта оптимального бит-рейта:

br = 50 * 25 * width * height / 256

Первый проход:

mencoder -ovc xvid -xvidencopts pass=1:bitrate=1800:turbo:vhq=0 -nosound infile.avi -o /dev/null

Второй проход:

mencoder -ovc xvid -xvidencopts pass=2:bitrate=1800:vhq=2:bvhq=1:chroma_opt:quant_type=mpeg -oac copy infile.avi -o outfile.avi

Для дополнительного перекодирования звука в mp3 с переменным битрейтом 128k:
-oac mp3lame -lameopts abr:br=128

Удаляем лог кодека xvid:

rm -f divx2pass.log




Скрипт для обработки директории с файлами:

#!/bin/sh
PWD=`pwd`
curdir=${PWD}
indir="${PWD}/IN/"      # каталог с исходными файлами

outdir="${PWD}/OUT/"  # каталог для полученных файлов

#маска для для входных файлов
filesmask="*.avi"
#filesmask=Pretender*0[1-9].avi
#filesmask=Pretender*1[0-9].avi
#filesmask=Pretender*2[0-9].avi

# Памятка по формуле расчёта битрейта
# Compute the optimal bitrate
#    br = 50 * 25 * width * height / 256
# the 50 factor can vary between 40 and 60
#obr=`expr $width \* $height \* 50 \* 25 / 256`

cd "${indir}"

for file in $filesmask
do
file_out=`echo $file | sed s/\ //g | sed s/.avi//`


#Пример для получения небольшого выходного файла с разрешением 320xYYY
#mencoder -vf scale -zoom -xy 320 -ovc xvid -xvidencopts pass=1:bitrate=300:turbo:vhq=0 -nosound "$file" -o /dev/null
#mencoder -vf scale -zoom -xy 320 -ovc xvid -xvidencopts pass=2:bitrate=300:vhq=2:bvhq=1:chroma_opt:quant_type=mpeg -af volnorm=1:0.65 -oac mp3lame -lameopts abr:br=96 "$file" -o "${outdir}${file_out}.avi"

#Первый проход
mencoder -ovc xvid -xvidencopts pass=1:bitrate=1800:turbo:vhq=0 -nosound "$file" -o /dev/null

#Второй проход
mencoder -ovc xvid -xvidencopts pass=2:bitrate=1800:vhq=2:bvhq=1:chroma_opt:quant_type=mpeg -oac mp3lame -lameopts abr:br=128 "$file" -o "${outdir}${file_out}.avi"

rm -f divx2pass.log

echo ${file} - Done

done

cd "${curdir}"

exit 0

Комментариев нет:

Отправить комментарий