Вы здесь: Главная > Разное > Формат видео
Joomla модули на http://joomla3x.ru и компоненты.

Формат видео

Прочитано 32 раз
О форматах видео

В настоящий момент существует огромное количество форматов, предназначенных для хранения цифровой видеоинформации.

Многие, наверное, уже наслышаны о них: это всем известные DivX, MPEG-4, XviD и многие другие.

Наиболее популярными являются форматы: DivX, XviD, MPEG-4 (MPEG-4 ASP), MPEG-1, MPEG-2, H.264 (MPEG-4 AVC), MJPEG, WMV (Windows Media Video), Bink Video, RealVideo.

Каждый обычно выбирает тот или иной формат для каких-то определённых целей.

Выбор того или иного формата при конвертировании обычно напрямую зависит о того, где будет воспроизводиться получаемый видеофайл: на компьютере, на бытовом DVD-плеере и т.д.

Поэтому, перед конвертированием видео файлов, желательно заранее узнать, какие видеоформаты поддерживает устройство, на котором впоследствии будет воспроизводиться конвертируемый файл.

Обычно существует некий алгоритм кодирования видео (например, всем известный MPEG-4 ASP), а на его основе разные разработчики делают свои кодеры (или кодировщики, т.е. программы и библиотеки, которые, на основе того или иного алгоритма, выполняют кодирование).

Для MPEG-4 ASP таких кодеров весьма много: это и всем известный DivX, XviD, Microsoft MPEG-4 и т.д.

О звуковых форматах и дорожках

В любом видеофайле помимо видеодорожки, как правило, присутствует ещё одна или несколько звуковых дорожек.

При воспроизведении видео файла одновременно (синхронно) считываются видеодорожка и одна из звуковых дорожек, таким образом мы видим картинку и слышим соответствующие ей звуки.

Как я уже сказал, звуковых дорожек в одном видеофайле может быть несколько.

Это используется в основном в тех случаях, когда хотят записать в одном видеофайле сразу несколько видов озвучки, чтобы потом при воспроизведении можно было выбрать нужную.

Звуковые дорожки в видеофайлах также имеют свой формат. Форматов этих тоже существует огромное количество.

Наиболее популярными являются: PCM, MP3 (MPEG-1 Layer 3), AC3 (Dolby Digital), FLAC, RealAudio, DTS, WMA, Vorbis и др.

Все они разделяются на так называемые форматы без потери качества (lossless) (например, это форматы PCM и FLAC) и форматы с потерями (MP3, AC3, DTS и др.).

При кодировании звука в loseless-форматы не происходит сжатия и удаления какой-либо информации из файла. Т.е. перекодированный звук остаётся с таким же качеством, как и исходный.

При кодировании с использованием звуковых форматов с потерями используется сжатие, из звука удаляется неслышимая человеческому уху информация, что позволяет значительно уменьшить размер получаемого в итоге звукового файла, но и снизить (пускай и практически незаметно) качество звука.

Уровень такого сжатия можно регулировать, таким образом можно достигнуть минимальных потерь качества и при этом уменьшить размер звукового файла.

Поэтому обычно используют форматы с потерями качества, часто используют формат MP3 из-за его совместимости со многими бытовыми плеерами (однако тот же MP3 не поддерживает звук в формате 5.1, поэтому на его смену пришли более современные форматы - AAC, AC3 и DTS).

В итоге получаемый видеофайл может иметь, например, такую структуру:

1. Видеодорожка (формат XviD)

2. Аудиодорожка-1 (формат MP3)

3. Аудиодорожка-2 (формат AAC)

4. Аудиодорожка-3 (формат MP3)

О контейнерах

Контейнеров существует тоже достаточно немалое количество.

Наиболее популярными являются: AVI, MPG, MKV, MPEG, 3GP, FLV, MOV, MP4, M4V, WMV и др.

Очень часто неопытные пользователи называют тот же контейнер AVI форматом сжатия или спрашивают, например: "А как сжать вот этот фильм в AVI?".

На самом деле, к сжатию контейнеры не имеют никакого отношения.

Контейнер - с точки зрения пользователя, лишь расширение имени видеофайла (иначе говоря, то что пишется в имени файла в конце после точки).

С технической точки зрения, контейнер определяет способ хранения звуковых и видео потоков (дорожек) в видеофайле.

По сути контейнер - это архив, содержащий набор видео и звуковых дорожек, дорожек с субтитрами, а также другую служебную информацию.

Любой видеофайл содержит одну видеодорожку и одну или более аудиодорожек.

Контейнер определяет структуру записи этих дорожек в видеофайле.

