среда, 18 июля 2007 г.

Кодирование в mencoder

После появления более-менее нормального компьютера и как следствие - кучи фильмов на нем, появилось желание что-то перекодировать, что-то ужать ( например впихнуть пару двухслойных двд в один ;) ). Пока сидел под Windows, пользовался VirtualDub, кодировал в один проход с фиксированным качеством. Вроде все удобно, можно на ходу посмотреть что получается и т.п. Не нравилось одно - скорость кодирования, к тому же файлы по размеру получались великоваты. Через некоторое время друзья "подсадили" на mencoder и mplayer ;). Кодировал все еще в один проход, однако скорость получалась раза в 3 выше чем в VirtualDub. Покопался в интернете, понял что народ кодирует как минимум в два прохода. Подумал - а чем я хуже ;). Подсмотрел какие параметры обычно ставят, подкрутил под свои нужды. Перешел от указания фиксированного качества к фиксированному битрейту. Стали получаться более компактные файлы с нормальным качеством ( конечно, если с битрейтом не ошибался ;) ). Единственный минус - снова упала скорость кодирования (из-за некоторых параметров кодировщика и использования двух проходов).


Где скачать mplayer и mencoder ( под Windows идут в составе одного архива ):
Сайт разработчиков:
http://www.mplayerhq.hu/design7/dload.html
С нашего сервера:
http://support.mobigroup.ru/files/mplayer/
Репозиторий Debian:
deb http://www.debian-multimedia.org etch main

(!) Если работаете под Windows, не забудьте скачать там же набор кодеков.
(!) Под Windows установка не требуется, можно просто распаковать программу в отдельную папку и оттуда запускать.


При кодировании с фиксированным битрейтом cтарайтесь выбирать битрейт близкий к значению, которое получается при отсутствии ограничений на размер файла. Если ошибетесь в большую сторону, не пугайтесь - mencoder скорее всего не будет использовать весь битрейт, если фильм этого не требует. Некоторые из моих знакомых просто указывали битрейт 3000, а реальный получался меньше ;). Минус такого способа - непонятно какого размера получится файл.

Если вы хотите "влезть" в определенный размер, используйте памятку:
1 час (видео 800 кбит/с + аудио 128 кбит/с) примерно равен 400 Мб

Выбор битрейта видео:

Вообще, если будете часто что-то кодировать, то постепенно научитесь интуитивно выбрать битрейт, а для начала можно попробовать следующие значения для видео:
* Для обычных у двд размеров картинки 720x576 обычно достаточно 800-1500 кбит/с
* Для боевиков с большим количеством динамичных сцен ~2000 кбит/с
* Для аниме и мультфильмов обычно можно ставить битрейт процентов на 20 - 25 меньше, чем для фильма с теми же размерами картинки (потому что картинка чаще всего статичная, движения на экране мало)


Выбор битрейта звука

Битрейта 128 кбит/с хватает для большинства фильмов. Больший битрейт имеет смысл ставить для оперных фильмов. Если очень хочется сохранить звук (либо если он упорно расходится с видео - и такое иногда бывает если исходный файл разбит на несколько кусков) можно оставить звуковой поток без изменения - для этого вместо параметров "-oac mp3lame -lameopts cbr:br=$1" используйте "-oac copy"


Время необходимое на кодирование:

Пусть Т - длительность фильма.
Тогда для фильма размерами 720x576 на машине с процессором P4 3.0 GHz:
первый проход ~ 1.5 * T - 2.0 * T
второй проход ~ 1.0 * Т - 1.5 * T
итого ~ 2.5 * T - 3.5 * T
Естественно, если картинка меньше размером, то кодируется быстрее.

Двухпроходное кодирование в divx.

Команды для двухпроходного кодирования видео в divx/mp3

Параметры:
* $1 - битрейт звука
* $2 - битрейт видео
* $3 - название кодируемого файла

* Во время первого прохода собирается информация о каждом кадре фильма, звук не трогаем.
* Во время второго прохода эта информация используется для оптимизации кодирования кадров.

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

/usr/bin/mencoder "./$3" -ffourcc divx -o "./$3-pass-1.avi" -passlogfile "./$3-divx2pass.log" -nosound -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vb_strategy=2:vhq=4:mbd=2:trell:cbp:mv0:preme=2:vbitrate=$2:v4mv:vqmin=2:vqmax=9:mpeg_quant:vlelim=-3:vcelim=5:lumi_mask=0.01:dark_mask=0.01:p_mask=0.01:autoaspect
Второй проход:

/usr/bin/mencoder "./$3" -ffourcc divx -o "./$3-pass-2.avi" -passlogfile "./$3-divx2pass.log" -oac mp3lame -lameopts cbr:br=$1 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vb_strategy=2:vhq=4:mbd=2:trell:cbp:mv0:preme=2:vbitrate=$2:v4mv:vqmin=2:vqmax=9:mpeg_quant:vlelim=-3:vcelim=5:lumi_mask=0.01:dark_mask=0.01:p_mask=0.01:autoaspect

Краткое объяснение параметров:

