Unauthorized.

Как сломать DVD-диск без помощи топора

2011.10.08

Как сломать DVD-диск без помощи топора

Автор: (c)Крис Касперски ака мыщъх

Чего только не придумают медиамагнаты, чтобы отравить жизнь рядовому пользователю. Речь идет даже не о деньгах, а о (не)удобстве использования защищенных DVD, с которыми активно борются копировщики защищенных дисков, но, увы, без поддержки со стороны пользователя. Без гибкого человеческого ума и пронырливого хакерского хвоста эта борьба обречена на поражение. Сегодня мыщъх покажет, как разгрызть два наиболее популярных типа защит на примерах фильмов Pirates of the Caribbean: Dead Man's Chest и The Fog.

Введение

На самом деле, эта статья не о технике взлома DVD-дисков, а о методиках их защиты, которые может применить каждый желающий - от владельца пишущего привода, до крупного (мелкого, среднего) производителя. Естественно, защищая диск и накладывая на его использование определенные ограничения, мы лишаем потребителей части свобод и прав, в том числе и права на "честное использование" (fair use), поэтому следует быть готовыми к тому, что защиты будут ломать.

Специфика защиты DVD-дисков заключается в том, что они обязаны оставаться в рамках заранее определенных спецификацией (иначе не все плееры смогут их прочитать) и, что самое важное, DVD-диск при всей своей интерактивности не содержит исполняемого кода, а одни лишь данные! Следовательно, надежная защита невозможно в принципе! Для взлома DVD необязательно разбираться в программировании, знать ассемблер и уметь держать отладчик в руках. Все что нужно - это освоить несколько утилит, самыми мощными из которых (естественно!) являются программы командной строки.

Вот об этом мыщъх и поведет речь!

Пираты Карибского Моря

Дали мне как-то диск "Pirates of the Caribbean: Dead Man's Chest" (Пираты Карибского Моря: Сундук Мертвеца) от ООО "Си Ди КЛУБ", сразу же предупредив, что он защищен от копирования (о чем свидетельствовал традиционный логотип "this DVD is copy protected" на задней обложке диска - см. рис. 1) и что все хомяки, колдовавшие над ним, перепробовали целое полчище копировщиков, которые только есть, но так ничего и не скопировали. Это был вызов! Мыщъх тут же схватил диск и потащил к себе в нору на исследование.

Обложка DVD-диска Pirates of the Caribbean

Рисунок 1. Обложка DVD-диска Pirates of the Caribbean: Dead Man's Chest, защищенного от копирования.

Power DVD и автономный DVD-player от BBK показывали фильм вполне нормально, с защитой не конфликтовали, что вселяло определенную надежду. Раз диск можно посмотреть, то его (в принципе) можно и скопировать, а копировать мыщъх решил своим любимым DVD Decryptor'ом - одним из самых мощных копировщиков, с кучей опций "тонкой" настройки, да к тому же еще и бесплатным, последняя версия которого лежит на http://www.doom9.org/Soft21/Rippers/SetupDVDDecrypter_3.5.4.0.exe.

Схематичное изображение логотипа

Рисунок 2. Схематичное изображение логотипа, означающего наличие защиты от копирования, встречающегося на задней стороне обложки многих DVD-дисков, подавляющее большинство из которых DVD Decryptor ломает в полностью автоматическом режиме, но... "большинство" еще не означает "все".

Привод нормально зажевал диск, отображая в DVD-Decrypor'е всю его структуру (если этого не произошло - нажмите клавишу для перехода в IFO-mode, с которым работает подавляющее большинство рипперов и кодеров). Внешне все выглядит нормально. В закладке "Stream Processing" мы можем выбирать, что следует выбросить за ненадобностью (русские, турецкие, латвийские, литовские, эстонские и украинские субтитры вместе с русской, турецкой и украинской звуковой дорожкой), а что - оставить: видеопоток в формате PAL и оригинальную английскую звуковую дорожку. Впрочем, некоторые предпочитают поступать иначе, сохраняя переводную дорожку и выбрасывая оригинальную. Но даже хороший дубляж (вещь, кстати говоря, уникальная и в живой природе практически не встречающаяся) не заменит "родной" озвучки. Но о вкусах, как говорится, не спорят. Для кого-то и красная икра кажется клюквой. Ладно, не будем разводить священные войны, переливая из пустое в порожнее, и займемся работой, пока нами не занялись разные органы (см. ниже).

