Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет denmes ([info]denmes)
@ 2011-10-13 20:39:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Распрощаться с 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, что включает интерлейс. Получается файл с интерлейсом, который показывается абсолютно гладко и нормально, потому что современные видеокарты и декодеры имеют встроенный механизм деинтерлейса на лету - и чтобы сработать, ему лишь нужно, чтобы файл имел в заголовке флаг, что он интерлейснутый. Здесь я написал, как я сделал в конечном счёте.

Вникнув в проблему, перепробовав некоторое количество фильтров деинтерлейса для VirtualDUB, я сделал главный вывод: как ни печально, но никакой деинтерлейс PAL-видеозахвата в файл с прогрессивной развёрткой и 25fps не даёт удовлетворительного результата.* Для конвертации домашней съёмки с её дёрганой картинкой в видеофайл нужно поднимать частоту кадров этого файла до 50fps, иначе видео не смотрится. Заодно это безумно улучшает кадр за счёт исключения самой возможности появления артефактов деинтерлейса.** После проб разных деинтерлейсеров, я остановился на встроенном фильтре Дуба, алгоритм Yadif, только выбрал там double frame rate top field first. Дуб также позволяет обрезать черные поля или шумы по краям кадра, только надо не забывать, что отрезать нужно кусками по 8 пикселов.

Вторая проблема это шумы, обычные и цветные. Ну там всегда бегают по кадру такие красноватые-зеленоватые тени. В принципе, можно их оставить, но они порядочно усложняют работу кодеку при финальном сжатии. Против них есть совершенно гениальный фильтр 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, освобождая себя от капризной интерполяции и гигантских файлов. Но мне как-то было жалко убивать большое разрешение, хотя, вероятно, с точки зрения качества результата я выиграл минимально, а по размеру файла и громоздкости его обработки создал себе порядочно проблем.


(Добавить комментарий)


[info]mik1@lj
2011-10-13 16:11 (ссылка)
за lagarith спасибо - надо будет попробовать, как-то пропустил что он многопоточный, по инерции пользовался huffyuv, любопытно будет оценить реальный выигрыш

что касается аудио, то про mp3 давно уже забыл: aac (в частности neroaac) на сегодня однозначно предпочтительнее как по качеству, так и по размеру

ну и от xvid4psp с удовольствием отказался в пользу virtualdub, как только последний научился нативно использовать консольные x264/aac

(Ответить) (Ветвь дискуссии)


[info]denmes@lj
2011-10-13 16:21 (ссылка)
Консольный... это ж надо тогда параметры кодека раскурить.

Что касается ААС, то есть ли смысл заморачиваться этим ради монофонического звука видеокамеры?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]bagamut@lj
2011-10-14 06:28 (ссылка)
скорее как зритель скажу,
что аас уже стандарт, для любого кол-ва каналов

(Ответить) (Уровень выше)


[info]bagamut@lj
2011-10-14 06:40 (ссылка)
поясню, ААС стандартным образом пассится на цифровой выход на ресивер, без лишних шагов
плюсп редпочтительней для всяких мультидорожечных приложений

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]denmes@lj
2011-10-14 06:49 (ссылка)
Ну, пожалуй уговорили :) следующий файл сделаю с ААС.

(Ответить) (Уровень выше)


[info]denmes@lj
2011-10-14 07:20 (ссылка)
А у тебя нет ли под рукой ссылки, где было бы правильно разъяснено, как пользоваться h264 для кодирования из Дуба?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]mik1@lj
2011-10-14 07:23 (ссылка)
How to use the external encoder feature (http://forums.virtualdub.org/index.php?act=ST&f=3&t=18840)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]denmes@lj
2011-10-14 07:27 (ссылка)
Спасибо :)
Выглядит мозговороточно %-)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]mik1@lj
2011-10-14 07:48 (ссылка)
дык, зато оно работает!)

(Ответить) (Уровень выше)


[info]baselio@lj
2011-10-13 20:13 (ссылка)
Как-то очень сложно... Я помню, лет 5 назад делали видеозахват с пленки VHS на комп с помощью Ulead Media Studio. Там был специальный провод - видео-аудио выход с видака соединялся с портом ieee1394 (кажется). Все получалось автоматом с нормальным качеством.

(Ответить) (Ветвь дискуссии)


[info]bagamut@lj
2011-10-14 06:29 (ссылка)
+1
автор крут, но я бы тоже чо нибудь чтобы сразу гнало в h264 или mpeg2

(Ответить) (Уровень выше)


[info]denmes@lj
2011-10-14 06:33 (ссылка)
Ну, если бы у меня был VHS-девайс, который бы сам оцифровывал бы сигнал, и выдавал бы уже цифровой сигнал по FireWire, то всё было бы очень, очень, очень намного легче. Но я, честно говоря, не знал, что для VHS такие существовали.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]bagamut@lj
2011-10-14 06:41 (ссылка)
любая видеокамера раньше такое умела, на выходе DV

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]denmes@lj
2011-10-14 06:51 (ссылка)
Ну, тогда когда снимались эти кассеты, там DV или не было, или вопрос о нём не стоял, а сейчас я тут сижу с полноформатными видеокассетами и обычным видеоплеером...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]bagamut@lj
2011-10-14 07:04 (ссылка)
в смысле в мире накопилось полно видеокамер, которые на вход берут S-video, а на выходе дают DV в FireWire
можно купить недорого

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]denmes@lj
2011-10-14 07:06 (ссылка)
Фффух, это опять recherche. Какие есть камеры, как они работают, какая лучше. И лучше ли они того стика, который у меня уже есть :)

(Ответить) (Уровень выше)


[info]baselio@lj
2011-10-14 17:19 (ссылка)
Похоже, в этом фикус. Сейчас вспомнил, что как раз искал такую камеру, чтобы оцифровывать сигнал с видака и направлять его в комп. Нашел - и все было легко и просто

(Ответить) (Уровень выше)


[info]denis_despair@lj
2011-10-30 17:27 (ссылка)
вот у меня вопрос возник про видео - не подскажешь, если какая книжка типа "видео для чайников" - что бы такого почитать, чтобы понимать основы современных видеоформатов?

(Ответить) (Ветвь дискуссии)


[info]denmes@lj
2011-10-30 17:47 (ссылка)
Не знаю. Я бы может сам с удовольствием бы ознакомился с такой книгой :)
В принципе, Википедия не самое плохое место для начала.

(Ответить) (Уровень выше)