Расширение имени (AVI, MKV и т.д.) при этом указывает на тип контейнера.

При этом у каждого контейнера есть свои ограничения в максимальном количестве потоков в одном видео файле, в форматах потоков (например, контейнер AVI не позволяет хранить звуковые дорожки в формате OGG Vorbis) и т.д.

 

Контейнер AVI является наиболее популярным.

Хотя в последнее время его всё больше вытесняет контейнер MKV, который имеет менее жёсткие ограничения на количество потоков (дорожек) и несколько дополнительных фитч (таких как, например, возможность давать собственные названия аудиодорожкам и т.д.).

На сотовых телефонах чаще всего используется контейнер 3GP, который тоже хранит потоки по-своему и имеет свои ограничения.

О конвертировании видеофайлов

При конвертировании (сжатии) видео, помимо форматов видео и звуковой дорожек, обычно указываются определённые параметры сжатия. Сейчас попытаюсь рассказать об основных таких параметрах:

Для видео:

Разрешение (Resolution) - размер каждого отдельного кадра в точках (или как ещё говорят, в пикселах).

Разрешение обычно указывается в формате ширина;высота, где вместо ширина указывается цифрами ширина кадра в точках, а вместо высота; - соответственно, высота кадра (также иногда эти два параметра разделяют не крестиком, а звёздочкой.

Ну это, собственно, не важно).

Т.е. мы знаем, что цифровое изображение строится из точек.

Чем больше количество таких точек, тем больше разрешение и, соответственно, чётче и детальнее получается изображение.

При конвертировании видео различают также SD и HD разрешение.

Если ширина кадра меньше или равна 720 точкам, а высота кадра меньше или равна 576 точкам - то это стандартное (SD) разрешение.

Если же хотя бы один из этих параметров выше - это уже HD-разрешение. HD-разрешение (HD - High Definition - высокая чёткость) даёт большую чёткость и детальность изображения, однако многие старые бытовые плееры не способны воспроизвести видео с таким разрешением.

 

Нередко для обозначения разрешения указывают только высоту кадра: 1080p, 720p, 720i, 480p и т.д.

Последняя цифра указывает на высоту кадра, а буква указывает на тип развёртки (об этом чуть ниже).

Так, например, 1080p - означает разрешение 1920х1080 точек с прогрессивной развёрткой.

Также здесь стоит отметить, что не следует при конвертировании указывать большее разрешение, чем было у исходного видео: качество изображения от этого не улучшится smile.gif

Прогрессивная и чересстрочная развёртка - способы формирования изображения на экране.

При прогрессивной развёртке кадр формируется построчно; при чересстрочной - с чередованием строк (т.е. сначала нам показывают нечётные строки, а потом чётные; такие кадры ещё иногда называют полукадрами), что может делать изображение немного мерцающим на экране.

Поскольку при чересстрочной развертке за один раз строк передаётся вдвое меньше, для устранения мерцания необходимо вдвое увеличивать частоту смены кадров (о ней будет рассказано ниже).

Прогрессивная развёртка примечательна тем, что при её использовании не появляется мерцаний, поскольку кадры передаются целиком.

В цифровом телевидении нередко используется чересстрочная развёртка, поскольку это позволяет при потоковой передаче быстрее сформировать изображение на экране (хотя и не полностью) и обеспечивает тем самым некоторую плавность. В непотоковом видео всё же лучше использовать прогрессивную развёртку.

 

Частота кадров с секунду (FPS - Frame per Second, Frame rate) - параметр указывающий, количество кадров, которое будет сменяться за одну секунду.

Т.е. к примеру, при выборе частоты кадров, равной 25 кадрам в секунду, в течение одной секунды будут последовательно показаны 25 кадров видео.

Чем больше частота кадров, тем более плавно "движется" изображение.

Считается, что минимальная частота кадров, которая хорошо воспринимается человеческим глазом, равна 24 кадрам в секунду (при ещё меньшем количестве кадров можно заметить, что изображение "движется" неплавно, с некоторыми рывками).

В России по стандарту обычно положены 25 кадров в секунду, в США, Японии и некоторых других странах - 30. Для HD-видео также иногда применяется частота кадров в 50 и даже 60 кадров в секунду (например, когда идёт запись с видеоигры).

При конвертировании видео рекомендуется оставить частоту кадров как у исходного видео.

Можно сделать её чуть меньше, но ни в коем случае не больше, иначе в полученное после конвертирования видео будет периодически слегка притормаживать (за счёт того, что всё время какие-то из кадров будут показаны несколько раз друг за другом).

Всё вышесказанное относится к прогрессивной развёртке.