Находясь в основном меню DVD Decryptor'а, нажимаем зеленую стрелочку, символизирующую процесс копирования и... обламываемся по полной программе!!! Сначала DVD Decryptor одним махом пропускает вереницу секторов, ругаясь на отсутствие заголовка - Skipping Sector XXX - Pack Header Not Found (см. рис. 3), после чего врезается в литосферную плиту плохих секторов - Failed to Read Sector XXX - Uncovered Read Error (провал чтения сектора XXX - невосстановимая ошибка чтения).

Даже если уменьшить количество повторов чтения до минимума, задействовав быстрый пропуск групп секторов, копирование диска растянется на несколько суток, в течение которых привод будет ожесточенно ерзать головкой и, хотя в итоге мы получим вполне работоспособную копию, времени это займет.... И, к тому же, наверняка угробит привод, а точнее - микросхему кобмодрайва, ответственную за позиционирование головки и удержание лазерного луча на спиральной дорожки. Лицензионный диск "пиратов" стоит 450 рублей. DVD-привод нам обойдется еще дороже, да и к тому же - временной фактор сбрасывать со счетов никак нельзя. Хотя бы уже потому, что такой пионерский взлом никому не интересен. Да и не взлом это, а так... сплошное надругательство над техникой.

Попытка копирования

Рисунок 3. Попытка копирования "пиратов" в автоматическом режиме закачивается полным провалом.

Хорошо, начинаем копать от забора до обеда. Судя по всему, на DVD имеется непроштампованная зона, на которую отсутствует ссылка в меню, поэтому плееры нормально просматривают фильм, а копировщики, пытаясь скопировать весь диск целиком, как раз на эту самую зону и натыкаются. Данная гипотеза подкрепляется тем фактом, что первые несколько десятков тысяч секторов читаются вполне нормально, но пропускаются копировщиком, как не содержащие заголовка. Это и есть "пограничная" область непроштампованной зоны, за которой начинается царство сплошных плохих секторов, пересечь которое очень трудно. А зачем нам его пересекать, если там заведомо нет ничего интересного?!

