Действительность и практика
И вот, наконец, счастье пришло. Начиная с некоторой версии, Flash стал поддерживать H.264, и даже со сильножатым звуком AAC-HE. Майкрософт убоялась, и заявила, что в будущей версии Silverlight поддержка H.264 тоже будет.
Таким образом, у слона и кита установился некоторый паритет, а для владельцев сайтов наступил рай. Почти. Если не считать того факта, что H.264 во флеше безбожно тормозит на разрешениях выше стандартного 640x480. Silverlight со своим VC-1 работает в два-три раза быстрее, но по-прежнему установлен процентах на 30 ото всех подключенных в интернету компьютеров.
Какие же тогда есть варианты размещения видео на сайтах?
1. Использовать Silverlight и Microsoft Expression Studio для кодирования в VC-1. Она правда, платная, но студентам с ISICом раздают нахаляву по программе DreamSpark, как и многие другие средства разработки от Microsoft.
2. Использовать Flash, например популярный плеер JW FLV Player и кодировать в H.264 какой-нибудь программой, коих сейчас развелось немеряно. Платный QuickTime от Apple ничего, но он не понимает MPEG на входе, по крайней мере как это сделать на Windows, я не нашёл. Зато пользоватся им удобно и легко. Говорят, ещё хорошо кодирует во h.264 Nero Recode, но все мои попытки его использовать увенчались провалом: то глючит, то не даёт выбрать нужные параметры.
В конце-концов, я остановился на очень даже неплохой программе Xvid4PSP авторства русского разразботчика с ником Winnydows. Программа бесплатная, потому является просто оболочкой для набора open-source проектов вроде ffmpeg и h.264. Я, кстати, пытался использовать и напрямую ffmpeg из командной строки на линуксе, но сотворить видео, закодированное h.264, у меня так и не получилось. Не зря разработчики ffmpeg на официальном сайте пишут, что программа предназначена не для прямого использования, а для включения в другие пакеты, примерно так, как это сделано в XviD4PSP.
В любом случае радует то, что получившийся h.264 в контейнере MP4 можно играть флешем, QuickTime`ом, и даже на всяких там айфонах и Nokia 5800. Разумеется, без труда он играется и на компьютере с помощью любого плеера, если стоит декодер H.264.
3. Использовать сторонний хостинг видео, например YouTube, который с недавних пор поддерживает h.264, обзывая его “высоким качеством”. Или Vimeo – на нём кодек похуже, VP6, но выглядит тоже ничего, да и поддержка h.264 не за горами.
Будущее и высокое разрешение
Так что в целом дела в вебе с видео обстоят неплохо, но но ещё не идеально. Зато на фронте дисков высокого резрешения всё в порядке: качество Blu-ray в полном разрешении FullHD (1920x1280) радует неимоверно. Зато требуемая мощность процессора печалит: обычно нужен хотя двухядерный Intel Core 2 Duo, да и его не всегда хватает. Чтобы хватало, стоит поставить фильтр CoreAVC, который содерит самый быстрый декодировщик H.264 в природе. Если же у вас есть видеокарта с поддержкой аппартного декодирования видео, вроде ATI HD2600 – имеет смысл поставить плеер PowerDVD, который содерит кодек с поддержкой этой фичи.
Бесплатный же кодек ffdshow на FullHD H.264 тормозит безбожно, как и кодеки всех прочих фирм.
В принципе, тут бы и сказке конец, но из важного стоит упомнуть вот что. Все вышеперечисленные кодеки содержат запатентованные алгоритмы. Это уже звучит идиотски, а на практике ещё хуже – кодеки или платные, или бесплатные, но не очень законные. К счастью, не все страны признают патенты на алгоритмы, а владельцы предпочитают не преследовать бесплатные кодеки – пользы мало, а денег уходит много. В любом случае, все эти кодеки (происхождением из концорциума MPEG) используют один и то же базовый алгоритм - block-oriented motion-compensation-based, переводить и рассказывать подробно не стану.
Но уже довольно давно исследуется возможность использовать в сжатии видео вейвлеты (wavelets). В конце-концов доисследовались – известный много чем британский государственный канал BBC сделал основанный на wavelets кодек Dirac . Кроме таких приятных особенностей, как бесплатность и открый код, Dirac также свободен от патентов и крайне эффективен.
Минусы – мало кто про него знает, почти нет поддержки в софте, и жрёт процессор похлеще H.264. Но это дела поправимые, что что в теории за Дираком будущее, хоть и не ближайшее. Это если не придумают что-нибудь ещё более продвинутое. В любом случае, семейство MPEG никуда не денется, потому что имеет широчайшую поддежку в стандартах вещания и устройствах, да и хорош H.264.