Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #31, ИЮНЬ 2003 г.

ВИДЕО И LINUX. Софт для мега-рипперов

Green (green@linuxhacker.ru)

Спецвыпуск Xakep, номер #031, стр. 031-028-1


ДЕЦЛ ИСТОРИИ

Итак, начинаем наш краткий экскурс в историю и теорию видеопроигрывателей. Все помнят, как работают видеоплееры в Windows? Для тех, кто прогуливал, повторяю: в центральную базу видеокодеков устанавливаются кодеки, при попытке проигрывания медиафайла тип кодека определяется по специальному методу (например, fourCC), и кодек преобразует поток из файла в поток кадров, которые уже и отдаются непосредственно плееру. Таким образом, в Windows все кодеки общие для всех плееров (понятно, что только для тех, которые пользуются таким механизмом, но тех, которые не пользуются, практически нет). От себя все эти плееры могут добавить последующую обработку изображения, выбор аудиоканала и прочие рюшечки.

Всего этого добра в Linux'е нет. Нет никакой централизованной базы для кодеков, никакого стандартизированного API. Есть просто некоторое количество проигрывателей, каждый из которых тянет все или почти все свои кодеки за собой или внутри себя. Наиболее ярким и одним из ранних примеров этого подхода является xanim (http://xanim.polter.net). Сейчас этот проект уже не развивается, но он показателен тем, что, помимо открытых кодеков, его автору удалось договориться с производителями некоторых коммерческих кодеков, чтобы они скомпилировали их в совместимом с xanim формате. До некоторого момента времени все видеоплееры для Linux страдали от недостатка кодеков, ни Apple с их QT, ни Intel (с их intel indeo), ни тем более Microsoft не спешили адаптировать свои продукты (и кодеки) под еще одну платформу. Практически единственным применимым форматом являлся MPEG, да и тот поначалу был не очень хорошего качества. Появилась даже контора (http://www.mpegtv.com), которая продавала улучшенный mpeg-плеер для Linux, способный проигрывать в приемлемом качестве также и VideoCD, причем их продукт пользовался определенным успехом.

В примерно то же время развивался проект WINE (http://www.winehq.com), основной целью которого была эмуляция windows-окружения для запуска windows-приложений под Linux. И, видимо, однажды один из страдающих от недостатка видео под любимой операционкой хакеров посмотрел на WINE, и его осенило - вот есть Windows, вот есть кодеки, вот есть запускалка приложений Windows, так почему бы все это не объединить? И объединил. Получились библиотека avifile и проигрыватель aviplay (http://avifile.sourceforge.net/). Библиотека подгружала к себе виндовые dll'ки, убеждала их, что они живут в родном окружении, подавала им на вход зажатый видеопоток и получала на выходе долгожданное, готовое к показу видео. Этот проигрыватель очень быстро получил огромную популярность, потому что позволял проигрывать ранее недоступные фильмы в DivX, а затем и другие форматы подоспели. Понятное дело, что не все было гладко, не все кодеки работали, но начало было положено, и avifile можно считать новой вехой в развитии на пути доступного Video под Linux (на самом деле это решение подходит только для машинок на x86 процессорах, но таких - подавляющее большинство).

Пока бесплатные плееры развивались, Linux тоже не стоял на месте и с пеной у клюва отвоевывал себе место на пляже (ну в смысле на пользовательском деcктопе). И даже отвоевал так (относительно) много, что его заметили в Real Networks и выпустили Real Player под Linux.

Содержание  Вперед на стр. 031-028-2