Если используется чересстрочная развёртка, то количество кадров обычно больше в 2 раза. Т.е. если при разрешении, например, 1080p мы используем 30 кадров/сек, то при преобразовании этого видео в 1080i - частота уже полукадров будет равна 60 кадрам/сек.

Ведь, как мы уже говорили выше, в чересстрочной развёртке кадры формируются не сразу целиком, а с чередованием строк: сначала нечётные строки, а потом чётные.

Разумеется, при конвертировании видео с чересстрочной развёрткой в прогрессивную нужно уменьшать частоту кадров и использовать соответствующие фильтры, которые позволяют объединить чередующиеся строки из полукадров.

В описанной ниже программе XviD4PSP 6 такие фильтры есть.

Нередко, при указании разрешения, сразу после типа развёртки указывают ещё и частоту кадров: 1080p30, 1080i60, 1080p60 и т.д.

Соотношение сторон изображения (Ratio) - это даже не параметр, а характеристика разрешения.

Ширина и высота кадра обычно имеют определённое соотношение.

Например, разрешение 640х480 точек - это соотношение 4:3 (т.е. ширина кадра относится к высоте, как 4 к 3).

Существуют несколько стандартных соотношений: 4:3, 5:4, 16:9, 16:10 и др.

При конвертировании видео очень часто многие стараются уменьшить разрешение кадра.

При этом, когда мы подбираем новое разрешение, необходимо учитывать соотношение сторон: к примеру, если в исходном видео было соотношение сторон 16:9, то и в получаемом после конвертирования видео должно быть такое же соотношение, иначе в итоге мы получим искажения (например, лица людей в кадре будут растянуты по горизонтали или вертикали).

 

При конвертировании многие видеоконвертеры предлагают ещё дополнительно указать некое соотношение сторон.

При этом даже для разрешения 640х480 точек можно задать к примеру соотношение 16:9.

Как заметил пользователь Jmd, существуют два типа соотношений сторон: Pixel Aspect Ratio и Storage Aspect Ratio.

Дело в том, что пиксел в кадре может быть не только квадратным, но и прямоугольным. Storage Aspect Ratio при этом является соотношением сторон кадра (т.е. то, о чём мы говорили выше), а Pixel Aspect Ration в данном случае - соотношение сторон одного пиксела.

В конверторе когда мы указываем дополнительно соотношение - это соотношение сторон, которое будет использоваться проигрывателем при воспроизведении файла независимо от его разрешения.

Таким образом, существуют, например, видеофайлы с разрешением скажем 640х480 точек (что по логике соответствует соотношению 4:3), но при воспроизведении они имеют соотношение сторон 16:9, пиксел при этом становится прямоугольным.

Как настраивать этот параметр - зависит от исходника.

Если у исходного видеофайла были квадратные пикселы, то необходимо выбрать соотношение, равное соотношению SAR.

А вообще, многие конвертеры при этом предлагают ещё задать нужное соотношение автоматически, поэтому лучше не париться и поставить этот параметр автоматом. wink.gif

 

Скорость потока результирующих данных (он же битрейт или Bitrate) - основной параметр, определяющий качество и размер получаемого после конвертирования видеофайла.

Измеряется в килобитах в секунду.

Он показывает, какой объём информации будет обрабатываться за одну секунду.

Например, при установке битрейта равного 1400 кбит/сек, одна секунда видео будет занимать приблизительно 1400/8 = 175 Килобайт дискового пространства.

Соответственно, чем больше битрейт, тем большее количество места будет "выделяться" под одну секунду видео, а значит тем лучше будет качество видео и, соответственно, больше размер получаемого видеофайла.

 

Битрейт подбирать нужно исходя из разрешения и частоты кадров видео.

Если установить высокое разрешение кадра, высокую частоту кадров и при этом очень низкий битрейт, то программе-конвертеру придётся больше использовать сжатие, чтобы как-то уместить такое количество кадров такого размера в таком маленьком пространстве, при это качество изображения будет ухудшено.

Поэтому о том, какой битрейт устанавливать, нужно узнавать по разрешению и частоте кадров.

 

Если разрешение и частота кадров высокие, нужно соответственно устанавливать высокий битрейт.

Например, при использовании формата сжатия XviD с использованием разрешения 640х480 точек и частотой кадров 25 кадров/сек относительно хорошее качество изображения можно получить, установив при кодировании битрейт в 1800 кбит/сек.

Понятное дело, что при использовании HD-разрешения, нужно в разы увеличивать и битрейт.

Если использовать формат h264 (MPEG-4 AVC), то для видео с разрешением 1080p30 достаточно будет битрейта в 7-9 Мбит/сек.

