Сайт | Пользователи | Кто в онлайне? | Поиск
AKPOCC Форум » ОСНОВНЫЕ ФОРУМЫ » ТЕХНИЧЕСКАЯ ЧАСТЬ » Кодеки и контейнеры
 Логин
 Пароль
 Регистрация :: Забыли пароль?
Страницы: (11) « [1] 2 3 4 5 6 7 8 9 10 ... » ответить новая тема новое голосование
 Тема: Кодеки и контейнеры (образовательная мини-статья)« Предыдущая тема | Следующая тема » 
Esc 
почётный пенсионер
 Сообщений: 11393
 Автор АКРОССа
 
Профиль Личные сообщения Сайт ICQ   ЦИТАТА
Данная статья предназначена для отсылания сюда тех, кто пытается что-то "конвертить", не понимая, что они делают и зачем.

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

Итак. Вся информация в компьютере сформирована в виде файлов. Это, надеюсь, ни для кого не сюрприз. Вот от данного базового понятия мы и пойдём.

Всякий видеофайл обязательно должен представлять из себя контейнер. Контейнер - это хранилище для содержимого. Бывают хранилища различной структуры - это форматы контейнеров. Вот например коробка для бенто - это пример контейнера. В неё можно положить суши, а можно темпуру. Что можно положить в видеоконтейнер? Ну как минимум - изображение и звук, по одной штуке. Это такой набор, без которого уже и смотреть нечего. Что можно положить по максимуму? Современный контейнер матрёшка позволяет засунуть в себя несколько видео и аудиодорожек, графические и текстовые субтитры, шрифты для их отображения, картинки и сам не знаю, что ещё.

Возвращаясь к примеру коробки с бенто, отметим, что мисо в неё наливать нельзя - вытечет на фиг. Не всякий контейнер может принять в себя любой поток. Есть ограничения на совместимость, усложняющие жизнь.

Примеры контейнеров: mpeg, avi, mkv, mp4, ogm, vob, mov, rm, divx, asf. Не надо долго присматриваться к списку, чтобы понять, что это стандартные расширения файлов. Разумеется. Потому что файл = контейнер.

Внутри контейнера хранятся потоки или дорожки. Эти потоки имеют свой формат, именуемый кодеком. И вот эту разницу надо особенно чётко понимать. Контейнер - это формат файла. А кодек - это формат потока в нём. Это две независимые вещи. Да, есть некоторые неразрывно связанные контейнеры и кодеки. Например, в контейнере Real Media могут храниться исключительно потоки в формате Real Video и Real Audio. И наоборот, ни в каких других контейнерах (почти - как меня уже успели поправить) эти форматы храниться не могут. Но они всё равно остаются разными понятиями, которые не надо смешивать.

В понятие кодека обычно включают следующие аспекты:
1) Собственно формат хранения данных.
2) Программное обеспечение, позволяющее закодировать информацию в данный формат и/или раскодировать её из него.

Примеры видео кодеков: divx, xvid, avc, x264, vp6, vp7, mpeg-1, mpeg-2, huffyuv.
Примеры аудио кодеков: mp3, ogg, ac3, aac.

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

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

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

MPEG - один из самых древних контейнеров. В нём может храниться исключительно видео в фомате mpeg-1 и аудио в формате mp2. Причём по-хорошему - с довольно строгими ограничениями по размеру изображения и битрейту звука. В силу древности и примитивности формата его понимают практически все плееры и редакторы. Но по тем же самым причинам его почти невозможно стало встретить. Никому такое барахло не нужно.

AVI - тоже довольно древний, но пока ещё весьма полезный контейнер. Хорош он тем, что его понимают опять же все плееры и все редакторы. Влезают в него почти все mpeg-based форматы, а также многие совместимые с ними. В avi не влезают следующие видеоформаты: avc (также известный как Nero AVC или Nero H.264), wmv ниже 9 версии, а также всякая мишура типа real video, которая изначально спроектирована несовместимой ни с чем на свете. Из звуков - якобы всё что угодно, кроме Vorbis ogg.

