| |||
![]()
|
![]() ![]() |
![]()
Распрощаться с VHS Собственно, чего я вдруг вспомнил запылившийся VHS - я всё-таки решил заняться видеозахватом. Я уже достаточно давно вывез из Киева пару кассет с ценными для истории видеозаписями, но резонным образом до них не доходили руки, так как я знал, насколько это муторное дело. USB-видеограббер я купил почти два года назад, точно тогда же я пытался заняться видеозахватом, но быстро сдулся. В этот раз дело как-то веселей пошло и в общем получается. И с винтами полегче: когда помимо системного в компе два здоровых винта - обработка видео очень облегчается :) Поскольку я уже начал забывать, что и как я делал, то запишу-ка я. Звук с видеоплейера я запустил через микрофонный вход компа, граббер (комп называет его Syntek STK1150) выдаёт интерлейснутое PAL-видео 720х576i/50, как и положено. Проблему с прогрессирующей рассинхронизацией видео и звука я в этот раз не получил - при захвате в VirtualDUB (да! годы идут, а старый добрый гиковский Дуб только крепнет) был всего лишь сдвиг, который совершенно легко скомпенсировать (Audio->Interleaving). Я не помню, что из кодеков я ставил, кажется, всё тот же K-Lite Codec Pack, но на компьютере оказалася lossless кодек Lagarith, который я схватил, и который оказался самым лучшим кодеком. Итого я запустил захват несжатого моно-звука 44100/16 бит и видео (YUV! оно в полтора раза меньше RGB) в этом самом Lagarith-сжатии. Получил файл в 37ГБ на 104 минуты видео, четверть от несжатого, по-божески, и проц при кодировании едва грузит. Звук в файле отставал на 650мс, но это было легко пофиксить, как я уже говорил. Другое дело интерлейс! Я как-то не был особо в курсе, насколько это вселенская проблема, о которую поломано видимо-невидимо копий. ИСПРАВЛЕНИЕ от 15.10.11. Окончательное решение проблемы интерлейса состоит в том, что деинтерлейсить НЕ НУЖНО. Нужно просто не записывать интерлейснутые файлы с флагом "progressive", а потом удивляться, что они с гребёнкой, как я делал в первоначальной версии постинга, мучаясь вслед за этим с деинтерлейсом. То есть в описанной ниже процедуре надо вообще выкинуть деинтерлейс, а при кодировании обрезанного и очищенного от шумов интерлейснутого файла просто не забыть поставить в настройках H264 галочку TFF (top field first) или BFF, что включает интерлейс. Получается файл с интерлейсом, который показывается абсолютно гладко и нормально, потому что современные видеокарты и декодеры имеют встроенный механизм деинтерлейса на лету - и чтобы сработать, ему лишь нужно, чтобы файл имел в заголовке флаг, что он интерлейснутый. Здесь я написал, как я сделал в конечном счёте. Вторая проблема это шумы, обычные и цветные. Ну там всегда бегают по кадру такие красноватые-зеленоватые тени. В принципе, можно их оставить, но они порядочно усложняют работу кодеку при финальном сжатии. Против них есть совершенно гениальный фильтр Camcorder color denoise отсюда (обсуждение). Ну а против пиксельного шума там есть выбор между более совершенным фильтром, сравнивающим соседние кадры - Super temporary cleaner, и более простым сглаживающим - Smart Skating Rink. Временной фильтр оказался для трясучего видео видеокамеры удивительно малоэффективным; он даже добавлял какие-то шумы от себя. Так что пришлось использовать сглаживающий. С настройками я не игрался, сил на это у меня нет (в интернете полно самых чудовищных мануалов, например 1 2, которые повергают просто в священный трепет перед шаманами видеообработки). Немного поколебавшись, я решил накладывать эти фильтры перед деинтерлейсом для чистоты эксперимента. В итоге первым снимался цветной шум, потом пиксельный, потом деинтерлейс и обрезание краёв. Всё бы хорошо, но вылезла проблемка - кодировщик Xvid4PSP наотрез отказался кодировать файлы, закодированные Lagarith, а на файлах в HuffYUV подвисал после первого прохода. Пришлось разворачивать 104 минутный файл 704x544@50fps в несжатое видео - 337 гигабайт :) Сама по себе процедура наложения фильтров и записи файла длится 5 часов. Итоговый файл даже смотреть нормально не получается, бо комп его не успевает читать с винта. В части кодирования у меня были иллюзии что подойдёт XviD - которые не оправдались. То есть файл с 25 кадрами в секунду он ещё более-менее нормально переварил с потоком в 1500 кб/с в режиме с тремя проходами, но 50fps его перегрузили. Артефакты полезли. В конечном счёте я остановился на H264 в три прохода и с тем же битрейтом (звук - mp3 64 кб/с) - этот справляется очень гладко. У обоих кодирование на моих двух ядрах занимает многие часы (у XviD где-то в три раза больше длины видео, у H264 3-5 раз). В этом деле бы не помешал четырёхъядерный процессор, ох не помешал бы... Было бы интересно поделиться опытом, если вдруг у кого он окажется. А то вдруг я упустил нечто важное, и сейчас, на всю оставшуюся вечность, оцифрую эти бесценные кассеты неправильно :) ---------------- *Но лучше всех в это варианте работает фильтр Muksun, в остальных (например 1 2 3) - там или картинка в выраженную линеечку, или артефакты деинтерлейса лезут. **Конечно, здесь можно рассуждать, что VHS это реально 320х240, и что можно было просто даунсайзнуть каждое поле 720х576i/50 в два раза и сделать из них 360х288p/50, освобождая себя от капризной интерполяции и гигантских файлов. Но мне как-то было жалко убивать большое разрешение, хотя, вероятно, с точки зрения качества результата я выиграл минимально, а по размеру файла и громоздкости его обработки создал себе порядочно проблем. |
|||||||||||||
![]() |
![]() |