Просматривая обложку диска, обращаем внимание, что оглавление содержит 28 эпизодов (или, по-английски, chapter'ов), а DVD Decrypter рапортует о... 29 (см. рис. 4). В душу закрадывается смутное подозрение, что один из эпизодов "лишний", то есть специально помещенный на диск, но не проштампованный. Рассматривая диск в ярком отраженном свете, падающим под определенным углом, эту область действительно можно заметить в виде неоднородностей в цветовой радуге (рекомендуется использовать кварцевую лампу и увеличительное стекло).

Исследование структуры защищенного диска

Рисунок 4. Исследование структуры защищенного диска.

А что если... просто выкинуть эту область, попросив DVD Decryptor'а не копировать ее? Это действительно совсем несложно сделать. Находясь в главном окне программы, переходим к вкладке "Input", сбрасываем галочку напротив пункта "Chapter 1" (см. рис. 5) и нажимаем зеленую стрелку для копирования образа DVD на диск.

На этот раз копирование проходит успешно и ни один дефектный сектор на нашем пути не встречается, но скопированный фильм начинается не с самого начала, а где-то с 4й минуты. Не такая уж и большая потеря, но все-таки впечатление от просмотра будет изрядно подпорчено.

Удаление первого chaper-a с дефектной зоной

Рисунок 5. Удаление первого chaper'a с дефектной зоной.

Выходит, что "Chapter 1" наряду с непроштампованной зоной содержит часть полезного видеоматериала, который мы сейчас и попытаемся скопировать. Возвратившись в основное окно программы, мы восстанавливаем галочку "Chapter 1" и переходим к списку ячеек (cell'ов), тот что расположен правее. Как видно (см. рис. 6), "Chapter 1" содержит пять cell'ов, первые четыре из которых занимают по 26 КБайт (что соответствует продолжительности в 00:00:00.14 - чтобы узнать, достаточно подвести к cell'у мышь и немного подержать) и только последний, пятый, cell занимает 229.824 Кбайт (00:04:08.09), содержащих первые четыре минуты начала фильма (см. рис. 7).

Определение размера и продолжительности

Рисунок 6. Определение размера и продолжительности каждого из cell'ов первого chapter'а.

Что мы делаем?! Сбрасываем галочки у первых четырех cell'ов и, нажимая зеленую кнопку, повторяем попытку копирования защищенного диска вновь, не считаясь с потерянным временем. Как говорится, лучше за полдня долететь, чем за полчаса добежать.

Убираем все cell-ы

Рисунок 7. Убираем все cell'ы в первом chapter'е кроме последнего.

Операция копирования завершается безоговорочной капитуляцией защиты!!! Плохие сектора трусливо прячутся, ошибок чтения не возникает (см. рис. 8) и, что самое главное, сграбленный фильм начинается с первой секунды, позволяя насладится просмотром непосредственно с жесткого диска или сжать видеоматериал любым подходящим компрессором, например, XviD.

Финальная процедура копирования взломанного диска

Рисунок 8. Финальная процедура копирования взломанного диска.

Защиты данного типа встречаются не так уж и редко, тем более что для их создания можно обойтись и без дорогостоящего специфического оборудования, просто процарапав диск циркулем, закрасив маркером или извратившись каким-нибудь другим еще более крутым способом. Технология известна и пользуются ей в первую очередь те, кто снимает свадьбы и другие мероприятия на камеру, а потом продает DVD по цене Мерседеса, естественно, делая все возможное, чтобы покупатели не перекопировали один-единственный купленный диск друг у друга, послав продавца от хвоста подальше.

Но это уже философия пошла, в которую лучше без нужды не углубляться. Главное - знать, что запрет на копирование DVD носит скорее юридический, чем технический характер. Но... самое страшное еще впереди.

Лирическое отступление для людей в погонах

Диск с "пиратами" был приобретен мыщъхом в установленном законом порядке и исследован в чисто образовательных целях. Единственная изготовленная копия была немедленно уничтожена после взлома путем физического разрушения носителя. Оригинальный диск не был возвращаен продавцу и мыщъху не известно, чтобы разработанным им методом кто-то воспользовался для несанкционированного копирования с нарушением гражданского и уголовного кодексов Российской Федерации.

The Fog или куда подевалась моя синхронизация

Впервые с защитами данного типа мыщъх познакомился при пережиме фильма The Fog (производитель ООО "Мега Видео") из DVD/MPEG2 в более компактный MPEG4, мирно покоящийся на винчестере (см. рис. 9).

Несмотря на отсутствие каких бы то ни было логотипов, накладывающих эмбарго на копирование, сжать фильм не получилось. Копирование происходило замечательно, но вот при попытке воспроизведения сжатого MPEG4 наступал полный несинхрон аудио и видео, стремительно увеличивающийся по мере просмотра фильма и уже на середине достигающий нескольких минут!!! То есть, сначала слышался звон разбитого стекала и жуткий вопль зловещих мертвецов и только потом эти самые мертвецы появлялись на экране! Естественно, ни о каком удовольствии от просмотра говорить не приходилось и хотя многие плееры и кодеки (в том числе и мой любимый FFDShow) позволяют менять "video delay" налету, вручную подгоняя звук под изображение, это тяжелый труд, а мыщъх - все-таки зритель, и совсем не киномеханик.

Причем, под Power DVD и автономными DVD-плеерами диск воспроизводился вполне нормально!!!

Обложка DVD-диска

Рисунок 9. Обложка DVD-диска "The Fog" ("Туман"), защищенного от копирования.

Перепробовав несколько различных кодеков и рипперов, но так и не добившись успеха, мыщъх отложил диск в сторону, но потом к нему стали добавляться другие: "Wolf Creek", "Cold Creek Manor" и что самое примечательное, все они были выпущены все той же ООО "Мега Видео", что наводило на мысль о хитрой защите от рипа. Какой смысл защищаться от рипа, если защищенный DVD можно спокойно скопировать на DVD-R/RW или записать образ на винчестер, смонтировав его на виртуальный DVD?

Но не все так просто! Чтобы скопировать диск, к нему нужно получить физический доступ, а это не так-то просто сделать. Фактически пиратство ограничивается узким кругом дружественных лиц, которые если даже и не скопируют DVD, то просто возьмут посмотреть его на время. Выложить же образ несжатого DVD в Интернете (особенно если это DVD9) отважатся только настоящие маньяки, а качать его будут считанные единицы! Короче, мотивация производителя вполне понятна, чего нельзя сказать о ее технической реализации, скрытой в плотном тумане.

Побродив по форумам и конференциям, мыщъх обнаружил, что в своей проблеме он не одинок и несинхрон - вполне распространенное явление, для борьбы с которым придумано множество утилит, но ни одна из них не дает желаемого результата. Так что, мыщъх, подтолкнув под себя хвост, решил заняться исследованиями самостоятельно.

Для работы с видеоматериалом, естественно, требуется видеоредактор. Их много разных. Лично мыщъх предпочитает AviDemux (http://avidemux.org/) и NanDub (http://sourceforge.net/projects/ndub/), обладающий одной очень замечательной функцией, о которой чуть позже. Обе программы распространяются в исходных текстах на бесплатной основе. Халява! И зачем нам нужен этот монструозный Abode Premier?

Короче, скачиваем AviDemux, устанавливаем на свой компьютер, открываем сграбленный VOB-файл (по умолчанию DVD Decryptor склеивает все VOB'ы в один, что упрощает его обработку, но... высаживает AviDemux на измену, поскольку файлы, размер которых превышает 4 Гбайта, он обрабатывать не умеет и вылетает по исключению, впрочем, в с будущих версиях этот недостаток скорее всего будет исправлен).

Сразу же после открытия файла AviDemux спрашивает - хотим ли мы его индексировать или нет? (см. рис 10). А куда нам деваться? Приходится... Так что, нажимаем "YES" и ждем.

Индексация VOB-файла

Рисунок 10. Индексация VOB-файла.

Ждать придется недолго. В зависимости от размеров файла и мощности компьютера индексация занимает от одной до нескольких минут, сопровождаемых традиционным "термометром" (см. рис. 11).

Термометр, отображающий ход индексирования файла

Рисунок 11. "Термометр", отображающий ход индексирования файла.

По завершении индексации нажимаем для вызова свойств файла (Файл -> Свойства) или давим гаечный ключ на панели инструментов, в результате чего получаем весьма интересный диалог (см. рис. 12). При частоте кадров в 23,976 продолжительность видеодорожки составляет 01:42:49.836, в то время как звуковой - всего лишь 01:42:42.464. Так вот где собака порылась! Отсюда и несинхрон!!!

Сравниваем продолжительность аудио- и видеодорожек в свойствах файла

Рисунок 12. Сравниваем продолжительность аудио- и видеодорожек в свойствах файла.

Логично, что для обеспечения синхронизации продолжительность обоих дорожек должна совпадать и сделать это можно путем коррекции частоты кадров. Идем в меню "Видео", там видим пункт "Частота кадров" и увеличиваем исходное значение на несколько тысячных (!) fps, добиваясь наилучшего совпадения продолжительности, которое в данном случае достигается на частоте в 24,006 fps, при этом продолжительность видеодорожки составит 01:42:42:126, что всего лишь на 0,339 сек. короче продолжительности звуковой дорожки (см. рис. 13), т. е. даже в конце фильма несинхрон не будет превышать 1/3 сек, что уже вполне терпимо, хотя... большого восторга не вызывает.

К сожалению, точнее подобрать частоту не получается, поскольку, доступный ряд частот образуется путем деления частоты базового кварцевого генератора, т.е. попадание в "эпицентр" происходит крайне редко и обычно мы имеем либо "недобор", либо "перебор".

Подбор частоты кадров

Рисунок 13. Подбор частоты кадров для выравнивания продолжительности звуковой и видеодорожки.

Подобрав наиболее подходящую частоту, сжимаем файл средствами AviDemux (который поддерживает огромное количество всевозможных фильтров и кодеков), после чего помещаем его в avi-контейнер и...

Вот тут-то и начинается самое интересное. Большинство компьютерных видеоплееров воспринимают avi-файлы с нестандартной частотой вполне нормально, но вот с автономными проигрывателями ситуация намного более напряженная и никаких гарантий, что они не подавятся у нас нет.

Но это еще не самое страшное. Оригинальный DVD (как этого и требует стандарт) разбивает видеопоток на несколько VOB файлов (в данном случае - три), в начале каждого из которых звук и видео полностью синхронизованы, а потом начинают расходится в разные стороны и чем дальше - тем сильнее.

Если мы объединяем несколько VOB-файлов в один, подгоняя fps по общей продолжительности звуковой дорожки, неизбежно образуются "биения" - звук будет то отставать, то обгонять изображение!!! Чтобы этого избежать, каждый VOB следует обрабатывать индивидуально, запретив DVD Decryptor'у заниматься их склейкой или при отсутствии CSS-защиты (как, например, в данном случае), просто скопировать VOB'ы на жесткий диск FAR'ом (см. рис. 14), выбрав самые большие из них (остальные содержат всякие дополнения типа рекламы, клипов и т.д.)

При отсутствии CSS-защиты необходимые VOB'ы можно скопировать на жесткий диск и FAR-ом

Рисунок 14. При отсутствии CSS-защиты необходимые VOB'ы можно скопировать на жесткий диск и FAR'ом.

Подобрав частоту каждого VOB'а и перегнав его в сжатый AVI, клеим все AVI вместе с помощью AviDemux'а или любого другого видеоредактора. "Биения" синхронизации при этом исчезают, но проблема нестандартной частоты по-прежнему остается и решить ее можно... оставив fps в покое и подогнав длительность звуковой дорожки в звуковом редакторе типа Cool Edit, соответственно скорректировав тональность, чтобы сохранить оригинальный колорит звучания (или, точнее, то, что от него осталось). Это снимает проблему нестандартных fps, но порождает аудиоискажения, которым обладатели хорошей акустики навряд ли обрадуются. Но... такова суровая правда жизни. Либо одна дырка, либо другая. А до истины еще докопаться нужно!

Кстати, чтобы не подбирать fps вручную, логично воспользоваться уже упомянутой программой NanDub, делающей это автоматически. Отрываем видеофайл (увы, NanDub в упор не видит MPEG2, упрятанный в VOB, поэтому приходится подавать ему avi-файл, сжатый любым видеокомпрессором без коррекции fps, либо скармливать вывод AviSynth или другой аналогичной программы, конвертирующей MPEG2 "на лету").

В меню "Video" находим пункт "Frame Rate" (или нажимаем ) и в появившемся диалоговом окне переводим радио-кнопку "Frame rate conversion" в положение "Change so video and audio durations match" (см. рис. 15), после чего требуемый fps будет вычислен за нас с максимально возможной точностью (однако, все-таки привязанной к частотному ряду кварцевого генератора).

Чтобы не пережимать уже сжатое видео, в меню Audio/Video следует выбрать режим "Direct stream copy" и сохранить полученный avi-файл на диск. Все!!!

Программа NanDub

Рисунок 15. Программа NanDub позволяет автоматически определять fps на основе длительности звуковой и видеодорожки.

На самом деле, это не все, а только начало. После всех махинаций и танцев с бубном возникает резонный вопрос или даже целых два: а) как все-таки DVD-проигрыватели ухитряются проигрывать такие диски и почему с ними не могут справиться программы видеосжатия? б) какие конкретные причины приводит к несинхрону?

Чтение стандартов показывает, что MPEG2 (как, впрочем, и AVI) поддерживает режим синхронизации аудио и видео, позволяющий закреплять за каждым кадром (или за группой кадров) соответствующий ему аудио-сэмпл. Если время проигрывания видеосэмпла превышает время показа кадра, то плеер обязан дублировать кадр один или более раз. Соответственно, наоборот, если время проигрывания аудио-сэмпла короче показа кадра (группы кадров), то один или несколько кадров выбрасываются. Конечно, в правильно записанном avi/vob файле ничего подобного происходить не должно, и таких файлов - большинство. Поэтому, программы видеосжатия игнорируют данные синхронизации. Они просто отделяют звуковую дорожку (дорожки) от видео, сжимают видео отдельно от звука (при необходимости сжимая и звук или переводя его в другой формат, скажем, из AC3 в MP3), а потом накладывают его на сжатое видео, генерируя данные синхронизации от фонаря, т.е. из расчета, что в исходном файле видео и аудио синхронизованы с точностью до одного кадра.

Таким образом, создать защиту от пережатия видеоматериала очень легко. Достаточно внести в файл определенный несинхрон. DVD-проигрыватели, использующие данные синхронизации, восстановят синхрон на лету, а вот программы видеосжатия попадут в западню, вырытую излишней оптимистичностью и игнорированием стандарта.

Можно ли взломать такую защиту, не прибегая к описанному выше шаманскому танцу? А то! Достаточно найти программу сжатия, придерживающуюся стандарта, вот и все!!! Увы, разносолами здесь не пахнет и единственным известным мыщъху инструментом профессиональной работы с видео является культовый плеер MPlayer (www.mplayerhq.hu), а точнее, входящий в его состав компрессор mencoder с кучей всевозможных кодеков и фильтров. Обе программы портированы под множество операционных систем (в том числе и Windows), распространяются в исходных текстах на бесплатной основе и что важнее всего - чрезвычайно качество документированы.

Логотип одного из лучших видеоплееров

Рисунок 16. Логотип одного из лучших видеоплееров, включающего в себя вполне профессиональный компрессор.

mencoder великолепно следит за синхронизацией аудио и видео, автоматически выбрасывая или повторяя кадры для достижения желаемого результата. И весь "взлом" фактически сводится к освоению синтаксиса великой и могучей командной строки, даже сжатое описание которой занимает сотни килобайт!

Чтобы не отсылать читателя к man'у (которым обкурится можно), мыщъх предлагает готовый bat-файл собственного изготовления с необходимыми комментариями и легко настраиваемыми опциями.

@ECHO OFF
ECHO mencoder loader by nezumi

REM # имя файла-источника для сжатия
REM ================================================================
SET SRC=VTS_01_1.VOB

REM # контейнер-приемник
REM ================================================================
SET OF=-of:avi

REM # имя файла-приемника
REM ================================================================
SET O=fog.avi

REM # звуковая дорожка
REM ================================================================
REM 80h == 128, 81h == 129, 82h == 130...
SET AID=-aid 129

REM # аудио-кодек
REM ================================================================
SET OAC=-oac:mp3lame

REM # опции аудио-кодека
REM ================================================================
REM постоянный битрейт, stereo-mode mix, 128 kbit/sec
SET OAO=-lameopts vbr=0:mode=0:br=128

REM опции аудио-фильтра
REM ================================================================
REM усиление звука на 13 db (для тихих фильмов)
SET AF=-af volume=13

REM видеокодек
REM ================================================================
SET OVC=-ovc lavc

REM опции видеокодека
REM ********************************************
REM
REM авто-аспект
REM (может приводить к авариномому прерыванию сжатия
REM в комбинации с некоторыми шумодавами)
SET AAR=:autoaspect
REM SET AAR=

REM битрейт
REM ********************************************
REM
REM битрейт по умолчанию
SET LAVC_VBR=
REM SET LAVC_VBR:vbitrate=1369
REM SET LAVC_VBR=:vbitrate=9000
REM
REM libavcodec::mpeg4
REM ==================
REM # быстрый режим
SET OVO=-lavcopts vcodec=mpeg4:mbd=2:trell:v4mv:turbo
REM
REM # режим высокого качества [примечание: при использовании объединить обе строки в одну!]
REM SET OVO=-lavcopts vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:
REM vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo
REM
REM # режим очень высокого качества [примечание: при использовании объединить обе строки в одну!]
REM SET OVO=-lavcopts vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:
REM predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2
REM
REM # черезстрочная развертка #
REM #---------------------------#
SET DEINT=
REM SET DEINT=:ilme:ildct

SET OVO=%OVO%%AAR%%LAVC_VBR%%DEINT%
REM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

REM FourCC
REM ================================================================
SET CC=-ffourcc xvid

REM видеофильтры
REM ================================================================
REM # фильтры шума
REM #-------------
REM
REM удаляет артефакты mpeg
REM иногда может приводить к критическим ошибкам
REM SET DENOISE=,spp
REM
REM слабый шумодав
REM SET DENOISE=,pp=tmpnoise:1:2:3,hqdn3d=2:1:2
REM
REM средний шумодав
REM SET DENOISE=,pp=tmpnoise:3:4:5,hqdn3d
REM
REM шумодавы не работают с черезстрочным видеоматериалом
IF NOT #%DEINT%#==## SET DENOISE=
REM
REM # фильтры кропа и ресайза #
REM #-------------------------#
REM c черезстрочным видео нужно работать особым образом:
REM 1 высота усечения и смещение по оси y должны быть кратны 4.
REM 2.любое вертикальное масштабирование должно выполняться
REM   в режиме черезстрочной развёртки.
REM 3.Фильтры постобработки и удаления шума могут не работать, как ожидается,
REM   только если Вы особо не позаботитесь об их применении к одному полю за раз,
REM   иначе они могут повредить видео при неверном использовании.
REM
SET SCALE_MODE=
IF NOT #%DEINT%#==## SET SCALE_MODE=:1

REM # кропинг и скал
REM #===============================================================
REM # для определения обрезки запустите mplayer со след. ключами:
REM # >mplayer.exe file.vod -vo null -vf cropdetect
REM # и подождите некоторое время, цифры не стабилизируются
REM #
REM пример задания кропа
SET CROP=720:416:0:80
REM
SET VF=-vf crop=%CROP%,scale=640:-2%ILACED%
SET VF=%VF%%DENOISE%
REM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

REM # выходная FPS
REM #===============================================================
REM fps по умолчанию
SET FSP=
REM
REM # 23.976 for NTSC
SET FPS=-ofps 24000/1001
REM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

REM обработка параметров командной строки ===========================
IF NOT #%2#==## SET O=%2
IF NOT #%1#==## SET SCR=%1
IF NOT #%3#==## SET AID=-aid %3
IF #%1#==#-conf# GOTO far
REM =================================================================

REM формирование полной командной строки
REM ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^
SET NI=-noodml
REM -noodml	необходим для предотвращения порчи avi > 1023 Mb
REM ******************************************************************
SET PN=mencoder.exe
SET CLI=%PN% %SRC% %OF% -o %O% %AID% %OAC% %OAO% %AF% %OVC% %OVO% %CC% %VF% %FPS% %NI%
ECHO %CLI%>%O%.bat
%O%.bat

Листинг 1. Bat-файл, вызывающий mencoder с типичными настройками.

Запускаем menc.bat и смотрим за процессом. Типа, наблюдаем. А наблюдать тут есть чего (см. рис. 17)! По ходу сжатия фильма постоянно попадаются битые AC3-сэмплы с неверной CRC, вынуждающие mencoder пропускать определенное количество кадров для обеспечения синхронизации. В нормальных условиях (дефект мастеринга) это бы неизбежно приводило к дерганному изображению, но... раз такого не наблюдается, то выходит, что битые аудио-сэмплы встроены нарочно и часть кадров заранее продублирована, т.е. их выпадение с целью обеспечения синхронизации не приводит ни к каким искажениям. То есть защита работает исправно и легальным пользователям не создает никаких неудобств.

Сжатие

Рисунок 17. Сжатие the-fog'a компрессором mencoder обнаруживает большое количество "битых" a52-сэмплов, вызывающий несинхрон.

Защищенный файл, сжатый компрессором mencoder, по качеству ничуть не уступает оригиналу (естественно, мы не имеем ввиду качество самого MPEG4, x264 и т.д.), что позволяет его рекомендовать для сжатия любых DVD дисков, поскольку тщательное расследование показало, что все они так или иначе содержат небольшой несинхрон, автоматически устраняемый mencoder'ом, но игнорируемый остальными программами сжатия.

Возвращаясь к диску The Fog, необходимо отметить, что "битые" сэмплы расположены неравномерно и простая подстройка fps, которой мы занимались вначале, принципиально не способна обеспечить полную синхронизацию аудио- и видеодорожек. Максимум, что она может дать - это уменьшить несинхрон до умеренных пределов, которыми, в принципе, можно и пренебречь. Но впечатление от фильма все-таки будет уже не тем.

Кстати говоря, сведением аудио и видео на киностудиях далеко не боги занимаются и "врожденный" несинхрон отдельных сцен встречается в достаточно многих фильмах. Естественно, к защите от сжатия никакого отношения он не имеет.

Заключение

Мы рассмотрели два наиболее распространенных типа защит DVD-дисков от сжатия/копирования, а всего их... И хотя разработчики копировщиков не сидят сложа руки, до полной победы над мировым империализмом еще далеко, тем не менее правило "то, что сделано одним человеком, может быть сломано другим" еще никто не отменял, так что... Сжав свыше тысячи DVD, мыщъх перепробовал кучу программ и пришел к выводу, что все они, за исключением mplayer'a/mencoder'а - такая гадость. И это вопрос не вкуса, а предоставляемых ими возможностей!

https://nebka.ru/?uid=1&post=20957