На самом деле, вариантов — масса, т.к. независимые тестирования зимой 2005—2006 года установили, что лучшим из лучших в области сжатия видео теперь является x264, на полволоска опередивший чемпиона предыдущих сравнений — NeroDigital AVC (by Ateme).
--EDIT
Сейчас x264 уже не лучший по качеству, но входит в первую тройку лучших. При этом он может довольно ощутимо проигрывать по скорости другим H.264-кодэкам (в том числе тем, которые превосходят его по качеству). Но из Free Software-кодэков x264 по-прежнему лучший. В конце месяца выложу свежие данные по этой теме.
--EDIT
И вот тут-то возможности и полезли косяком — ибо ND AVC был доступен всего в 1 форме: в виде небезызвестного Nero Recode 2, и никаким другим образом его использовать было нельзя (кстати, до сих пор точно не известно, какя именно версия кодэка Ateme используется в NeroDigital AVC).
С другой стороны, x264 — OpenSource-кодэк, и может быть использован каждой собакой, если она хоть что-то понимает в программировании или хотя бы в CLI. Поэтому в кратчайшие сроки стала появляться масса приложений для перекодировки видео, обладающих поддержкой x264 (точнее, сначала они просто были и поддерживали другие кодэки, потом стали поддерживать x264 на ранних стадиях его развития, а потом уже мы обратили на них внимание).
Настоящая статья более-менее подробно описывает одно из таких приложений —
StaxRip
Строго говоря, StaxRip — это не приложение, а frontend — красивая обёртка вокруг какого-то другого приложения, которое не обладает графическим интерфейсом, либо очень сложно настраивается/используется. В данном случае это не просто обёртка — это связка между разными приложениями, каждое из которых делает свою часть работы в общем процессе. И сам StaxRip, и входящие в него приложения — все OpenSource, так что покупать ничего не придётся
Итак, нам понадобятся:
StaxRip ( http://www.planetdvb...taxrip/download )
SubRip v1.50 beta 4b http://lrn.no-ip.inf..._beta_4b_bin.7z [ опционально ]
TTXT Tools v0.3 http://lrn.no-ip.inf...v0.3_src_bin.7z [ опционально ]
ChapterXtractor ( http://files.divx-di...ctor_v0.962.zip, оффициальная страница автора в дауне )
Вообще, как уже упоминалось выше, в StaxRip входит туева хуча всяких приложений — но их он скачает из интернета сам.
Итак, для начала следует скачать StaxRip :

Нужно его куда-нибудь самостоятельно распаковать:

--EDIT-—
Последняя версия на данный момент — 1.0.0.1
--EDIT-—
Теперь запустите StaxRip. Зайдите в меню Tools->External Applications. Здесь представлен набор всех приложений, используемых StaxRip'ом.
Чтобы скачать соответствующую софтину, нужно просто выбрать её в меню и нажать Download. Нам 100% понадобятся:
DGDecode — для декодирования DVD в DGIndex
AviSynth — в качестве первичного обработчика, скрипта-склейки
NeroAACenc — для сжатия звука в AAC
BeSweet — для сжатия звука в AAC
DGIndex — для анализа DVD и подготовки d2v-проекта
MP4Box — для упаковки всего накодированного в 1 файл
x264 — для сжатия видео в x264
Decomb — для деинтэрлэйса
Остальное понадобится только в том случае, если вы решите производить какие-то дополнительные телодвижения, либо кодировать в другой формат/контейнер. StaxRip, возможно, будет ругаться, что у него нету DivX'а — не слушайте, он нам не понадобится. Просто по умолчанию проект настроен на DivX.
--EDIT-—
StaxRip обязательно будет ругаться на неправильную версию NeroAACenc. Дело в том, что на сайте Nero всегда выложена последняя версия, всегда с одним и тем же именем файла, в то время как StaxRip знает только одну. Игнорируйте предупреждения, а позже (уже во время работы в самой программе) скажите ему Use unsupported, don't ask again.
Также StaxRip будет ругаться на любую новую версию программ — например, если вы скачаете обновлённые фильтры, типа UnDot.
--EDIT-—
Итак, перед вами Проект По Умолчанию. Он настроен не так, как нам нужно. Поэтому мы его слегка перенастроим и сохраним, чтобы впредь этим не заниматься каждый раз.

Для начала выберем в качестве видео кодэка x264. Profiles->Encoder->x264->More->HQ-Slower. (можно — HQ-Slowest, если компьютер мощный)

Настройте x264 — «Codec Configuration"->
StaxRip->Aimed Quality: 100
Input/Output->Threads:2 (для обладателей двухядерников или процессоров с HyperThreading).
--EDIT-—
В новой версии стоит Threads:0, что означает автоматическое определение количества потоков. В принципе, для безопасности лучше поставить 2 или 4 (в зависимости от числа процессоров в компьютере), чем полагаться на детектор.
--EDIT-—
Остальные настройки более-менее вменяемые.
Потом выберем в качестве контейнера MP4 — Profiles->Container->MP4

Теперь выберем в качетсве аудио-кодэка AAC/HE 5.1 VBR 200-250 kbps — клик на кнопку с изображением чёрного треугольника справа от Audio Track 1, AAC, HE 5.1 VBR 200-250 kbps
--EDIT-—
Если звук стерео — то конечно выбираем просто AAC/HE VBR 50-70 kbps
--EDIT-—

В этом профиле указан неправильный битрейт. Необходимо подправить профиль — в том же меню выбрать «Edit…»

В профиле прописано «-vbr 0.4». Это ошибка, битрэйту 200-250 соответствует «-vbr 0.3». Необходимо внести это исправление и сохранить профиль (под новым именем). Я не буду описывать, как это делать — менеджмент профилей в StaxRip слегка запутанный, разберётесь сами. Главное, чтобы после загрузки профиля (через всё то же контекстное меню, выпадающее из кнопки) окно редактирования загруженного профиля показывало правильную информацию — значит профиль отредактирован верно. Можно не редактировать профиль — тогда придётся редактировать настройки аудио для каждой дорожки после каждой загрузки этого профиля. Битрэйт 225 — это чисто косметическое значение, оно используется для вычислений, но на деле примерно так и получится (StaxRip автоматически подправит значение битрэйта видео после того, как выянится, что битрэйт аудио несколько отклонился от расчётного)
Для битрэйта ~ 150 kbps используйте «-vbr 0.2». Я в последнее время использую «-vbr 0.27»
По умолчанию в проекте подразумевается только один аудиопоток (второй выставлен в No Audio). Скорее всего вы будете делать 2 аудиопотока, поэтому выставьте второй тоже в 5.1 AAC 200-250 kbps
Стоит отметить, что при использовании NeroAACenc нету разницы между HE-AAC и LC-AAC. NeroAACenc автоматически использует HE-профили, если видит в этом необходимость, и StaxRip не заставляет его эти профили использовать. Поэтому закодированный звук может быть HE (или даже HEv2), а может и не быть. Однако в конце, во время мультиплексирования, MP4Box'у лучше, для верности, сообщить, что AAC всё-таки HE, поэтому в StaxRip следует везде использовать HE-AAC.
--EDIT
Можно также использовать 2-проходовое кодирование AAC. Это потребует чуть больше времени и гораздо больше (во время кодирования) места на жёстком диске (для длинных фильмов — более чем на 4 гигабайт больше обычного), и для его использования нужно будет вручную создать новый профиль (или два профиля) в StaxRip, но зато размер аудио-файла можно предсказать (указать) заранее, и качество получается выше. Вот два профиля (для стерео и для 5.1):
"%application:BeSweet%" —core( —input "%input%" —output "%output%_tmpwav.wav" —2ch —logfile "%output%_tmpwav.wav.log" ) —azid( —c normal —L —3db ) —ota( —d %delay% —g max ) "%application:NeroAACEnc%" —2pass —br 98304 —ignorelength —if "%output%_tmpwav.wav" —of "%output%" cmd /C del "%output%_tmpwav.wav"
"%application:BeSweet%" —core( —input "%input%" —output "%output%_tmpwav.wav" —6chwav —logfile "%output%_tmpwav.wav.log" ) —azid( —c normal —L —3db ) —ota( —d %delay% —g max ) "%application:NeroAACEnc%" —2pass —br 229376 —ignorelength —if "%output%_tmpwav.wav" —of "%output%" cmd /C del "%output%_tmpwav.wav"
с битрэйтом соответственно 98 и 228 кбит/c.
Вместо прямого кодирования через besweet, в этом профиле сначала через besweet аудио декодируется в wav, потом wav кодируется в aac через neroaacenc в 2-проходном режиме (при прямом кодировании из besweet через stdin двухпроходовое кодирование невозможно), а потом wav-файл удаляется.
--EDIT
Теперь следует настроить сам StaxRip:

А потом и настройки проекта:

Для удобства создайте новый пункт меню «Размер» для 1400 MB: (или лучше 1399 — StaxRip не учитывает размер субтитров, а ведь они тоже что-то весят! Да и кодэк может не попасть в нужный размер)

http://mynewage.ru/uploads/img-2270-Create_New_Menuitem.png
http://mynewage.ru/uploads/img-2271-Set_Up_New_Menuitem.png
http://mynewage.ru/uploads/img-2272-Drag_New_Menuitem_To_Position.png
Удостоверьтесь, что все остальные настройки выставлены так, как на рисунке:
--EDIT-—
Я больше не рекоммендую использовать какой бы то ни было Resize-фильтр. Если размер видео не укладывается в степень четырёх — лучше прибегнуть к Crop'у. Resize следует использовать только если нужно сделать некачественный рип с уменьшенным разрешением. Ну, или если исходный DVD — анаморфный (нужно сжать с 720x576 до 720x400)
--EDIT2-—
На самом деле, для анаморфных источников также можно прибегнуть к кодированию Display Aspect Ratio в контэйнер. Тогда при проигрывании проигрыватель сам будет менять размер видео. Для анаморфного видео это обычно выражается в растягивании в ширину, поэтому картинка при проигрывании DVD кажется такой большой. Вычисление нужного соотношения требует некоторых навыков. Если интересно — почитайте doom9. Соотношение можно указать при микшировании в mp4box.
--EDIT2-—
--EDIT-—
http://mynewage.ru/uploads/img-2273-Verify_Other_Settings.png
Теперь самое время сохранить проект по умолчанию — File->Save project as Template->DVD.rip
http://mynewage.ru/uploads/img-2274-Save_Default_Project.png
И перейти собственно к рипу! Итак, откройте DVD: кнопка около графы Source, Open Files, Add — и добавляйте файлы.
http://mynewage.ru/uploads/img-2275-Open_Files.png
http://mynewage.ru/uploads/img-2249-Add_files.png
Для примера я взял фильм «Че Гевара : Записки мотоциклиста».
При выборе файлов следует включить режим Details, чтобы видеть размеры файлов. Нас интересует кучка VOB'ов размером в 1 гиг. У них у всех один и тот же номер (5). Поэтому мы добавляем их + ещё один, меньше гига, но с тем же номером. Очень маленький VOB с индексом 0 добавлять нельзя ни в коем случае.
Остальные секции — это реклама, трейлеры, заставки. Нас они не интересуют (ну, разве что на DVD содержится сразу два фильма…). Ещё есть полторагиговая секция в конце — это на проверку оказался дополнительный видеоматериал (документальный фильм о жизни Че Гевары). Его в любом случае придётся рипать отдельно (точно таким же образом, что и основной фильм), поэтому сейчас его не следует выбирать (иначе он приклеится к концу основного фильма, лучше его иметь отдельным файлом).
http://mynewage.ru/uploads/img-2276-Select_Files.png
Подтвердите выбор.
http://mynewage.ru/uploads/img-2277-OK_To_Selected_Files.png
DGIndex начнёт анализ файлов. Это займёт небольшой период времени. Пока он анализирует, можно приметить некоторые детали о фильме — количество звуковых дорожек (и то, во что они закодированы), разрешение, FPS. Конечно, DGIndex всё это отрапортует StaxRip'у и тот сделает всё как надо — но нам тоже знать не мешает.
--EDIT-—
В новой версии окно DGIndex НЕ отображается, оно минимизировано. Да и раньше-то оно было чисто для познавательных целей…
--EDIT-—
http://mynewage.ru/uploads/img-3464-Wait_Until_Analyse_Is_Over_And_Notice_Parameters.png
AutoCrop сработает автоматически и отрежет у фильма края. Size и Crop слева вверху показывают размеры до и после обрезания. Установите разрешение (Width и Height, путём перетаскивания бегунка) такое, чтобы Zoom (снизу от центра) был 100 (точнее, его первое число; второе число всегда должно быть меньше 100, разве что только фильм квадратный, почти как сейчас). Параметр Aspect Ratio указывает на отношение сторон. Проценты в скобках показывают, насколько сильно обрезка и изменение разрешения изменяют это соотношение (в данном случае — на 0.99%). Оно не должно отклонятся больше, чем на 2%. Если это так — значит попробуйте другое разрешение.
Также ориентируйтесь на то, чтобы Width (ширина кадра) была такой же, как и указанная в Crop. Это означает, что вы не сжимаете кадр по горизонтали. Ну а по вертикали размер почти всегда полуается меньше. Во-первых — потому что в анамо..анамопо…нет…короче, в видео с соотношением сторон 16:9 на самом деле кадр квадратный (по карайней мере все плэеры именно так утверждают), и до нужного размера он растягивается/сжимается уже автоматически при проигрывании. Естественно, нам такого не надо, мы всё сожмём сразу — и в таком виде и закодируем. Во-вторых — часто по вертикали отрезаются чёрные полосы, что сильно уменьшает вертикальный размер кадра.
--EDIT-—
Я больше НЕ рекоммендую отрезать края. Разве что если у фильма есть гигантские поля сверху и снизу. Если размер чёрных краёв не превышает 4-7 пикселей (на каждую из сторон), то лучше их оставить.
--EDIT2-—
Тестирование подтвердило: обрезание краёв улучшает сжимаемость, уменьшает потребление памяти при кодировании и увеличивает скорость кодирования. Поэтому если есть видео с большими чёрными полями (больше 16 пикселей) — можно отрезать. Это особенно важно для HD-источников.
--EDIT2-—
--EDIT-—
Обязательно нажмите View->Preview (или F5), чтобы проверить, как будет выглядеть фильм.
Если при Preview видео получается вытянутое или сжатое по вертикали, попробуйте включить/выключить Anamorphic.
В данном примере я не добавил в проект по умолчанию вторую аудиодорожку. Теперь придётся это делать. (красными стрелками помечен тот факт, что её нету; зелёной — кнопка, куда надо жать и выбирать Select Source, указывая файл для второй дорожки). Заметьте, что первая дорожка — русская, а вторая — на другом языке. Всегда делайте так, иначе по умолчанию фильм будет играться на нерусском языке, а некоторые люди так и не научились до сих пор переключать аудиопотоки :-/
http://mynewage.ru/uploads/img-2279-Verify_Resolution_And_Add_Track_2.png
Теперь обе дорожки добавлены. Приметьте, как изменяется битрэйт справа вверху при добавлении дорожки или изменении её битрэйта. Помните, что и обе аудио дорожки и видео дорожка должны умещаться в 1 файл в 1400 мегабайт, поэтому изменение качества аудио повлечёт за собой изменение видео, но не наоборот (изменение качества видео просто автоматически меняет размер файла). Заметьте, что изменение разрешения на битрэйт видео не влияет. Битрэйт видео считается как (РазмерФайла*8 — СуммарныйБитрэйтАудио), в то время как битрэйт аудио просто указывается в профиле.
Всё готово для проверки на сжимаемость. Жмите Run Compressibility Check
--EDIT-—
Я больше не применяю Compressibility Check. Всё равно даже если он даст верный результат — сделать-то ничего нельзя. Мы ограничены размером — 700/1400/2100, а хороший битрэйт для 720x400 для x264 известен — 1400 килобит, по нему и ориентируемся.
--EDIT-—
http://mynewage.ru/uploads/img-2280-Ready_to_Check.png
Пойдёт проверка на сжимаемость. Это займёт какое-то небольшое время. Проценты показывают, насколько проверка завершена. FPS — скорость проверки. ETA — время до окончания.
http://mynewage.ru/uploads/img-2281-Checking.png
Проверка позволит StaxRip'у устновить некоторую зависимость между разрешением и битрэйтом. Эта зависимость определяется как «Качество» (Quality). Смысл её в том, что если на большое разрешение дать слишком мало битрэйта, то получится некачественная картинка. И наоборот — если дать на маленькое разрешение слишком много битрэйта, то качество будет максимальным — но зачастую битрэйта будет потрачено слишком много.
StaxRip автоматически устанавливает Quality = 70 (или 100, вроде-бы в самом начале мы поменяли на 100), и исходя из этого меняет размер файла. Но нам-то нужно 1400 мег! Так что меняйте всё обратно.
http://mynewage.ru/uploads/img-2282-Size_Changed_After_Check.png
Теперь внимательно посмотрите на разрешение и ещё раз сверьте Size, Crop, Zoom, Aspect Ratio и собственно Width и Height. Заметьте, что изменение разрешения (как и изменение размеров файла) меняет параметр Quality: чем больше разрешение, тем меньше Quality. Наша задача — добиться Quality = 100 +— 5%. Т.е. 95 или 105 — вполне сойдёт. На самом деле, сойдёт даже 110 и 120, потому что выбора всё равно нет: увеличивать разрешение уже некуда (подразумевается, что вы с самого начала поставили разрешение исходя из Crop и Zoom, и пляшете уже от него), а даже если разблокировать более высокие разрешения, то качества это никак не прибавит; уменьшать размер файла тоже нельзя — нам же надо ровно на 1400 сжать. Исключение — когда качество совсем уж высокое (130-140). В этом случае можно подумать о том, чтобы сжать фильм на 700 MB вместо 1400. Но тогда придётся либо довольствоваться качеством меньше 100% (скорее всего так и будет), либо порезать разрешение (что тоже восторга не вызывает).
Качество 100% не означает, что фильм будет пережат совсем без потерь (какие-то потери неизбежно появляются из-за рекомпрессии + кодэк может добавлять артефакты), но это наилучший вариант, и потери не будут заметны.
Если вы не уверены в том, как вы настроили проект (например — нужен ли deinterlace, и какой именно (вообще, это и так видно в Preview); насколько сильный deblocking следует применить и т.д.), то следует рипнуть на пробу небольшой кусок фильма. Чтобы это сделать, воспользуйтесь функцией Cut. Она доступна из окна Preview; просто встаньте в начало нужного куска, нажмите «[», встаньте на конец и нажмите «]» — рипнут будет только выделенный кусок (можно выделить несколько кусков). Перед тем, как это сделать, запомните битрэйт видео! После того, как вы указали нужный отрезок фильма (5000—10000 кадров, не больше), следует подкорректировать битрэйт на тот, который был раньше — иначе весь смысл потеряется. Также для тестирования вам не понадобится звук — поэтому следует выставить No Audio для обеих дорожек и очистить поля для путей к аудио-файлам. После этого кодируйте фильм как обычно (правда, кодирование пройдёт заметно быстрее — где-то раза в 2 медленнее, чем Compressibility check, на мой взгляд), а в конце посмотрите на результат и подкорректируйте настройки, если надо. И не забудьте перед продолжением рипанья вернуть всё обратно, а то опять будете рипать маленький кусок фильма
--EDIT-—
Про Deinterlace.
Если фильм интерлэйснутый, то лучше всего применить фильтр Telecide().
Для этого надо добавить (или включить, если уже добавлен, но не включён) фильтр Field->IVTC. потом такнуть его правой кнопкой мыши и выбрать Edit.
По умолчанию он выглядит так:
Telecide(guide=1).Decimate()
О том, как настраивать Telecide() — читайте http://avisynth.org....rencemanual.htm и http://avisynth.org....ombtutorial.htm
Вот пример перенастроенного Telecide():
Telecide(post=2,dthresh=0,vthresh=60,hints=true,back=1)
Использовать или не использовать Decimate — дело хозяйское.
--EDIT-—
Теперь самое время подумать о прибамбасах. Ткните Container Configuration.
http://mynewage.ru/uploads/img-2283-Ready_to_Encode.png
На самом деле, всё, что говорилось до сих пор, никак не учитывало то, какой контейнер будет в итоге. Поэтому на этом этапе можно (скачав соответствующее приложение-компонент и соответствующим образом настроив проект по Умолчанию) использовать, скажем MKV — разницы не будет. Однако я приведу описание для mp4 (о том, что лучше — mp4 или mkv, это тема для отдельной статьи).
В настройках контейнера можно добавить субитиры и чаптеры. Вопрос: а где их взять? Ответ: рипнуть вручную. К сожалению, сейчас StaxRip не содержит никаких средств автоматического рипа этого рода информации. Рипнуть chapter'ы легко: воспользуйтесь ChapterXtractor'ом. Рипнуть субтитры также легко: используйте SubRip. Об этих двух приложениях я расскажу ниже.
http://mynewage.ru/uploads/img-2284-Before_Encoding_Add_Text_Info.png
Как только будете готовы, жмите несколько раз кнопку Next в главном окне StaxRip'а (на самом деле, мы должны были периодически нажимать её в течение всей настройки, но нам это особо не нужно; в частности, после предпоследнего нажатия StaxRip начнёт ругаться на качество (он считает, что 100% — это слишком хорошо для рипа)), чтобы начать процесс сжатия.
--EDIT-—
В новой версии введён режим job-management. Нажатие Next не запустит кодирование, а просто добавит работу в список. После этого можно добавлять ещё работы, или запустить эту единственную работу, нажав Start.
--EDIT-—
Сначала будет запущен BeSweet (столько раз, сколько у вас аудиодорожек). Сжатие аудио в AAC на моей машине идёт чуть быстрее реального времени (1.х секунд фильма в секунду). Потом запустится x264 — тоже 2 раза (первый проход и второй проход). Первый проход, благодаря оптимальным настройкам, пройдёт относительно быстро. Второй — гораздо медленнее. После них будет запущен MP4Box, который сведёт всё, что было накодировано, в 1 файл. Всё это будет произведено автоматически, и после нажатия кнопки Next можно выкинуть рипанье из головы.
А теперь — про SubRip и ChapterXtractor.
Запустите ChapterXtractor и откройте IFO
http://mynewage.ru/uploads/img-2285-ChapterXtractor.png
Припомните, какой номер был у VOB'ов, которые вы добавляли в StaxRip. В данном случае это были VTS_05_x, поэтому мы берём VTS_05_0.IFO (его размер также отличается от других, хотя подсказка из этого хреновая).
http://mynewage.ru/uploads/img-2286-ChapterXtractor_Select_IFO.png
Проверьте, какие чапреты программа посчитала, а какие — нет. Обычно слишком короткие чаптеры не считаются. В этом случае надо насильно поставить соовтетствующую галочку. А можно и не трогать — в конце концов, действительно, зачем нужен чаптер короче 5 минут? По опыту могу сказать, что в 99% случаев ChapterXtractor всё сам делает правильно, ничего трогать не надо.
http://mynewage.ru/uploads/img-2287-ChapterXtractor_Verify_Chapters.png
Выберите формат OGG.
Теперь внимательно посмотрите на меню выбора Chapter'ов в самом DVD. Если там есть подпись для каждого чаптера — то замените в ChapterXtractor'е слова «Chapter 1», «Chapter 2» и т.д. этими подписями.
Внимание! Делайте этого, не переключаясь на другие закладки в ChapterXtractor! Если вы переключитесь, то все сделанные вами изменения будут сброшены (точнее, текст будет просто сгенерирован заного).
После этого сохраните файл. Если вы знаете, что это такое — то убедитесь, что у файла ANSI-кодировка (до недавнего времени StaxRip неправильным образом конвертировал chapter-файлы в Unicode, сейчас это исправлено; файл должен быть всё-таки в ANSI).
http://mynewage.ru/uploads/img-2569-ChapterXtractor_Name_Chapters.jpg
http://mynewage.ru/uploads/img-2288-ChapterXtractor_Save_In_OGG_Format.png
Теперь про SubRip.
Необходимо использовать версию 1.50 beta4b — причём подлинную beta4b, а не всякое фуфло, которое можно скачать на некоторых сайтах. Подлинная beta4b отличается тем, что может выводить субтитры в формате GPAC TTXT. Откуда я это знаю? Потому что я сам модифицировал beta4a в beta4b! Поэтому ссылка в начале статьи ведёт на мой сервер — там лежит 100% правильная версия
При использовании beta4b SubRip будет рипать субтитры в TTXT автоматически, и все нужные настройки также будут выставлены автоматически.
При использовании beta4a следует самому выбрать формат вывода srt и установить необходимые настройки.
Запустить SubRip и ткнуть кнопку OpenVob(s) (или выбрать в меню), после чего в появившемся окне ткнуть Open IFO.
http://mynewage.ru/uploads/img-2290-SubRip_OpenIFO.png
И выбрать тот же IFO, что и в ChapterXtractor'е
http://mynewage.ru/uploads/img-2291-SubRip_Select_IFO.png
Теперь надо проверить то, что он нашаманил. А именно — список vob'ов в окошке, Language stream (если в DVD более 1 набора субтитров, то придётся отдельно рипать каждый из них, и какой именно — выбирается тут) и матрицу. Матрица — это данные для распознавания символов. Есть возможность подгружать уже созданные матрицы, однако её полезность лично для меня неочевидна: в разных DVD используются разные шрифты, вследствие чего матрица от одного не подходит для распознавания другого. Я пробовал делать кумулятивную матрицу, добавляя в неё данные о всё новых и новых DVD, но положительного эффекта не заметил. Поэтому New matrix вполне сойдёт.
--EDIT-—
Можно ткнуть в кнопку с синей фиговиной (до сих пор не понимаю, что там нарисовано), чтобы выбрать выходной формат субтитров. Следует выбирать либо ttxt, либо srt. Лучше — ttxt. Для ttxt следует выбрать шрифт Arial Unicode MS или хотя бы Arial или хотя бы Lucida Sans Unicode. Размер шрифта — 22. Нежирный и не курсивный. Цвет — как на DVD (соответствующая галочка должна быть помечена). Галочка про ' тоже должна быть помечена.
--EDIT-—
Тыкайте Start.
http://mynewage.ru/uploads/img-2292-SubRip_Verify_Settings_And_Start.png
SubRip будет искать цветовые области и спрашивать вас, что они означают. Один раз научив его распознавать заглавную букву «Э», вы обеспечите ему возможность везде узнавать её в дальнейшем. Напишите букву, показанную на экране, в строчке и нажмите OK. Если текст жирный или наклонный — поставьте галочку в чекбоксах справа.
http://mynewage.ru/uploads/img-2293-SubRip_Fill_Matrix_With_Letters.png
Но не всё так просто. Вот пример, когда две области срослись вместе, и SubRip воспринял их как один большой и неизвестный символ. Разделить их никак нельзя (делать это вручную бессмысленно, а алгоритма для автоматизации такого процесса в распоряжении общественности пока нет), поэтому просто введите две буквы.
http://mynewage.ru/uploads/img-2294-SubRip_Double_Letter.png
Иногда SubRip берёт букву неполностью (из-за разрыва области). В этом случае надо ткнуть кнопку «>>», чтобы добавить к области следующую область.
http://mynewage.ru/uploads/img-2295-SubRip_Incomplete_Letter.png
Вот теперь это похоже на букву «ы»
--EDIT-—
Вообще, с буквой «Ы» просто беда. Нет никакого надёжного алгоритмического способа отличить «Ы» от «Ь», т.к. SubRip анализирует текст слева направо и сначала встречает букву «Ь», а потом — какой-то неизвестный символ «|» (палку от «Ы»).
Обойти эту проблему можно двумя путями:
1) Уследить, чтобы «Ы» попала в матрицу раньше «Ь». Тогда «Ы» везде будет распознаваться правильно — но при этом сочатания мягкого знака с другими буквами будут восприняты как неизвестные символы (например — «ЬЯ»).
2) Занести «Ь» в матрицу раньше, а «палку от Ы» описать как букву L (строчную — для строчной «ы» и прописную — для заглавной «Ы»). Потом, когда субтитры буту отрипаны, открыть получившийся файл и заменить все сочетания «ьl» на «ы» и «ЬL» на «Ы». Убогий способ, но зато без особых проблем. Плохо работает в TTXT, т.к. там приходится заменять не буквы, а их коды (ьl на ы и ЬL на Ы). Может быть, в будущем я добавлю в SubRip дополнительную post-OCR коррекцию для русского языка…
--EDIT2-—
Я так и сделал. Когда субтитры будут отрипаны до конца (индикатор на 100%), в окне вывода надо выбрать меню Post-OCR Correction, там есть специальный пункт для буквы «Ы». Кроме него ещё следует выбрать пункт для коррекции пунктуации (.?->? и т.д.), остальные отключить.
--EDIT2-—
--EDIT-—
http://mynewage.ru/uploads/img-2296-SubRip_Complete_Letter.png
Бывают и тройные буквы. Делаем то же, что и с двойными.
http://mynewage.ru/uploads/img-2297-SubRip_Triple_Letter.png
Когда индикатор наверху достигнет 100%, следует сохранить субтитры (программа предложит сохранить их в Unicode — соглашайтесь, если рипаете в SRT. Для TTXT лучше отказаться и сохранить в Latin1. В TTXT всё равно не должно быть unicode-символов).
Внимание! Обнаружилось, что mp4box отлично понимает субтитры в том виде, в котором их сохраняет SubRip (т.н. «Unicode"). Однако, русские субтитры являются исключением. Файл с русскими субтитрами следует открыть в любом нормальном текстовом редакторе (Блокнот подойдёт) и пересохранить в UTF-8! Это справедливо для SRT. Для TTXT ничего пересохранять не надо
http://mynewage.ru/uploads/img-2298-SubRip_Save_Subtitles.png
Можете сохранить матрицу, если думаете, что она пригодится.
http://mynewage.ru/uploads/img-2299-SubRip_Save_Matrix.png
К сожалению, в некоторых фильмах (пример — DVD «Мужской сезон") плохие субтитры (с прерывистыми и смазанными символами) и SubRip их практически не способен распознать (возможно, я просто не умею его настраивать…), но обычно всё в порядке.
--EDIT
Если рип субтитров шёл в ttxt, и именно последней версией SubRip'а с моими модификациями, то информация о позиции субтитров будет также записана в ttxt. Это имеет некоторые печальные последствия. Одно из них — информация записана для исходного разрешения видео (обычно это 720x576), в то время как в готовом рипе видео может быть другого размера (обычно — 720x400, для анаморфной картинки). В результате субтитры "уезжают» куда-то вниз, за пределы кадра, и увидеть их можно только включив режим декодирования субтитров plain text (если он вообще есть). Чтобы решить эту проблему, я создал инструмент ttxt_resize из набора ttxt_tools. Он работает из командной строки примерно так:
ttxt_resize.exe —-ifile russian.ttxt —-ofile russian.fix.ttxt —-newsize 100 69.45
где russian.ttxt и russian.fix.ttxt — гипотетические исходный и результирующий файлы, а 100 и 69.45 — приер коэффициентов изменения размера (в процентах). 100 означает, что размер по горизонтали останется без изменений, а 69.45 означает, что размер по вертикали уменьшится до 69.45% от оригинального (что соответствует переходу из 576 в 400). Узнать нужные коэффициенты можно в StaxRip'е, под бегунком для изменения размера, там показывается Zoom. Он не точен, но для сельской местности сойдёт.
В наборе ttxt_tools есть и другие инструменты — для сдвига времени и для разрезки субтитров.
В качестве побочного эффекта все инструменты из ttxt_tools перекодируют субтитры из escape-формы utf-8 в обычную (мульти-байтовую). Субтитрам это не вредит никак, но может напугать неопытного пользователя. На самом деле так даже лучше, в такой форме их легче редактировать, если есть редактор с поддержкой UTF-8.
--EDIT
Вернёмся к фильму.
В данном примере я допустил серьёзную ошибку (о чём я узнал только на следующий день), оставив Deblocking —2 —2. Дело в том, что фильм, который я выбрал в качестве тестового примера, оказался в довольно посредственном качестве — с сильной пикселизацией. Для компенсации этого DVD был весьма размытым. x264, следуя установкам д######кинга (-2 —2 — вполне нормальный д######кинг) попытался передать детали без размытия. В результате некоторые области оказались очень зашумлёнными. Всегда бегло просматривайте фильм перед тем, как закодировать его! Остановите кадр на моменте какого-нибудь быстрого движения и посмотрите качество картинки. Если оно плохое, то надо ставить д######кинг посильнее, например 0 0.
--EDIT-—
Что-то я уже запутался в этом д######кинге…Менял цифры в этой статье несколько раз, уже не уверен, что они тут стоят правильные
Для Denoise я предпочитаю fft3dfilter(sigma=2, beta=1, plane=4, bt=4, wintype=1, degrid=1) — подавляет даже самый шумный шум. Но описывать его установку и настройку я здесь не буду.
--EDIT-—
Д######кинг меняется в настройках кодэка.
Вроде всё сказал.
Ах да, ещё одно. DVD Должен Быть У Вас На Харде! И там должно быть ещё место на примерно 4 гига на момент запуска StaxRip! Иначе места не хватит!
А, и ещё. StaxRip требует .NET Framework 2.0; Поищите в DC — наверняка где-то там он есть.
И напоследок: StaxRip бурно развивается, в будущем могут быть добавлены новые фичи, изменён интерфейс…Так что этот guide не претендует на вечное существование. Как в воду глядел… Возможно, я обновлю его в будущем.
Прошу указывать на ошибки и неточности.
И на самый последний последок — лог этого рипа. Машина P4 3200, 1GB RAM, XP SP2.
---------— Versions —---------
StaxRip 0.9.2.5
Microsoft Windows NT 5.1.2600 Service Pack 2
.NET Framework 2.0.50727.42
DirectX 4.09.00.0904
AutoCrop True
AviSynth True
BeSweet True
Decomb True
DGIndex True
DivX False
FluxSmooth False
Java False
ProjectX False
VirtualDubMod False
VirtualDub False
XviD False
MP4Box True
x264 True
Deen False
UnDot False
DirectShowSource False
MKVtoolnix False
MediaInfo True
DivXMux False
DGDecode True
VSFilter False
---------— Macros —---------
application:AutoCrop C:\Program Files\AviSynth 2.5\plugins\AutoCrop.dll
application:AviSynth C:\WINXP\system32\avisynth.dll
application:BeSweet D:\stax\Applications\BeSweet\BeSweet.exe
application:Decomb C:\Program Files\AviSynth 2.5\plugins\Decomb.dll
application:Deen
application:DGDecode C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll
application:DGIndex D:\stax\Applications\DGIndex\DGIndex.exe
application:DirectShowSource
application:DivX
application:DivXMux
application:FluxSmooth
application:Java
application:MediaInfo D:\stax\MediaInfo.dll
application:MKVtoolnix
application:MP4Box D:\stax\Applications\MP4Box\MP4Box.exe
application:ProjectX
application:UnDot
application:VirtualDub
application:VirtualDubMod
application:VSFilter
application:x264 D:\stax\Applications\x264\x264.exe
application:XviD
application_dir D:\stax\
audio_bitrate 417
audio_file1 D:\dvds\che\VTS_05_1 ru-Russian 3_2ch 448Kbps DELAY 0ms.ac3
audio_file2 D:\dvds\che\VTS_05_1 es-Spanish 3_2ch 448Kbps DELAY 0ms.ac3
avisynth_plugin_dir C:\Program Files\AviSynth 2.5\plugins\
compressibility 0.126
crop_bottom 2
crop_height 572
crop_left 0
crop_right 0
crop_top 2
crop_width 720
encoder_out_file D:\dvds\che\VTS_05_1_EncoderOutput.264
pos_ms 0
programs_dir C:\Program Files\
source_dir D:\dvds\che\
source_file D:\dvds\che\VTS_05_1.d2v
source_files_blank "D:\dvds\che\VTS_05_1.d2v"
source_files_comma "D:\dvds\che\VTS_05_1.d2v"
source_files_comma_no_quotes D:\dvds\che\VTS_05_1.d2v
source_frames 181000
source_height 576
source_name VTS_05_1
source_rate 25,00
source_seconds 7240
source_width 720
system_dir C:\WINXP\system32\
target_dir D:\dvds\che\
target_file D:\dvds\che\VTS_05_1.mp4
target_framerate 25,00
target_frames 181000
target_height 528
target_kilobyte 1433600
target_megabyte 1400
target_name VTS_05_1
target_seconds 7240
target_width 720
version 0.9.2.5
video_bitrate 1203
---------— AviSynth Plugins —---------
AutoCrop.dll 17.06.2003 10:45
Decomb.dll 04.09.2005 10:20
DGDecode.dll 01.10.2005 4:31
DirectShowSource.dll 28.10.2005 16:44
TCPDeliver.dll 28.10.2005 16:44
---------— AviSynth Script —---------
MPEG2Source("D:\dvds\che\VTS_05_1.d2v")
Crop(0,2,-0,-2)
LanczosResize(720,528)
---------— Audio Encoding —---------
Encoding Type: Command Line Audio Profile
Command Line: "D:\stax\Applications\BeSweet\BeSweet.exe" —core( —input "D:\dvds\che\VTS_05_1 ru-Russian 3_2ch 448Kbps DELAY 0ms.ac3" —output "D:\dvds\che\VTS_05_1 ru-Russian 3_2ch 448Kbps DELAY 0ms_AudioOutput.mp4" ) —azid( —c normal ) —ota( —d 0 —g max ) —bsn( —6chnew —vbr_streaming —codecquality_high —aacprofile_he )
---------— Audio Encoding Statistics —---------
Start time: 5:33:40
End time: 6:39:54
Duration: 1:06:14
Speed: 46 fps
Size: 153,0 MB
Bitrate: 177,23 kbps
Video Bitrate: 1203 —> 1251
---------— Audio Encoding —---------
Encoding Type: Command Line Audio Profile
Command Line: "D:\stax\Applications\BeSweet\BeSweet.exe" —core( —input "D:\dvds\che\VTS_05_1 es-Spanish 3_2ch 448Kbps DELAY 0ms.ac3" —output "D:\dvds\che\VTS_05_1 es-Spanish 3_2ch 448Kbps DELAY 0ms_AudioOutput.mp4" ) —azid( —c normal ) —ota( —d 0 —g max ) —bsn( —6chnew —vbr_streaming —codecquality_high —aacprofile_he )
---------— Audio Encoding Statistics —---------
Start time: 6:39:54
End time: 7:47:18
Duration: 1:07:23
Speed: 45 fps
Size: 152,7 MB
Bitrate: 176,87 kbps
Video Bitrate: 1251 —> 1266
---------— x264 Single/First Pass Encoding —---------
Command Line: "D:\stax\Applications\x264\x264.exe" —-pass 1 —-bitrate 1266 —-stats "D:\dvds\che\Temporary Files\VTS_05_1.stats" —-bframes 4 —-filter —2,-2 —-progress —-no-psnr —-subme 1 —-analyse none —-me dia —-output NUL "D:\dvds\che\VTS_05_1.avs"
---------— x264 Single/First Pass Encoding Statistics —---------
Start time: 7:47:18
End time: 13:04:36
Duration: 5:17:18
Speed: 10 fps
---------— Second Pass Encoding —---------
Command Line: "D:\stax\Applications\x264\x264.exe" —-pass 2 —-bitrate 1266 —-stats "D:\dvds\che\Temporary Files\VTS_05_1.stats" —-ref 4 —-bframes 4 —-filter —2,-2 —-analyse p4x4,i4x4,p8x8,b8x8 —-subme 6 —-progress —-no-psnr —-output "D:\dvds\che\VTS_05_1_EncoderOutput.264" "D:\dvds\che\VTS_05_1.avs"
---------— Second Pass Encoding Statistics —---------
Start time: 13:04:36
End time: 15:00:46
Duration: 1:56:09
Speed: 2 fps
---------— Muxing —---------
Command Line: "D:\stax\Applications\MP4Box\MP4Box.exe" -fps 25.000 —add "D:\dvds\che\VTS_05_1_EncoderOutput.264" —add "D:\dvds\che\VTS_05_1 ru-Russian 3_2ch 448Kbps DELAY 0ms_AudioOutput.mp4:lang=rus" —add "D:\dvds\che\VTS_05_1 es-Spanish 3_2ch 448Kbps DELAY 0ms_AudioOutput.mp4:lang=eng" —add "D:\dvds\che\Russian.srt:lang=rus:name=Russian" —chap "D:\dvds\che\Temporary Files\chapters.txt" —new "D:\dvds\che\VTS_05_1.mp4"
---------— Muxing Statistics —---------
Start time: 15:00:49
End time: 15:06:51
Duration: 0:06:01
Speed: 500 fps
---------— Overall Statistics —---------
Start time: 5:33:40
End time: 15:06:51
Duration: 9:33:11Да, не обманывайтесь. Duration: 1:56:09 — это глюк, прибавьте к этому ещё 24 часа
--EDIT-—
В новой версии лог менее подробный — начинается с "---------— AviSynth Script —---------»
--EDIT-—
Для использования аудиодорожек DTS их сначала надо вручную сконвертировать в AAC с помощью программного комплекса BeHappy, в совокупности с NicDTSSource. Возможно, как-нибудь я об этом напишу.

Вход
Регистрация
Помощь




Цитата

