350 likes | 783 Views
Форматы видео файлов. VCD SVCD DVD AVI QuickTime. Наиболее популярные форматы. DVD. Это цифровое видео, сжатое по алгоритму MPEG-2 и записанное на DVD-диск. Формат - 25 кадров в секунду с разрешением 720 х 576 точек при глубине цвета 24-бит (PAL) или 30 кадров 720 х 480 х 24-бит (NTSC)
E N D
Форматы видео файлов • VCD • SVCD • DVD • AVI • QuickTime
DVD • Это цифровое видео, сжатое по алгоритму MPEG-2 и записанное на DVD-диск. • Формат - 25 кадров в секунду с разрешением 720 х 576 точек при глубине цвета 24-бит (PAL) или 30 кадров 720 х 480 х 24-бит (NTSC) • Из за разницы в разрешении и fps фактический поток информации одинаков в обоих случаях, 10368000 пикселя в секунду • В несжатом виде это поток 30 Mбайт в секунду, а двухчасовой фильм будет занимать более 100 гигабайт
Сжатие по стандарту MPEG-2 уменьшает размер файлов и позволяет снизить поток данных до 3-4 мегабайт в секунду • Звук на DVD-дисках записывается в самых различных форматах. Это и PCM (для записей, где требуется точность передачи звуковой картины, например - музыкальное видео), и Dolby ProLogic, и Dolby Digital (AC3). Все эти три формата объединяет одно - они воспроизводят несколько независимых каналов пространственного компрессированного звука, создавая тем самым реалистичную картину происходящего
Структура DVD дисков • Содержимое разных дисков может быть различным, но одна из директорий есть на любом DVD видео диске. Называется эта директория VIDEO_TS • В этой директории можно увидеть файлы трёх разных типов. Это *.BUP *.IFO *.VOB • Первые два используются плеерами для того что бы разобраться, какой файл, когда и как проигрывать, а *.VOB и являются собственно видеофайлами
Структура DVD дисков • Фильмы обычно разбиваются на несколько файлов, и кроме фильмов в этой же директории находятся все ролики, которые входят в дополнительные возможности диска, так что файлов может быть довольно много • Все файлы, независимо от расширения, имеют очень похожие названия. Это VIDEO_TS.*, и VTS_01_0.* и т.п. • Файлы с именем VIDEO_TS.* содержат ролик идущий при старте диска, обычно это анимированный логотип компании производителя
Структура DVD дисков • В файлах с именами VTS_01_0.* может быть всё, что угодно, поэтому остановимся на них поподробнее. Первая цифра в названии файла, _01_ означает порядковый номер ролика, записанный на диске. К примеру, VTS_01_0.VOB и VTS_02_0.VOB это два разных видеофайла, никак не связанных друг с другом. Последняя цифра означает номер части одного и того же видеофайла. • Например VTS_03_0.VOB, VTS_03_1.VOB и VTS_03_2.VOB это три части одного и того же видеофайла, которые идут друг за другом
Структура DVD дисков • Большинство фильмов делятся на несколько частей, обычно размером по одному гигабайту, поэтому если видите несколько больших файлов относящихся к одному видеоряду, то с высокой долей уверенности можно утверждать, что это и есть фильм, записанный на диске • Изредка таких наборов два, обычно это широкоформатная и не широкоформатная версии фильма. • Надо учитывать, что первый файл фильма, который идёт с номером 0, обычно содержит меню, которое появляется при старте диска в DVD плеере, и представляет собой либо просто набор статичных картинок, либо статичные картинки вперемешку с анимацией, используемой в меню.
Региональная защита С целью предотвращения нелегального распространения DVD-видео дисков, ассоциация разработчиков DVD-дисков ввела в спецификацию DVD несколько методов защиты. Наиболее распространённой является региональная защита. Разработчики поделили мир на несколько регионов: • Канада, и США • Япония, Европа, Южная Африка, Ближний Восток (включая Египет) • Юго-Восточная Азия, Восточная Азия (включая Гонконг) • Австралия, Новая Зеландия, Тихоокеанские Острова, Центральная Америка, Южная Америка, Карибские острова • Бывший Советский Союз, Индийский полуостров, Африка (также Северная Корея, Монголия) • Китай • Зарезервированный • Экстерриториальная зона (самолеты, круизные лайнеры и пр.), но она практически не используется Устройства и программы при каждом проигрывании DVD-диска сравнивают код региона записанный на диске со своим внутренним кодом, и если он не совпадает, то отказываются проигрывать диск
Защита от копирования • Macrovision protection, предназначенна для предотвращения нелегального копирования с аналогового (телевизионного) выхода воспроизводящей DVD-видео аппаратуры. В видеосигнал добавляются помехи, которые не дают сделать нормальную запись на видеомагнитофон. • Естественно, эти же помехи будут воспроизведены если проигрывать DVD-видео диски на аппаратуре которая не поддерживает Macrovision, но в настоящее время такая уже давно не производится. Аппаратура которая поддерживает Macrovision способна фильтровать помехи, и показывать нормальную картинку
Защита от копированияCSS • Для предотвращения копирования содержимого DVD-видео диска на жёсткий диск компьютера (откуда его можно копировать как угодно, и на что угодно), используется Content Scrambling System (CSS). Суть её состоит в том, что содержимое диска шифруется, и для расшифровки требуется ключ, который получается из двух частей. Одна часть, это одна из 400 хранящихся на каждом CSS DVD-видео диске комбинаций, вторая часть ключа зависит от конкретного DVD-привода. • Процесс расшифровки осуществляется программой-декодером, которая и проигрывает DVD-видео. Таким образом, если просто переписать содержимое DVD-видео диска защищённого с помощью CSS на жёсткий диск, то декодер не сможет получить вторую половину ключа, и данные не будут расшифрованы
Защита от копирования CSS • Слабость этой системы состоит в том, что блок дешифрования должен быть встроен в каждый софтверный декодер, которые может проигрывать такие диски, и любой может абсолютно легально скачать такую программу, и препарировать её • В итоге произошло то, что должно было произойти. 16 летний норвежский программист Jon Johansen сумел разобраться в работе дешифровального блока, и выпустил программку называемую DeCSS, которая расшифровывает данные и позволяет записывать содержимое защищённых DVD-видео дисков в чистом виде на винт • Это событие послужило поводом к серии судебных разбирательств, которые не закончились до сих пор
AVI (Audio Video Interleaved) • Формат, введенный фирмой Microsoft для использования систем работы с видеоизображениями в среде Windows • Файлы AVI (чередование аудио и видео) получили свое имя из-за того, что они перемежают звуковые и видеоданные • Основное преимущество универсального формата AVI, в отличие от потоковых форматов типа MPEG, в том, что «стандартных» AVI-файлов практически не существует: AVI — фактически не более чем «контейнер», который содержит общее описание содержимого в стандартизованном виде
AVI • Аудио и видео последовательности в AVI файле не содержат временных меток. Данные упорядочиваются во времени последовательно, согласно их порядку в AVI файле. • Видеоплеер должен отображать кадры видеопоследовательности и аудиопоток согласно частоте кадров и частоте дискретизации соответственно, указанных в заголовках файла • Если звук пишется через звуковую карту - точная синхронизация изображения и звука отсутствует и звук может "уходить от изображения"
AVI • Для воспроизведения файла AVI прежде всего требуется проанализировать его заголовок: там хранится много различной информации, в том числе о частоте кадров и их размере • Программа затем извлекает данные видеокадра и связанного с ним звукового сопровождения, звук передается дальше на звуковую карту, а видеоданные распаковываются и воспроизводятся на экране • Компьютер может не успевать распаковывать кадр в требуемое время, в результате чего сохранение синхронизации в некоторых случаях требует пропуска одного и даже нескольких кадров. На практике программа воспроизведения AVI подбирает такое количество кадров в определенный момент времени, что может сохранять корректное воспроизведение звука, даже если необходимо пропустить один или несколько видеокадров
Представление цвета • Большинство компонентов Microsoft Windows идентифицируют представление цвета по четырехсимвольному коду (FOURCC), например, 'RGB8' или 'YUY2' • 24-разрядный RGB - наиболее известный формат представления цвета, поддерживаемый всеми основными графическими программами. В 24 битах RGB пиксел представлен как три байта, один байт для красного компонента, один байт для зеленого компонента, и один для синего
Представление цвета Другие цветные форматы: • 8 бит полутоновый Y8 • 9 бит бита YUV9 • 12 бит BTYUV 4:1:1 • 12 бит YUV2 4:2:2 • 8 бит YUV12 16 RGB (использует цветовую палитру) • 15 бит RGB (16 бит с значащим разрядным нулем, 5 бит для красного, 5 для зеленого и 5 для синего) • 16 бит RGB (16 бит, 5 бит для красного, 6 для зеленого и 5 для синего) • 24 бит RGB – (описанный выше) • 32 бит RGB (значащий байт нулевой, 8 бит для красного, 8 для зеленого и 8 для синего)
AVI • По структуре AVI-формат представляет собой вариант формата RIFF (Resource Interchange File Format) • Файл этого формата состоит из блоков (chunks), которые, в свою очередь, могут содержать другие вложенные блоки. • RIFF - универсальный формат для обмена мультимедиа данных, совместно разработанный Microsoft и IBM. Фактически, RIFF - аналог формата IFF, созданного Electronic Arts в 1984 году • Самый "верхний" блок - RIFF - содержит идентификатор формы "avi_", который собственно и обозначает, что мы имеем дело с *.avi-файлом. Для идентификатора отведено четыре символа, но один из них не используется
AVI • В *.avi-файле есть по крайней мере два подблока: заголовка и данных • Первый содержит общую информацию о фильме: разрешение изображения, частота кадров, формат аудио и т.д. В заголовке для записи длины файла отводится 32 байта. Это значит, что максимально возможный размер файла - около 4-х Гб. На самом деле реальный размер файла, с которым могут работать программы монтажа, не превышает 2Гб • Подблок данных организован в виде последовательностей записей, каждая из которых состоит из одного кадра и соответствующего звукового сопровождения
В соответствии с общей структурой RIFF, AVI-файл должен иметь следующий вид: RIFF ('AVI ' // четырехбуквенный идентификатор файла (в RIFF-формате) LIST ('hdrl' // список заголовков блоков, определяющих форматы потоков . . . ) LIST ('movi' // блоки данных (потоков) AVI-файла . . . ) ['idx1'<AVI Index>] // необязательный блок, определяющий размещение // блоков данных внутри AVI-файла )
Структура AVI • RIFF AVI • Форма RIFF AVI содержит два блока LIST. Могут присутствовать и другие блоки. Как и в случае с любыми другими форматами RIFF, программы должны игнорировать любой непонятный им блок. • LIST hdrl • Форма LIST hdrl содержит информацию о видеоданных. Блок avih содержит общую информацию, в то время как LIST hdrl содержит информацию о каждом отдельном потоке. Например, в нем может быть указано, что нулевой поток содержит видеоданные с разрешением 180 на 240 пикселов, частотой 10 кадров в секунду и 8-разрядные аудиоданные в формате PCM, оцифрованные с частотой 8 кГц • LIST movi • блоки данных (потоков) AVI-файла • idx1 содержит индекс видеоданных
LIST ‘hdrl’список заголовков блоков, определяющих форматы потоковможет состоять из подсписков: LIST ('hdrl' 'avih‘(<Main AVI Header>) // главный заголовок AVI-файла LIST ('strl' 'strh'(<Stream header>) // заголовок потока 'strf'(<Stream format>) // формат потока 'strd'(additional headerdata) // дополнительный заголовок данных . . . )
(<Main AVI Header>) главный заголовок AVI-файла typedef struct{ DWORD dwMicroSecPerFrame; // Период между кадрами DWORD dwMaxBytesPerSec; // Число байтов в сек DWORD dwReserved1; DWORD dwFlags; // Флаги DWORD dwTotalFrames; // Общее число кадров DWORD dwInitialFrames; DWORD dwStreams; // Число потоков (видео и звук -2) DWORD dwSuggestedBufferSize; // Максимальный буфер DWORD dwWidth; DWORD dwHeight; DWORD dwScale; DWORD dwRate; // Отношение сторон DWORD dwStart; DWORD dwLength; } MainAVIHeader;
(<Stream header>)заголовок потока typedef struct { FOURCC fccType; FOURCC fccHandler; DWORD dwFlags; DWORD dwReserved1; DWORD dwInitialFrames; DWORD dwScale; DWORD dwRate; DWORD dwStart; DWORD dwLength; DWORD dwSuggestedBufferSize; DWORD dwQuality; DWORD dwSampleSize; } AVIStreamHeader;
LIST 'movi'блоки данных (потоков) AVI-файла: • LIST movi • Форма LIST movi содержит сами видеоданные. Этот блок представляет собой последовательность записей (records), каждая из которых содержит один видеокадр и блок с соответствующими звуковыми данными • LIST rec • Каждая запись хранится в своей собственной форме LIST rec. Запись содержит по одному блоку для каждого активного на данный момент потока. В AVI звуковые данные опережают видео на три четверти секунды. Если в фильме нет изображения или звука, то соответствующего потока не будет
LIST 'movi'блоки данных (потоков) AVI-файла: • Список 'movi'состоит из подблоков: LIST ('movi‘ {SubChunk | LIST('rec ' SubChunk1 SubChunk2 . . . ) • Подблок данных организован в виде последовательности записей, каждая из которых состоит из одного кадра видео и соответствующего звукового сопровождения
Звуковые данные WAVE Bytes '##wb' BYTE abBytes[ ];
Видеоданные • Первоначально ##dc -блок был предназначен для хранения сжатого изображения, а ##db -блок — для несжатого DIB (Device Independent Bitmap). Но фактически они оба могут содержать сжатые данные DIB Bits '##db' BYTE abBits[ ]; -------------------------------------------------------------- Compressed DIB '##dc' BYTE abBits[ ];
Поток данных • Блоки, содержащие потоки данных, не имеют фиксированных имен • Четырехсимвольные идентификаторы строятся из номера потока и типа данных. Например блок 00wb содержит аудиоданные (wb) для нулевого потока(00), а блок 01dc содержит видеоданные (dc) для первого потока(01). Потоки пронумерованы в соответствии с их порядком в исходном блоке LIST hdrl
<AVI Index>содержит индекс видеоданных • Index включается в RIFF файл, если установлен флаг AVIF_HASINDEX в dwFlags поле заголовка AVI header typedef struct { DWORD ckid; DWORD dwFlags; DWORD dwChunkOffset; DWORD dwChunkLength; } AVIINDEXENTRY;
Пустой chank'JUNK' • Если необходимо выровнять границу на 2 Kб используется пустой chank 'JUNK' . Приложения игнорируют этот chank. AVI Padding 'JUNK' Byte data[ ]
AVI • Запись в формате AVI может производиться без сжатия или со сжатием • В последнее время большую популярность преобрел формат компрессии по алгоритму DivX ;-) (WMA для аудио) • Используемый для компрессии кодек представляет собой слегка измененную версию кодека Microsoft MPEG-4 Video Codeс
AVI • Видео- и аудиопотоки, которые содержатся в AVI-файле, могут использовать любую комбинацию кодеков • Эти кодеки устанавливаются и регистрируются в операционной системе независимо друг от друга, а программы кодирования хранятся в отдельных DLL-файлах