OGM - это как раз то место, куда лезет Vorbis ogg. Ибо формат был создан на основе этого самого ogg. На данный момент практически вытеснен матрёшкой ибо она умеет всё то же самое, только лучше. И точно также не поддерживается никакими мейнстримовыми программами. Лучший известный софт для обработки - VirtualDubMod.

MKV - матрёшка, в которую влезает практически что угодно, кроме flash video. Но в силу её сложности и универсальности с нею до сих пор можно сделать только такие вещи как: собрать, посмотреть и разобрать.

MP4 - это фактически современный MPEG. Принимает в себя исключительно вещи, совместимые со стандартом MPEG, но зато включая его новейшие разновидности. В первую очередь это видео в H.264 и аудио в aac.

VOB - специальный контейнер для DVD. Хранит в себе видео исключительно в формате mpeg-2. Зато звук может быть в самых разных форматах. Но самым распространённым вариантом является Dolby Digital (ac3).

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


Исправил(а): Esc, 04 января 2007, 21:40

--------------
Реальность отличается высокой скоростью рендеринга и отсутствием сюжета.
Отправлено: 04 января 2007, 21:16 | Зарегистрирован: 17 марта 2003
Генерал Гривус 
duffman
 Сообщений: 711
 Автор
 
Слушает:
hardcore
Профиль Личные сообщения Сайт ICQ  ЦИТАТА
Хмм. Интересно. А как видеопоток из одного контейнера в другой переместить? Я только конвертировать умею...(и то коряво :laugh: )
Отправлено: 05 января 2007, 15:53 | Зарегистрирован: 02 октября 2006
Esc 
почётный пенсионер
 Сообщений: 11393
 Автор АКРОССа
 
Профиль Личные сообщения Сайт ICQ   ЦИТАТА
Генерал Гривус
Это тебе так кажется. На самом деле когда ты прошиваешь звук в видеофайл - это уже перемещение. Когда ты делаешь extract - это тоже перемещение. Мне просто очень хочется, чтобы люди осознали разницу между перекодированием потоков в другой формат и перемещением их без изменений в другой контейнер.

Вот яркий пример: http://forum.akross.ru/ikonboa....;t=3529
Человек не знает, что такое ogm, и готов переводить его в avi или mpeg. Потому что всё, что он знает, это что ogm в редактор не лезет, а avi и mpeg лезут. А человек, знающий написанное мною выше, уже понимает, что перевести ogm в avi элементарно. Потому что в обоих контейнерах хранят видео совместимых кодеков. Поэтому нужно из файла убрать субтитры и убрать/перекодировать звук - и можешь спокойно сохранять в avi. В то время как в mpeg придётся перекодировать всё, и можешь заодно помахать ручкой качеству.


--------------
Реальность отличается высокой скоростью рендеринга и отсутствием сюжета.
Отправлено: 05 января 2007, 16:27 | Зарегистрирован: 17 марта 2003
Генерал Гривус 
duffman
 Сообщений: 711
 Автор
 
Слушает:
hardcore
Профиль Личные сообщения Сайт ICQ  ЦИТАТА
Всё дошло только что Mkv B avi переместил. Операция заняла меньше полуминуты (видео где пол-часа). Результат - без звука и потери качества. Спасибо дядя Esc! :pray:
Отправлено: 05 января 2007, 16:34 | Зарегистрирован: 02 октября 2006
zzerg 
 Сообщений: 682
 Начинающий автор
 
Смотрит:
Dexter
Слушает:
Укоры совести
Профиль Личные сообщения ICQ   ЦИТАТА
Цитата (Генерал Гривус @ 05 января 2007, 13:53)
Хмм. Интересно. А как видеопоток из одного контейнера в другой переместить? Я только конвертировать умею...(и то коряво)
Например, неоценимый VirtualDubMod умеет открывать контейнеры avi, ogm, mkv (могут быть нюансы), и вроде mpeg тоже. А сохранять умеет в avi, mkv (и кажется ogm тоже). Если при этом использовать режим Direct Stream Copy для видео, то видеопоток будет просто скопирован, без перекодирования.
Более того, это можно делать даже не имея соответствующего установленного декодера (разумеется, посмотреть видео при этом нельзя).

