Мой дневник

01.12.2010

DVD 2 MKV часть 2

Filed under: Uncategorized — sae762 @ 15:35

Ладно, с простыми случаями разобрались. Теперь ньюансы:

1. Сборка MKV делается mkvtoolnix – mkvmerge. Важный момент – требуется версия не менее 4.04, и версии библиотек libmatroska и libebml не менее 1.0, более ранние делают несовместимый хидер MKV
2. При сборке требуется отключать компрессию заголовков, эту фичу многие не понимают (mplayer например)
3. Сжатие видео можно делать в mpeg4. Но уменя дома плеер настроен на h.264 (использую декодер ff264vdpau с картой nvidia), поэтому попробую пережать в него.

Похоже, наш любимый lavc не делает именно h264 (хотя его mpeg4 тоже рекомендуется).
Поэтому можно использовать кодек x264:

mencoder $INPUTFILE -nosound -ovc x264
-of rawvideo -o out.264

-x264encopts
:turbo=1 (на первом проходе)
:pass=2 (второй проход)
:threads=auto – будет быстрее на мультиядерном проце
:bitrate=800 – битрейтом можно поиграть, он в kbps. рекомендуется от 1000 и выше, но 800 тоже ничего.

Вообще наверное можно проиграть vob и посмотреть его битрейт:
VIDEO:  MPEG2  720×576  (aspect 3)  25.000 fps  9800.0 kbps (1225.0 kbyte/s)
Но учитывая crop можно битрейт и понизить…

Crop рекомендуют
-vf crop=720:432:0:76,harddup,pp=lb,scale=-1:-2 -aspect 16:9

harddup – важен, он указывает передавать кодеру все фреймы, и таким образом звук не рассинхронизируется на выходе.
pp=lb : делает deinterlacing (вообще вопрос надо ли)
scale=-1:-10: -10 выбирает ближайшее меньшее кратное 16
-aspect 16:9 : относится к scale

У меня получилось так:
VF=”-vf crop=520:416:100:80,scale=-10:-1,harddup -aspect 16:9″
(широкоэкранность обрезается, но в результате имеем 736х416)
VO=”-ovc x264 -x264encopts bitrate=1000:subq=6:8x8dct:frameref=5:bframes=3:b_pyramid=normal:psnr:trellis=1:threads=auto”
#:pass=1
AO=”-nosound -of rawvideo”
PREVIEW=”-ss 10:10 -frames 500″
#pass1 (to file – for control)
mencoder $PREVIEW $AO $VO:pass=1:turbo=1 $VF -o $FILE.1.264 $FILE.
#pass2
mencoder $PREVIEW $AO $VO:pass=2 $VF -o $FILE.2.264 $FILE

Аудио можно оставить как есть в AAC

Потом все дорожки собираем в mkvmerge. К сожалению, в gentoo этот пакет остановился на старых версиях, поэтому собирать его нужно самостоятельно, причем вместо make используется rake (значит нужно еще и ruby ставить), для gui требуется Qt. Для меня оказалось проще скачать виндовую верчию и запустить там mmg.exe. В нем все и собрал.

ВНИМАНИЕ: во всех дорожках нужно отключать компрессию, иначе mplayer не понимает mkv!

В довесок оказалось, что аудиодорожки нужно сместить примерно на 1 секунду вперед, тогда звук попадает по месту. Титры тоже сместил, но на 300 миллисекунд. При сборке mencoder-ом такого не было, но там и дорожки дополнительные не подключались.

Еще заметил, что x264 жмет немного эффективней, как по времени, так и по размеру. Отчасти из-за использования фич процессора, отчасти из-за алгоритма. Однако точного сравнения в цифрах привести не могу.
Посмотрим как оно пойдет на китайском плеере…

Advertisements

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: