воскресенье, 7 июня 2009 г.

Размер картинки при кодировании DVD с помощью mencoder

Есть домашняя коллекция фильмов в mpeg4. DVD диски принципиально не покупаю - за лицензию платить как то очень дохрена. Смотреть что-то другое, как у нас любят продавать по 10 фильмов на диске - это не для меня. Поэтому уже несколько лет граблю позаимствованные диски у знакомых, иногда сливаю video_ts с винтов, которые проходят мимо меня.

Кодирую 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

DescriptionEncoding optionsspeed (in fps)Relative PSNR loss (in dB)
Very high qualitychroma_opt:vhq=4:bvhq=1:quant_type=mpeg16fps0dB
High qualityvhq=2:bvhq=1:chroma_opt:quant_type=mpeg18fps-0.1dB
Fastturbo:vhq=028fps-0.69dB
Realtimeturbo:nochroma_me:notrellis:max_bframes=0:vhq=038fps-1.48dB

пятница, 5 июня 2009 г.

offline files и размер c:\windows\csc

Поблема: на win xp при включенном кэшировании серверных ресурсов папка %windir%\csc\ начинает расти. При размере системного раздела в 10 гигов через пару дней кончается место и юзеры начинают плакать. Еще есть подозрение что комп начинает подтормаживать, особенно заметно при работе с перенаправленными на серверную шару документами, рабочим столом, application data.
Иногда проскакивают такие ошибки:
------------------
Тип события: Ошибка
Источник события: Offline Files
Категория события: Отсутствует
Код события: 5
Дата: 02.06.2009
Время: 8:50:05
Пользователь: Н/Д
Компьютер: UF77
Описание:
Часть кэша автономных файлов повреждена. Перезагрузите компьютер для очистки кэша.
---------------------
Чтоб победить - нужно очистить кэш автономных файлов. Как это делать в окошках - везде написано. А бегать лень, через vnc тоже влом, так как нужно зайти под админом - долго.

Поэтому
1) создаем файл formatcache.reg:
--------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\NetCache]
"FormatDatabase"=dword:00000001
--------------
2) Далее: psexec -u domain/admin \\host regedit /s \\server\share\formatcache.reg

3) После перезагрузки кэш очистится и этот параметр из реестра автоматически удалится.

источник: микрософт ком

Групповая политика и event id 1202

Проблема: не применяется групповая политика на Windows XP SP2.
В логах такое сообщение:
-------------------------------------
Тип события: Предупреждение
Источник события: SceCli
Категория события: Отсутствует
Код события: 1202
Дата: 01.06.2009
Время: 10:15:49
Пользователь: Н/Д
Компьютер: UF77
Описание:
Выполнено распространение политики безопасности с предупреждением. 0x4b8 : Ошибка расширенного типа.

Для диагностики этого события выполните вход с неадминистративной учетной записью и на http://support.microsoft.com выполните поиск раздела "Troubleshooting Event 1202's" ("Диагностика события 1202").
-------------------------------------
Этот хитрый совет в конце - вообще выносит мозг.

После долгих блужданий по сети набрел на рассказ одного человека - ему помогло удаление файла %windir%\security\database\secedit.sdb

Собственно, респект ему. Вылечил таким методом машин 6.
Скорее всего файлик повреждается, что не дает политикам применяться. После удаления файла и перезагрузки - он создается заново, и все работает.