* Эти параметры определяют какие "фишки" будут использоваться при обработке файла
vb_strategy=2:vhq=4:mbd=2:trell:cbp:mv0:preme=2:v4mv:mpeg_quant
* Эти влияют на то, насколько сильно будут "вырезаться" затемненные и засвеченные участки картинки. Значения больше 0.5 указывать не стоит, только в каких-нибудь специфических условиях, иначе будет вырезаться слишком много полутонов - "сожмутся" цвета близкие к черному и белому цвету
vlelim=-3:vcelim=5:lumi_mask=0.01:dark_mask=0.01:p_mask=0.01
* Минимальный и максимальный "размер квадратиков" ;)
vqmin=2:vqmax=9
* С этим параметром картинка будет меньше "сглаживаться". Например в h264 при таком же битрейте иногда не видно статичную мелкую сетку даже при двухпроходном кодировании.
mpeg_quant

Полезные фильтры:

* При кодировании чересстрочного фильма может помочь фильтр:
-vf pp=fd
* Фильтр, убирающий шум (лучше посмотреть что получится с этим фильтром и без него, т.к. иногда его применение приводит к ухудшению картинки):
-vf hqdn3d=4:3:5
* Масштабирование картинки (в данном случае размеры станут 640 на 480 (Ш х В)):
-vf scale=640:480

Что делать если звук в исходном файле в формате "Microsoft PCM":

Если формат звука в исходном файле "Microsoft PCM", mencoder может отказаться выполнять второй проход (в котором кодируется звук). Чтобы это преодолеть, нужно добавить следующие параметры:
-srate sound_rate -af resample
Значение sound_rate можно посмотреть в avidemux или любой другой программе показывающей информацию о файле.

Не пугайтесь, если сразу не получилось - в моем случае подсмотренное значение 44103 не помогло - пришлось вписать 44100.


Как увеличить скорость кодирования.

Если компьютер слабый, или просто нужно быстро что-то закодировать, попробуйте убрать пару-тройку из этих параметров:
vb_strategy=2:vhq=4:mbd=2:trell:cbp:mv0:preme=2:v4mv
Скорость может вырасти примерно в 2 - 4 раза. Однако будьте готовы к тому что качество картинки может ухудшиться, либо потребуется поставить бОльший битрейт для сохранения качества.




4 комментария:

Анонимный комментирует...

Здравия всем,

Надежная и проверенная [url=http://popplers.ru/]партнерка[/url] [b]Popplers.ru[/b] предлагает Вам сотрудничество на выгодных условиях. Мы покупаем ваш ру трафик по выгодным ценам. Владельцам сайтов, вебмагазинов и веб мастерам мы предоставляем выгодные условия, отзывчивую поддержку и проффесиональный подход в нелегком бизнесе рунета.
отличная возможность быстро заработать, выгодная рефферальная программа, направьте ваш ру трафик в нужное русло, в русло прибыли которое принесет вам [url=http://popplers.ru/]Партнерская программа[/url] [b]Popplers.ru[/b] . Вывод средств в WebMoney или PayPal, возможность срочных выплат в любой день недели, персональный подход к каждому адверту.

Наши расценки за 1000 уников:

DoorWays - 6у.е.
Popunder - 5у.е.
CJ - 5 у.е.
Clickunder - 4 у.е.

Ждем Вас в наших рядах!

Support: 498994074

Анонимный комментирует...

Всем привет!
Программа SoftHell PM-Bot (старое название HACSoft PM-Bot), предназначена для массовой рассылки персональных сообщений по форумам.
Возможности:
1. Поддерживает многие типы форумов:SMF, ExBB, IPB1, IPB2, IPB3, IPB2 MR, miniBB, phpBB2, PunBB, vBulletin2, vBulletin 3(по 5 сообщений за раз), vBulletin3 MR(по 5 сообщений за раз)
2. Настройки к форумам описываются в специальных ini-файлах, т.е. при желании софт возможно настроить и на другие форумы.
3. Рассылка от нескольких юзеров одновременно (обход антифлуда).
4. Работа через прокси-сервер.
5. Система вариаций
6. Гененирование случайного числа, автоподстановка имени получателя и отправителя в каждое письмо и многое другое...


Программа обновилась до версии 2.1, не поддавайтесь на уловки мошенников со взломанной, устаревшей и не работающей версией программы.
Стоимость 4500 руб. При необходимости проведение сделки через гаранта.
Контакты: icq 574444591
Сайт: http://softhell.ru
Жду всех а аське.

Анонимный комментирует...

Как говорилось на Seexi.net Добрый день!
Разбирала вчера шкаф, взяла в толк, что много вещей уже не буду носить. Выбрасывать жалко. Хотеловь бы реально помочь людям, отдать в многодетную семью, к примеру, но боюсь попасть на пьяницаов, коие все продадут. В церковь не буду носить- у нас возле нее цыгане ходят, думаю что не дойдет до нужных рук.
Заранее спасибо

Анонимный комментирует...

секс знакомства на mail Трансексуалки на марксистской интим услуги тверь секс знакомства ростова topic index секс знакомства на хорошем сайте в рязани шлюхи в гатчине секс знакомства с толстыми женщинами секс на ночь проститутки выезд бутово сайты секс знакомств екатеринбург проститутки Рязани проститутки г Ноябрьск гермофродиты секс

секс знакомства с номерами телефона в спб