Для 60-кадрового HD-видео битрейт нужно делать в 2 раза больше, т.е. для 1080p60 - битрейт порядка 20 Мбит/сек.

 

И ещё один немаловажный момент при выборе битрейта. Не следует устанавливать слишком высокий битрейт (более 20 Мбит/сек).

Дело в том, что не все бытовые проигрыватели способны воспроизвести видео с такой скоростью потока.

Лучше всего, конечно, предварительно закодировать несколько отрывков какого-нибудь фильма в HD-качестве с разными битрейтами и проверить на плеере, будет ли он воспроизводить (ну, и заодно чисто для себя на глаз подобрать, какой битрейт наиболее оптимальный в плане качество-размер).

О переменном битрейте видео

Такой битрейт, когда мы строго указываем некоторое постоянное значение битрейта, называется постоянным битрейтом (CBR, Constant Bitrate). Некоторые форматы видео (например, h264 (он же MPEG-4 AVC)) поддерживают т.н. переменный битрейт (VBR, Variable Bitrate), когда битрейт в каждой секунде видео может меняться (т.е. там где кадры более детальные - там битрейт делается как можно выше, где кадры менее детальные - там наоборот).

Таким образом достигается наиболее оптимальное соотношение размер/качество.

Однако некоторые бытовые проигрыватели не поддерживают переменный битрейт или имеют некоторые проблемы при воспроизведении видео с таким битрейтом.

Существуют несколько вариантов кодирования с использованием переменного битрейта: двухпроходное и однопроходное.

 

Двухпроходное кодирование занимает в 2 раза больше времени, чем однопроходное кодирование или кодирование с постоянным битрейтом.

Суть метода заключается в том, что во время первого прохода кодер анализирует видеодорожку и на основе полученного анализа при повторном проходе подбирает оптимальный битрейт для каждой секунды видео.

 

Однопроходное кодирование в свою очередь подразделяется на кодирование по фиксированному качеству и кодирование по фиксированному диапазону значений битрейта.

В первом случае пользователю предоставляется указать некий коэффициент качества, на основании которого кодер уже сам будет подбирать нужный алгоритм выбора битрейта для каждой секунды.

Во втором случае задаются верхний и нижний пределы значений битрейта и, исходя из этих пределов, кодер выбирает из заданного диапазона значений нужный по его "мнению" битрейт для той или иной секунды видео.

 

Есть ещё третий вариант однопроходного кодирования с переменным битрейтом - по размеру файла.

Пользователь сам указывает желаемый размер файла после кодирования, а кодер уже старается подобрать такой битрейт для каждой секунды видео, чтобы уложиться в заданный лимит.

Такой вариант полезен, когда нужно скажем сжать исходный видеофайл до размера скажем CD-диска.

Недостаток - это, конечно же, неконтролируемое изменение качества.

Такой вариант однопроходного кодирования присутствует, например, в программах Nero Vision Express и Nero DVD Recode при использовании формата Nero Digital MPEG-4 AVC.

 

Многие конвертеры при использовании постоянного битрейта позволяют так же заранее посчитать размер получаемого после кодирования видеофайла.

Делается это при помощи различных т.н. калькуляторов битрейта.

Вот пожалуй и все основные понятия, необходимые простым пользователям при конвертировании видео.

Конечно, существуют ещё другие параметры, такие, как например, максимальное количество B-фреймов, глобальная компенсация движения видео, деблокинг и т.д.

При более детальной настройке кодеков эти параметры можно настраивать.

Нам же сейчас все эти дебри не нужны, а все эти параметры в общем-то в большинстве современных видеоконвертеров уже настроены за нас.

Какой видеокодек и битрейт необходимо устанавливать при конвертировании видео?

Наиболее популярными являются кодеки DivX 5-й и 6-й версий, XviD 1.2.1, h264.

При сжатии SD-видео (т.е. со стандартным разрешением) рекомендуется использовать кодек XviD (по причине его бесплатности и относительно неплохого качества).

При этом для широкоформатного (с соотношением сторон 16:9) видео (это, например, фильмы с разрешением 720х400 точек) вполне подойдёт постоянный битрейт в 1600 кбит/сек.

Для соотношения 4:3 битрейт стоит устанавливать чуть выше - 1800 кбит/сек, по той причине, что высота кадра чуть больше.

Для разрешения 1080p29.97 (или 1080p30) следует выбирать кодек h264 желательно с переменным битрейтом в пределах 7000-9000 кбит/сек.

Для HD-видео с разрешением 720p30 так же используем h264, но битрейт чуть меньше - 4000-6000 кбит/сек.