ЗЗЫ что-то я торможу нынче...


Исправил(а): zzerg, 05 января 2007, 16:45

--------------
Главное не победа. Главное -- призы!
Отправлено: 05 января 2007, 16:43 | Зарегистрирован: 17 октября 2006
Генерал Гривус 
duffman
 Сообщений: 711
 Автор
 
Слушает:
hardcore
Профиль Личные сообщения Сайт ICQ  ЦИТАТА
Да но я перемещал карасика закоденого ВП7 я если б он был в avc нефига бы не получилось.
Отправлено: 05 января 2007, 16:48 | Зарегистрирован: 02 октября 2006
Aggressor 
ecchi
 Сообщений: 4428
 Автор АКРОССа
 
Профиль Личные сообщения Сайт   ЦИТАТА
И все-таки, чем "открывать" контейнеры MP4 для извлечения видеопотока? Я так и не нашел пока  ничего подходящего.
Отправлено: 05 января 2007, 17:28 | Зарегистрирован: 14 декабря 2006
Генерал Гривус 
duffman
 Сообщений: 711
 Автор
 
Слушает:
hardcore
Профиль Личные сообщения Сайт ICQ  ЦИТАТА
Вегас может mp4 открывать,но перемещать поток без кодирования - нет скорее всего.
Отправлено: 05 января 2007, 17:51 | Зарегистрирован: 02 октября 2006
Esc 
почётный пенсионер
 Сообщений: 11393
 Автор АКРОССа
 
Профиль Личные сообщения Сайт ICQ   ЦИТАТА
Цитата (Генерал Гривус @ 05 января 2007, 07:48)
Да но я перемещал карасика закоденого ВП7 я если б он был в avc нефига бы не получилось.

Моего что ли? о_О

Цитата (zzerg @ 05 января 2007, 07:43)
Например, неоценимый VirtualDubMod умеет открывать контейнеры avi, ogm, mkv (могут быть нюансы), и вроде mpeg тоже.

mkv он берёт только простой структуры. И позорно умирает, если например находит сабы в чём-то кроме srt.

Цитата (zzerg @ 05 января 2007, 07:43)
А сохранять умеет в avi, mkv (и кажется ogm тоже).

В ogm прекрасно сохраняет. Только не надо этого делать. ;-)

Цитата (Aggressor @ 05 января 2007, 08:28)
И все-таки, чем "открывать" контейнеры MP4 для извлечения видеопотока? Я так и не нашел пока  ничего подходящего.

А я например не искал. mp4 довольно редкий контейнер, ради которого мне даже заморачиваться лень. Если припрёт, переведу его в mkv через mkvtoolnix-mkvmerge, а потом mkvextract-ом вытащу всё что надо.  :biggrin:


--------------
Реальность отличается высокой скоростью рендеринга и отсутствием сюжета.
Отправлено: 05 января 2007, 18:43 | Зарегистрирован: 17 марта 2003
vindichi 
 Сообщений: 196
 Начинающий автор
 
Смотрит:
Bleach, Pale Cocoon, Karas
Слушает:
Koяn, Pink Floyd, Slipknot, Mеgaherz
Профиль Личные сообщения ICQ  ЦИТАТА
Esc,

Цитата
В avi не влезают следующие видеоформаты: avc (также известный как Nero AVC или Nero H.264)


А Х264 тоже является же AVC форматом, но в AVI лезет только так. В чем вообще разница между Х264 и Н264?


--------------
Кадры решают фсе!!! =)
Отправлено: 05 января 2007, 18:53 | Зарегистрирован: 02 июля 2006
zzerg 
 Сообщений: 682
 Начинающий автор
 
Смотрит:
Dexter
Слушает:
Укоры совести
Профиль Личные сообщения ICQ   ЦИТАТА
Цитата (vindichi @ 05 января 2007, 16:53)
А Х264 тоже является же AVC форматом, но в AVI лезет только так. В чем вообще разница между Х264 и Н264?
x264 is a free software library for encoding H.264/MPEG-4 AVC video streams.
x264 -- это библиотека для кодирования в формат H.264/MPEG-4 AVC.

