Кодирую mencoder-ом в xvid, картинку не режу, стараюсь чтоб выходной файл был качественный, поэтому на размер - плевать.
Фильмы на dvd в основном размера 720*576, при этом aspect_ratio=16/9=1.778.
Если обрезать черные поля (а обрезать нужно - нахрен нам лишнее:-) - то aspect_ratio нужно менять. Долгое время мучался с подбором значения. Но таки пересилил лень и вывел формулу:
--------------------------
Xorig*Yorig - факт. размер картинки (720*576)
aspectOrig - оригинальный aspect_ratio (1.778)
Xcropped:Ycropped - размеры обрезанной картинки (-vf crop=704:412:8:82)
aspectNew=Xcropped*Yorig*aspectOrig/Ycropped*Xorig = 704*576*1.778/412*720=2.43
--------------------------
а вот сам скрипт для кодирования в 2 прохода:
----------------
#!/bin/bash
# исходник видео и выходной файл
source="/mnt/video/unsorted/королевство/video_ts"
#source="/dev/dvd"
title=2
out="~/movie.avi"
# битрэйт (в кбит/сек) прикидываем исходя из правила 0.25-0.30 бит на пиксель для хорошего качества: 720*432*25кадров в сек.=2332800 бит/пиксель ~ 2500 kbps
video_bitrate=2500
# размер картинки с учетом обрезанных черных полей. чтоб определить делаем maplayer ... -vf cropdetect
vf="-vf crop= 704:412:8:82"
# наш высчитанный aspect_ratio
aspect=2.43
aspect_ratio=":aspect=$aspect"
aspect="-force-avi-aspect $aspect"
#options='-aid 129'#если дорожка со звуком не одна
# звук кодируем пресетом
audiocodec="-oac mp3lame -lameopts preset=extreme"
# или постоянным битрэйтом
#audio_bitrate=256
#audiocodec="-oac mp3lame -lameopts vbr:br=${audio_bitrate}"
# или просто копируем с источника без пережатия (если к примеру нужен 5+1)
#audiocodec="-oac copy"
# если исходник - мульфильм
#cartoon=":cartoon"
# тут наши опции для xvid с макс. качеством
videooptions_pass1="-ovc xvid -xvidencopts pass=1${aspect_ratio}${cartoon}:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:threads=16"
videooptions_pass2="-ovc xvid -xvidencopts pass=2${aspect_ratio}${cartoon}:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:threads=16:bitrate=${video_bitrate}"
log=/tmp/encode-xvid.log
# 1 проход
mencoder dvd://$title -dvd-device $source \
$options \
-nosound \
$videooptions_pass1 \
$vf \
$aspect \
-o /dev/null
# 2 проход
mencoder dvd://$title -dvd-device $source \
$options \
$videooptions_pass2 \
$audiocodec \
$vf \
$aspect \
-o $out
----------------
а вот наборы опций для разного качества/скорости, рекомендованные на сайте mplayer
Description | Encoding options | speed (in fps) | Relative PSNR loss (in dB) |
---|---|---|---|
Very high quality | chroma_opt:vhq=4:bvhq=1:quant_type=mpeg | 16fps | 0dB |
High quality | vhq=2:bvhq=1:chroma_opt:quant_type=mpeg | 18fps | -0.1dB |
Fast | turbo:vhq=0 | 28fps | -0.69dB |
Realtime | turbo:nochroma_me:notrellis:max_bframes=0:vhq=0 | 38fps | -1.48dB |