Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Формат файла
File format
Multimedia Container Format (MCF) — это незавершенная спецификация формата контейнера, разработанная как полностью свободная и открытая. Проект был заброшен в начале 2004 года, но многие из его инновационных функций впоследствии были реализованы в Matroska, фактическом преемнике MCF.
Multimedia Container Format (MCF) is an unfinished specification for container format, designed to be completely free and open. The project was abandoned in early 2004, but many of its innovative features have since found their way into Matroska, MCF's de facto successor.
История
MCF был первым проектом, создавшим открытый и гибкий формат медиа-контейнера, способный объединять в одном файле несколько видео-, аудио- и потоков субтитров. Проект был начат в 2000 году разработчиком Лассе Кёрккайненом (Tronic) как попытка улучшить устаревающий формат AVI. Первый черновой вариант спецификации был опубликован в 2001 году. Поначалу проект вызвал некоторую путаницу относительно его целей. Это было решено, когда ведущий разработчик создал простой проигрыватель для этого формата с поддержкой встроенных субтитров, что вызвало интерес и привело к росту сообщества. Были добавлены новые функции, а спецификация была доработана. Ключевым событием в истории проекта стало изобретение EBML осенью 2002 года – двоичного метаформата, вдохновленного XML, созданного программистом Стивом Ломме, за которым последовал шестимесячный перерыв в работе Кёрккайнена из-за военной службы. Поскольку MCF в то время считался почти готовым к выпуску, EBML не был принят, что побудило Ломма создать собственный проект Matroska на основе EBML. Из-за отсутствия ведущего разработчика большая часть интереса быстро переключилась на новый проект; к моменту возвращения Кёрккайнена из армии сообщество разработчиков вокруг MCF полностью распалось. Нехватка кадров и учебные обязательства привели к неудаче попыток Кёрккайнена возродить проект. Окончательные спецификации так и не были опубликованы, а последняя новость на веб-странице проекта SourceForge датирована 6 сентября 2003 года.
MCF was the first project to create an open and flexible media container format that could encapsulate multiple video, audio and subtitle streams in one file. The project was started in 2000 by the developer Lasse Kärkkäinen (Tronic) as an attempt to improve the aging AVI format. The first draft specification was published in 2001. At first the project generated some confusion about its intended goals. This was solved when the lead developer created a simple player for the format which supported embedded subtitles, which sparked interest and the community began to grow. Several new features were added, and the specification refined. The crucial event in the project's history was the invention of EBML in the fall of 2002, a binary meta format inspired by XML, by the programmer Steve Lhomme, quickly followed by a six month long coding break by Kärkkäinen due to military service. Since MCF was deemed nearly release ready at the time, EBML was not accepted, which led Lhomme to fork his own Matroska project based on EBML. Due to the absence of the lead developer, most of the interest quickly shifted to the new project; by the time Kärkkäinen returned from the army, the developer community around MCF had completely disintegrated. Lack of manpower and educational commitments caused Kärkkäinen's attempts at reviving the project to fail. The final specifications were never published, and the last news entry on the project's SourceForge web page is dated September 6, 2003.
Особенности
Одной из целей нового формата было упрощение его обработки пользователями. Это достигалось за счет полноты функциональности, устранения необходимости в сторонних расширениях и активного их неиспользования. Благодаря простой, фиксированной структуре, время, необходимое для чтения и разбора информации заголовка, было минимальным. Небольшой размер заголовка (2,5 кБ), содержащего при этом все важные данные, облегчал быстрый просмотр коллекций файлов MCF даже при медленном сетевом соединении. Ключевой особенностью MCF была возможность хранения нескольких глав видео, меню, субтитров на разных языках и множества аудиопотоков (например, для различных языков) в одном файле. Кроме того, контент можно было разделить на несколько файлов, называемых сегментами; сборка сегментов в полноценный фильм происходила автоматически при наличии всех сегментов. Сегменты также можно было воспроизводить отдельно, а степень их перекрытия была настраиваемой. Формат поддерживал видео с переменной частотой кадров. Для проверки целостности в файл встраивались контрольные суммы CRC32 и поддерживались цифровые подписи. В парсер была встроена определенная устойчивость к ошибкам, позволяющая воспроизводить частично поврежденные фильмы. Накладные расходы на кадр в MCF (7 байт) были значительно ниже, чем в AVI (40 байт), и сопоставимы с Matroska (10 байт).
One of the objectives of the new format was to simplify its handling by players. This was to be done by making it feature complete, eliminating the need for third party extensions and actively discouraging them. Because of the simple, fixed structure, the time required to read and parse the header information was minimal. The small size of the header (2.5 kB), which at the same time contained all the important data, facilitated quick scanning of collections of MCF files, even over slow network links. The key feature of MCF was being able to store several chapters of video, menus, subtitles in several languages and multiple audio streams (e. g., for different languages) in the same file. At the same time, the content could be split between several files called segments; assembling the segments into a complete movie was automatic, given the segments were all present. Segments could also be played separately and overlap between segments was customizable. The format also allowed for variable frame rate video. To verify integrity, CRC32 checksums were embedded into the file, and digital signatures were supported. A degree of resilience was built into the parser, allowing for playback of partially corrupted movies. MCF's per frame overhead (7 bytes) was considerably lower than AVI (40 bytes), and comparable to Matroska (10 bytes).
Пределы
Ограничения формата MCF были основаны на человеческом восприятии и ожиданиях прогресса в скорости передачи данных видео. Точность временно́го кода формата ограничена 1 мс. Адресация в файле ограничена 64 битами, что является очень большим значением. Размер кадра ограничен 32-битным номером размера кадра, что ограничивает максимальный размер кадра до 4 ГиБ. Временны́е коды хранятся как 40-битные целые числа, что ограничивает максимальную продолжительность фильма примерно 35 годами. Количество различных потоков в одном файле составляет 216 или 65536. Фильм может быть разбит на максимум 255 сегментов.
The limits of the MCF format were based on human perception and expectations of progress in bitrates of video. The time code precision of the format is limited to 1 ms. The addressing in the file is limited to 64 bits, which is extremely large. Frame size is limited by 32 bit frame size number, limiting frame size at 4 GiB. Time codes are stored as 40 bit integers, which caps maximum movie length at approximately 35 years. The number of distinct streams in one file is 216, or 65536. A movie can be split into a maximum of 255 segments.