Кстати, H.264 и AVC -- это одно и то же.


--------------
Главное не победа. Главное -- призы!
Отправлено: 05 января 2007, 19:18 | Зарегистрирован: 17 октября 2006
Esc 
почётный пенсионер
 Сообщений: 11393
 Автор АКРОССа
 
Профиль Личные сообщения Сайт ICQ   ЦИТАТА
Цитата (vindichi @ 05 января 2007, 09:53)
А Х264 тоже является же AVC форматом, но в AVI лезет только так. В чем вообще разница между Х264 и Н264?

Есть стандарт кодека: H.264, он же MPEG-4 Part 10, он же AVC (Advanced Video Coding).

У данного стандарта на текущий момент есть 2 реализации. Точнее 2 реализованных encoder-а (декодеров чуть больше). Ещё точнее есть третий у Apple, но маки нас как-то мало волнуют.

1. Nero AVC - коммерческий продукт. Его FourCC code - AVC1. Из-за чего именно его обычно именуют просто avc. Поддаётся исключительно помещению в новейшие контейнеры по причине активного использования b-фреймов. И это единственное, что я знаю про b-фреймы. %) Кодируется исключительно через специальную утилиту Nero Recode.

2. x264 - открытая (open source) разработка. FourCC code - H264. Этот уже в avi спокойно себе помещается. Для кодирования есть cli - command line interface, и официально брошенная линия VfW - через которую можно кодить в дабе. Правда если вы откроете в дабе результат, вас может ждать сюрприз со смещением на 3 фрейма. Я не знаю, для чего там в начале вставляются эти drop-фреймы, но мешаются они изрядно. При проигрывании же они дропаются, что понятно из названия. То есть выбрасываются.

Оба формата по праву называются H.264. Оба теоретически являются AVC. Потому что это всё названия стандарта. Из-за чего и происходит вечная путаница между ними.

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


Исправил(а): Esc, 05 января 2007, 19:26

--------------
Реальность отличается высокой скоростью рендеринга и отсутствием сюжета.
Отправлено: 05 января 2007, 19:23 | Зарегистрирован: 17 марта 2003
narsil 
 Сообщений: 927
 Зритель
 
Профиль Личные сообщения   ЦИТАТА
Цитата (Esc @ 05 января 2007, 18:43)
Если припрёт, переведу его в mkv через mkvtoolnix-mkvmerge, а потом mkvextract-ом вытащу всё что надо.
А вот это не всегда прокатит. По крайней мере только что таким образом собрал матрешку, а при попытке разобрать получил, что видео поток не имеет sample rate и mkvextract, ровно как и VDM его глотать не хотят и не будут.
Отправлено: 05 января 2007, 19:31 | Зарегистрирован: 29 декабря 2004
Esc 
почётный пенсионер
 Сообщений: 11393
 Автор АКРОССа
 
Профиль Личные сообщения Сайт ICQ   ЦИТАТА
narsil
Версия mkvtoolnix?


--------------
Реальность отличается высокой скоростью рендеринга и отсутствием сюжета.
Отправлено: 05 января 2007, 19:41 | Зарегистрирован: 17 марта 2003
narsil 
 Сообщений: 927
 Зритель
 
Профиль Личные сообщения   ЦИТАТА
Esc
1.6.0
Отправлено: 05 января 2007, 19:51 | Зарегистрирован: 29 декабря 2004
 163 ответов после 04 января 2007, 21:16 « Предыдущая тема | Следующая тема » 
  [ Подписаться на тему :: Отправить тему на email :: Версия для принтера ]ответить новая тема новое голосование  
  Страницы: (11) « [1] 2 3 4 5 6 7 8 9 10 ... »
AKPOCC Форум » ОСНОВНЫЕ ФОРУМЫ » ТЕХНИЧЕСКАЯ ЧАСТЬ » Кодеки и контейнеры


Рейтинг@Mail.ru   Rambler's Top100     Яндекс.Метрика