Pull to refresh

Video rip. Часть 3. Сжимаем и запаковываем

Reading time3 min
Views34K

Содержание


  1. Подготовка DVD
    1. vStrip
    2. DGMPGDec

  2. Обработка видео
    1. Что такое interlace и с чем его едят
    2. Как определить что у нас: progressive, interlaced или telecined?
    3. Избавление от обычной чересстрочности (deinterlace)
    4. IVTC

  3. Сжимаем и запаковываем


Последняя статья их серии «Video rip». Мне даже немного грустно, что всё закончилось, но я, наконец-то закрыл гештальт и теперь мне не будут сниться сны про то, как хабралюди просят меня завершить начатое.

image

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

Итак, для начала немного определимся с терминами.

Контейнер — это такая штука, куда мы можем положить видео и/или аудио, которое сжато каким-то алгоритмом. Примеры популярных контейнеров — AVI, MKV, MP4, OGM. В одном контейнере могут лежать потоки разных форматов.

Алгоритм (формат) сжатия — алгоритм которым сжимается видео или аудио, которое потом будет помещено в контейнер.
Примеры форматов видеокомпрессии:
— MPEG-4 AVC [он же H.264] (реализации кодеров: x264, Apple H.264, Videosoft H.264, Elecard H.264, Intel IPP H.264, MainConcept H.264 и др.);
— MPEG-4 ASP (реализации кодеров: DivX, XviD, libavcodec и др.);
— Ogg Theora (реализация кодера: libtheora).
Примеры форматов аудиокомпрессии:
— MPEG Layer-3 [aka MP3] (реализации кодеров: LAME, Fraunhofer IIS MPEG Layer-3 Audio и др.);
— MPEG-4 AAC (реализации кодеров: Apple AAC, FAAC и др.);
— AC3 [aka Dolby Digital, A/52] (реализации кодеров: liba52 др.);
— Ogg Vorbis (libvorbis).

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

Сжатие

Я рекомендую для сжатия видеопотока всегда использовать компрессию H.264. В качестве конкретной реализации H.264-кодера я выбрал опенсорсный x264. Те, кто говорят: «Вот HD-видео надо им сжимать только, а вот остальное не надо, хватит и XviD», — я считаю, в корне неправы.

H.264 по сравнению с MPEG-4 ASP (DivX/XviD) — это стандарт компрессии следующего поколения. Конкретно x264 имеет кучу, просто тонну настроек, которые позволяют сжимать любое видео, очень тонко регулируя необходимые для декодирования и кодирования аппаратные мощности. Можно так выставить настройки, что одно и то же видео может тормозить, а может и нет.

Может это будет звучать дерзко, но XviD, DivX и иже с ними — умерли, оставьте их для обратной совместимости, но не надо ими больше ничего сжимать.

Для кодирования я рекомендую MeGUI. Если вы читали предыдущие части, то, наверняка, скачали его себе. Описывать как в нём работать, думаю, смысла нет. При желании легко найти мануалы на русском, да там даже и без мануалов всё понятно. Указали входной файл, указали выходной, выбрали профиль кодирования, которых в комплекте полно и нажали на кнопку.

Другое дело, если вам захотелось тонко отрегулировать настройки. Вообще, я хотел сделать по ним отдельную статью, но в комментариях подкинули ссылку, где некто очень хорошо описывает все параметры H.264. Пользуйтесь. Часть 1. Часть 2. Часть 3. Часть 4. Часть 5.

Контейнер

Сейчас популярны три типа контейнеров: AVI, MKV и MP4. Если первый, надеюсь, скоро умрёт, то вот последние два себя очень хорошо показали.

Для утрамбовывания контента в MP4 применяют программу MP4Box, к которой есть неплохой фронтенд Yamb. Как пользоваться Yamb описывать даже стыдно, там всё понятно и так, даже если бы к кнопкам не делали подписи. :)

Для MKV применяется mkvtoolnix. Как ей пользоваться я тоже писать не собирался, но в предыдущей части обещал показать как пользоваться временными отметками, которые генерирует TIVTC. Да и картинка нужна, а то что-то посты без картинок в последнее время у меня совсем.

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

image

А ещё, у матрёшки есть одна классная фишка. Предположим у вас анаморфное видео. Это такое, которое на DVD хранится в разрешении, например, 720x480, но при выводе растягивается плеером до соотношения 16:9. Те кто кодирует, часто, по недостатку знаний применяют фильтры для изменения размера кадра. Но это не нужно.

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

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

Это гораздо лучше, чем корёжить видео на этапе кодирования.

Делается это вот так.

image

На этом, пожалуй всё. До новых встреч! (:

В тексте присутствуют правки от mvgolubev
Tags:
Hubs:
+27
Comments51

Articles