Перекодирование видео или о том, как сделать большое маленьк
Добавлено: 12 май 2008, 14:01
СТАТЬЯ ПЕРВАЯ - ПОУЧИТЕЛЬНАЯ
Несколько слов о процессе кодировки.
Каждому человеку хочется иметь маленькие и супер-пупер-мега качественные видео ролики у себя на компе , на диске, флешке и еще черт знает где..
К великому сожалению, это НЕВОЗМОЖНО.
Всегда приходится искать баланс между размером файла и качеством изображения.
Все искусство перекодирования видео и сводиться к нахождению этого баланса.
Обсудим некоторые термины.Без них ничего не будет.
Я попытаюсь описать сложное простым языком.Надеюсь у меня получиться.
Для этого я разззздваиваюсь.
Что? Уже где-то было?
Следует отметить, что все сказанное ниже касается как видео , так и аудио дорожек.(любой видео материал обычно содержит и картинку и звук)
Итак.
- Слыш , я тут видео с DV камеры схватил. 20 минут на 4 Гига - еле на DVD болванку влез, а у пацана-соседа видал DVD диск на 10 фильмов.Как так?
- У ребятенка диск так пережат , что кроме квадратиков и не видно ничего.
- Что значит "так пережат"?
- Кодек так настроен был, когда компрессию делали.
- Слыш, ты с кем это только,что разговаривал?
- С тобой,родимый с тобой.
- Ну и че такое этот КОДЕК?
- КОДЕК [CODEC]это программка (а на некоторых DVD плейерах и специальных платах микросхема,которая выполняет все ту-же программку),которая позволяет получить сжатое видео из несжатого и потом его красиво воспроизвести.
- В полном варианте кодек содержит в себе два независимых модуля:КОДЕР [ENCODER] (его называют еще КОМПРЕССОР) и ДЕКОДЕР [DECODER](соответственно РЕКОМПРЕССОР).Компрессор сжимает файл. Рекомпрессор возвращает файл в исходный незажатый вид.
- А че значит " в полном ", "не полном " варианте? Я че такой толстый?
- Нет.Ты не такой толстый, а другой.
- Ты меня не оскорбляй, я сам оскорблюсь!
- Ну смотри.Предположим я - жадный до денег дядя.
- А че предпологать? И так видно.
- Вот.И придумал я супер программу, которая сделает из твоих "20 минут на 4 Гига" - "20 минут на 100 Мега",а качество картинки еще лучше , чем было.
- Прикольно.Грузи дальше.
- Да.И взял я у тебя файл в 4Гиг и закомпрессировал в 100 Мег,записал на болванку CD-R, и отдал тебе.
- Ну класс. А баксы-то где?
- Пришел ты домой, вставил диск в комп, запускаеш Media Player...
- Да...
- И видиш надпись "Данный тип файла не поддерживается"
- Так у тебя-ж на компе, я видел, файлик игрался?
- Игрался. А у тебя нет.
- Чего так?
- Потому что мало сжать компрессором файл , нужно еще научить Media Player "понимать" этот файл, т.е.научить РАСКОМПРЕССИРОВАТЬ файл в несжатое состояние.
- Ну и на фиг его декомпрессировать? Мне и так видно.
- Не видно. Дело в том, что то изображение ,которое ты видиш на экране является потоковым,некомпрессированым видео. Ну как можно сжать бурную горную реку ? Только виртуально.
- Ну и че это получается?
- А получается следующее. Каждый раз, когда ты пытаешься воспроизвести в любом плеере файл плейер считывает из заголовка файла тип компрессора ,которым этот файл закомпрессирован,определяет какому кодеку принадлежит этот компрессор,ищет рекомпрессор этого кодека в своих файлах, если не находит - в операционной системе и при успешном обнаружении воспроизводит файл.
- А если не находит этот самый рекомпрессор?
- В этом случае можно говорить ,что у тебя не установлен кодек и "Кина не будет"
- И че делать?
- Береш 20 баксов, идеш ко мне. Я тебе дам кодек с рекомпрессором.
- Ты че? На мне бабки зарабатывать станешь?
- Так ты-ж сам ко мне пришел!
Здесь я немного кривлю душой. Обычно рекомпрессоры поставляются бесплатно.А за компрессор хотят денюшки.Хочеш смотреть - смотри,хочеш кодировать - плати.
- Не нада мне твой кодек с рекомпресором. Я сам могу закомпрессировать чего хош! Кстати.А что такое "закомпрессировать" и кто такой компрессор?
- КОМПРЕССОР [ENCODER] - модуль кодека, который сжимает видео по определенному алгоритму.
- Ты де таких слов по набирался?
- Алгоритмы сжатия видео разнообразны.Какой-то компрессор разбивает видео файл на равные кусочки (например каждую секунду делается так называемый КЛЮЧЕВОЙ КАДР [KEY FRAME], который полностью без изменений, фотографически переносится в память), а в следующем кадре [FRAME] регистрируются только изменения относительно этого ключевого кадра [KEY FRAME] и в память заносятся только эти изменения.Затем записываются изменения к изменениям и так далее 25 раз.
- Почему 25 раз?
- Мы знаем о телевизионных сигналах не очень много, но телевизионную систему цветности PAL от NTSC отличить можем. Стандарт системы цветности PAL - 25 кадров в секунду [25 FPS],системы цветности NTSC - 30 кадров в секунду [30 FPS].
- А что можно файл иначе разбить? Не посекундно?
- Можно. Другой компрессор разбивает видео файл не на равные куски,как в предыдущем случае , а на куски с приблизительно одинаковым наполнением изображения.Т.е [ENCODER] анализирует файл и находит 10 минут съемок "в ночи". Первый кадр этой "в ночи" устанавливается ключевым [KEY FRAME], далее записываются изменения (а их не очень много так как темень непроглядная) в течении 10 минут.
- Крутой он!
- Третий компрессор вообще все делает через жо... , по... Ну странно,в общем.
- Третий- мой любимый компрессор!
- Как видно, алгоритмы сжатия (я намерено не употребляю слово ВИДЕО) разные, и результаты разные.
При использовании одного компрессора файл получается больше ,а изображение лучше . У другого все наоборот.
У третьего и файл больше и изображение хуже.
- Надо "убить" третьего навсегда и не вспоминать о нем.
- Не надо.Возьмем другой файл , где преобладает быстро-мелькающий по экрану Брюс Уиллис с разбитой рожей. И что мы увидим?
- Да знаю я.Увидим Брюса Уиллиса с разбитой рожей.
- Может быть да.А может и нет.Приоритет изменился.Первые два компрессора сделали маленькие по размеру файлы, а вот нос Брюса Уиллиса шлейфом сопровождает его на экране. Заминка в том, что самого Брюса на экране уже нет , а шлейф от носа есть.
- И что делать?
- Посмотрим на результаты работы третьего компрессора.Он справился с задачей "на Ура". И нос на месте и сопли не размазались.
-Надо для сцены "в ночи" использовать первый компрессор , а для сцен с Брюсиком третий.
- Эта мысль не дает тебе покоя? Жаль , что можно использовать только один алгоритм компрессии,жаль.
- Стоп. Всем стоять . Но ведь никто не сказал насколько этот алгоритм может быть сложным.
Производим предварительный анализ файла, делаем динамическую расстановку КЛЮЧЕВых КАДРОВ [KEY FRAME],
Прогоняем файлы разными алгоритмами, выбираем лучшее, склеиваем варианты и повторно пережимаем, и еще .. и это ...,а сверху так.."
- Верное замечание. Поздравляю.Ты только что создал компрессор DivX.Но,по-мойму , его уже кто-то придумал до тебя.
- Я уже дурею от твоих заумных фраз. Можно проще и короче, чтоб для моих нужд подошло?
- Пробую.
1).ВЫБОР КОМПРЕССОРА ОДНА ИЗ НАИСЛОЖНЕЙШИХ ЗАДАЧ ПРИ КОМПРЕССИИ ФАЙЛОВ.Определение необходимого кодека для каждого случая производится только визуально методом проб и ошибок т.к алгоритмы сжатия у разных кодеков разные.Компрессор всегда записывает в файл тип использованного для компрессии кодека.
2).РЕКОМПРЕССОР [DECODER] нужен операционной системе ,чтобы знать алгоритм , которым данный видео файл закопрессирован.Плейера определяют тип кодека для рекомпрессории из самого файла.В самом видеофайле есть запись о том , каким компрессором этот файл создан, но самого компрессора нет.
3).Для успешной работы по перекодированию нужны разные кодеки , которые содержат как КОМПРЕССОР [ENCODER] для сжатия, так и РЕКОМПРЕССОР [DECODER] для просмотра.
4).Кодеки встраиваются в операционную систему и могут использоваться разными программами в своих целях.(один и тот-же DECODER может использоваться разными плейерами, а один и тот же ENCODER - разными программами кодирования.
3).В проектах для стран СНГ выбирается система цветности PAL (DVD-PAL), частота кадров в секунду - 25 (25 fps)
4)FRAME - кадр. KEY FRAME - ключевой кадр.
На сегодня фсе. Изучаем, размышляем, задаем вопросы.
Несколько слов о процессе кодировки.
Каждому человеку хочется иметь маленькие и супер-пупер-мега качественные видео ролики у себя на компе , на диске, флешке и еще черт знает где..
К великому сожалению, это НЕВОЗМОЖНО.
Всегда приходится искать баланс между размером файла и качеством изображения.
Все искусство перекодирования видео и сводиться к нахождению этого баланса.
Обсудим некоторые термины.Без них ничего не будет.
Я попытаюсь описать сложное простым языком.Надеюсь у меня получиться.
Для этого я разззздваиваюсь.
Что? Уже где-то было?
Следует отметить, что все сказанное ниже касается как видео , так и аудио дорожек.(любой видео материал обычно содержит и картинку и звук)
Итак.
- Слыш , я тут видео с DV камеры схватил. 20 минут на 4 Гига - еле на DVD болванку влез, а у пацана-соседа видал DVD диск на 10 фильмов.Как так?
- У ребятенка диск так пережат , что кроме квадратиков и не видно ничего.
- Что значит "так пережат"?
- Кодек так настроен был, когда компрессию делали.
- Слыш, ты с кем это только,что разговаривал?
- С тобой,родимый с тобой.
- Ну и че такое этот КОДЕК?
- КОДЕК [CODEC]это программка (а на некоторых DVD плейерах и специальных платах микросхема,которая выполняет все ту-же программку),которая позволяет получить сжатое видео из несжатого и потом его красиво воспроизвести.
- В полном варианте кодек содержит в себе два независимых модуля:КОДЕР [ENCODER] (его называют еще КОМПРЕССОР) и ДЕКОДЕР [DECODER](соответственно РЕКОМПРЕССОР).Компрессор сжимает файл. Рекомпрессор возвращает файл в исходный незажатый вид.
- А че значит " в полном ", "не полном " варианте? Я че такой толстый?
- Нет.Ты не такой толстый, а другой.
- Ты меня не оскорбляй, я сам оскорблюсь!
- Ну смотри.Предположим я - жадный до денег дядя.
- А че предпологать? И так видно.
- Вот.И придумал я супер программу, которая сделает из твоих "20 минут на 4 Гига" - "20 минут на 100 Мега",а качество картинки еще лучше , чем было.
- Прикольно.Грузи дальше.
- Да.И взял я у тебя файл в 4Гиг и закомпрессировал в 100 Мег,записал на болванку CD-R, и отдал тебе.
- Ну класс. А баксы-то где?
- Пришел ты домой, вставил диск в комп, запускаеш Media Player...
- Да...
- И видиш надпись "Данный тип файла не поддерживается"
- Так у тебя-ж на компе, я видел, файлик игрался?
- Игрался. А у тебя нет.
- Чего так?
- Потому что мало сжать компрессором файл , нужно еще научить Media Player "понимать" этот файл, т.е.научить РАСКОМПРЕССИРОВАТЬ файл в несжатое состояние.
- Ну и на фиг его декомпрессировать? Мне и так видно.
- Не видно. Дело в том, что то изображение ,которое ты видиш на экране является потоковым,некомпрессированым видео. Ну как можно сжать бурную горную реку ? Только виртуально.
- Ну и че это получается?
- А получается следующее. Каждый раз, когда ты пытаешься воспроизвести в любом плеере файл плейер считывает из заголовка файла тип компрессора ,которым этот файл закомпрессирован,определяет какому кодеку принадлежит этот компрессор,ищет рекомпрессор этого кодека в своих файлах, если не находит - в операционной системе и при успешном обнаружении воспроизводит файл.
- А если не находит этот самый рекомпрессор?
- В этом случае можно говорить ,что у тебя не установлен кодек и "Кина не будет"
- И че делать?
- Береш 20 баксов, идеш ко мне. Я тебе дам кодек с рекомпрессором.
- Ты че? На мне бабки зарабатывать станешь?
- Так ты-ж сам ко мне пришел!
Здесь я немного кривлю душой. Обычно рекомпрессоры поставляются бесплатно.А за компрессор хотят денюшки.Хочеш смотреть - смотри,хочеш кодировать - плати.
- Не нада мне твой кодек с рекомпресором. Я сам могу закомпрессировать чего хош! Кстати.А что такое "закомпрессировать" и кто такой компрессор?
- КОМПРЕССОР [ENCODER] - модуль кодека, который сжимает видео по определенному алгоритму.
- Ты де таких слов по набирался?
- Алгоритмы сжатия видео разнообразны.Какой-то компрессор разбивает видео файл на равные кусочки (например каждую секунду делается так называемый КЛЮЧЕВОЙ КАДР [KEY FRAME], который полностью без изменений, фотографически переносится в память), а в следующем кадре [FRAME] регистрируются только изменения относительно этого ключевого кадра [KEY FRAME] и в память заносятся только эти изменения.Затем записываются изменения к изменениям и так далее 25 раз.
- Почему 25 раз?
- Мы знаем о телевизионных сигналах не очень много, но телевизионную систему цветности PAL от NTSC отличить можем. Стандарт системы цветности PAL - 25 кадров в секунду [25 FPS],системы цветности NTSC - 30 кадров в секунду [30 FPS].
- А что можно файл иначе разбить? Не посекундно?
- Можно. Другой компрессор разбивает видео файл не на равные куски,как в предыдущем случае , а на куски с приблизительно одинаковым наполнением изображения.Т.е [ENCODER] анализирует файл и находит 10 минут съемок "в ночи". Первый кадр этой "в ночи" устанавливается ключевым [KEY FRAME], далее записываются изменения (а их не очень много так как темень непроглядная) в течении 10 минут.
- Крутой он!
- Третий компрессор вообще все делает через жо... , по... Ну странно,в общем.
- Третий- мой любимый компрессор!
- Как видно, алгоритмы сжатия (я намерено не употребляю слово ВИДЕО) разные, и результаты разные.
При использовании одного компрессора файл получается больше ,а изображение лучше . У другого все наоборот.
У третьего и файл больше и изображение хуже.
- Надо "убить" третьего навсегда и не вспоминать о нем.
- Не надо.Возьмем другой файл , где преобладает быстро-мелькающий по экрану Брюс Уиллис с разбитой рожей. И что мы увидим?
- Да знаю я.Увидим Брюса Уиллиса с разбитой рожей.
- Может быть да.А может и нет.Приоритет изменился.Первые два компрессора сделали маленькие по размеру файлы, а вот нос Брюса Уиллиса шлейфом сопровождает его на экране. Заминка в том, что самого Брюса на экране уже нет , а шлейф от носа есть.
- И что делать?
- Посмотрим на результаты работы третьего компрессора.Он справился с задачей "на Ура". И нос на месте и сопли не размазались.
-Надо для сцены "в ночи" использовать первый компрессор , а для сцен с Брюсиком третий.
- Эта мысль не дает тебе покоя? Жаль , что можно использовать только один алгоритм компрессии,жаль.
- Стоп. Всем стоять . Но ведь никто не сказал насколько этот алгоритм может быть сложным.
Производим предварительный анализ файла, делаем динамическую расстановку КЛЮЧЕВых КАДРОВ [KEY FRAME],
Прогоняем файлы разными алгоритмами, выбираем лучшее, склеиваем варианты и повторно пережимаем, и еще .. и это ...,а сверху так.."
- Верное замечание. Поздравляю.Ты только что создал компрессор DivX.Но,по-мойму , его уже кто-то придумал до тебя.
- Я уже дурею от твоих заумных фраз. Можно проще и короче, чтоб для моих нужд подошло?
- Пробую.
1).ВЫБОР КОМПРЕССОРА ОДНА ИЗ НАИСЛОЖНЕЙШИХ ЗАДАЧ ПРИ КОМПРЕССИИ ФАЙЛОВ.Определение необходимого кодека для каждого случая производится только визуально методом проб и ошибок т.к алгоритмы сжатия у разных кодеков разные.Компрессор всегда записывает в файл тип использованного для компрессии кодека.
2).РЕКОМПРЕССОР [DECODER] нужен операционной системе ,чтобы знать алгоритм , которым данный видео файл закопрессирован.Плейера определяют тип кодека для рекомпрессории из самого файла.В самом видеофайле есть запись о том , каким компрессором этот файл создан, но самого компрессора нет.
3).Для успешной работы по перекодированию нужны разные кодеки , которые содержат как КОМПРЕССОР [ENCODER] для сжатия, так и РЕКОМПРЕССОР [DECODER] для просмотра.
4).Кодеки встраиваются в операционную систему и могут использоваться разными программами в своих целях.(один и тот-же DECODER может использоваться разными плейерами, а один и тот же ENCODER - разными программами кодирования.
3).В проектах для стран СНГ выбирается система цветности PAL (DVD-PAL), частота кадров в секунду - 25 (25 fps)
4)FRAME - кадр. KEY FRAME - ключевой кадр.
На сегодня фсе. Изучаем, размышляем, задаем вопросы.