При использовании частоты кадров 60 кадров/сек с прогрессивной развёрткой (720p60, 1080p60) битрейт необходимо увеличивать в 2 раза: для 1080p60 - до 20 Мбит/сек, для 720p60 - до 12 мбит/сек.

Для видео с низким разрешением (320х240 точек, например) достаточно будет битрейта в 400-600 кбит/сек, кодек XviD, соответственно.

Теперь параметры кодирования звука:

Количество каналов: 1 (моно), 2 (стерео), 5.1 (6-канальный звук).

Частота дискретизации (частота сэмплирования): 11 кГц, 22 кГц, 44.1 кГц, 48 кГц и т.д.

Когда звук оцифровывается, устройство, которое захватывает исходный аналоговый сигнал и преобразовывает его в цифровой (это устройство называется АЦП - аналого-цифровой преобразователь) циклично захватывает из источника аналоговый сигнал разной амплитуды с определённой частотой.

Чем чаще АЦП собирает такой сигнал из источника, тем точнее соответствие полученного цифрового сигнала аналоговому.

Обычно частоту дискретизации выбирают относительно самой высокой частоты в спектре звукового файла: частота дискретизации должна быть более чем в 2 раза выше этой самой высокой частоты.

Мы знаем, что человеческое ухо способно слышать звук в диапазоне частот от 20 до 20000 Гц. 20000х2 = 40000, что как раз таки вписывается в максимальную частоту дискретизации в 44100 Гц.

Вот и ответ: оптимальная частота дискретизации - 44,1 кГц (т.е. даже с запасом). Использование более высокой частоты дискретизации в принципе необоснованно.

Скорость потока результирующих данных (битрейт, Bitrate) - аналогично битрейту в видео.

Чем выше битрейт, тем больше информации результируется за одну секунду, тем выше качество получаемого звучания и тем больше размер получаемого файла.

Так же, в зависимости от формата, существуют постоянный, переменный, а также усреднённый (ABR, Average Bitrate) битрейты.

Усреднённый битрейт по сути является смесью постоянно и переменного: пользователю даётся возможность указать усреднённый битрейт для всей аудиодорожки, а кодер при кодировании уже автоматически старается уложиться под это среднее значение (т.е. чтобы среднее значение битрейта во всей аудиодорожке после перекодирования соответствовало указанному).

Такой тип битрейта используется весьма редко, поэтому многие бытовые проигрыватели могут его не поддерживать.

Впрочем, многое зависит от выбранного аудио кодека.

 

Так какой же аудиокодек выбрать?

На мой взгляд, самым оптимальным является алгоритм AAC. Причин несколько. Во-первых, это поддержка много канала, во-вторых, это высокое качество, в-третьих, это очень хорошая поддержка со стороны производителей бытовых и карманных видеоплееров; ну, и в-четвёртых, это достаточно большое разнообразие аудио кодеков, использующих этот алгоритм, а значит постоянное развитие и конкуренция.

Наиболее популярные из них кодеки - кодек от Apple - QAAC (QuickTime AAC), Nero AAC Encoder, Fraunhofer (FhgAAC) и устаревший кодек FAAC.

Последний не рекомендуется использовать на низких битрейтах по причине плохого качества сжатия, однако на высоких битрейтах кодек сжимает вполне приемлемо.

В рассматриваемой мной ниже программе XviD4PSP 6 как раз таки используется кодек FAAC.

Вы, при желании, можете вытащить звуковую дорожку из видеофайла, закодировать её другим сторонним кодеком, а затем снова "вклеить" в видеофайл (от том как вытаскивать и вклеивать звуковые дорожки в видеофайлах написано ниже).

В большинстве случаев при конвертировании видеофайлов вполне будет достаточно кодека FAAC.

При использовании кодека FAAC в программе XviD4PSP 6 рекомендуется указать следующие параметры сжатия: режим кодирования - Постоянное качество; качество - 120; профиль - Low Complexity (LC), частотный диапазон - Полностью, версия MPEG - MPEG4.

Кодирование звуковой дорожки сторонним кодеком

Кодирование сторонним кодеком выполняется, как правило, через командную строку, либо, например, при помощи бесплатной программы X-Recode II.

При кодировании с использованием кодеков QAAC и Nero AAC Encoder используем параметры:

QAAC: -V 80 -q 2 --adts --ignorelength

Nero: -q 0.5 -ignorelength

 

Другие материалы в этой категории: « Ссылка для подписки на Ваш канал YouTube
 

Зароботок-реклама

Платёжные системы

Браузеры

Реклама

Leoservis

Яндекс.Метрика