Содержание
- Подготовка DVD
- Обработка видео
- Что такое interlace и с чем его едят
- Как определить что у нас: progressive, interlaced или telecined?
- Избавление от обычной чересстрочности (deinterlace)
- IVTC
- Сжимаем и запаковываем
Последняя статья их серии «Video rip». Мне даже немного грустно, что всё закончилось, но я, наконец-то закрыл гештальт и теперь мне не будут сниться сны про то, как хабралюди просят меня завершить начатое.
![image](https://habrastorage.org/getpro/habr/post_images/cbc/7fd/2d7/cbc7fd2d78f8a34ff0b01b05bfb343bc.png)
Сегодня мы узнаем как лучше всего сжимать, в какой формат, какой контейнер использовать и какими утилитами. Эта часть будет самой простой и в какой-то мере общеобразовательной.
Итак, для начала немного определимся с терминами.
Контейнер — это такая штука, куда мы можем положить видео и/или аудио, которое сжато каким-то алгоритмом. Примеры популярных контейнеров — 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](https://habrastorage.org/getpro/habr/post_images/2d4/c71/234/2d4c712342c219b2fb4958fb9f0ff5d1.png)
А ещё, у матрёшки есть одна классная фишка. Предположим у вас анаморфное видео. Это такое, которое на DVD хранится в разрешении, например, 720x480, но при выводе растягивается плеером до соотношения 16:9. Те кто кодирует, часто, по недостатку знаний применяют фильтры для изменения размера кадра. Но это не нужно.
Лучше всего закодировать видео в том разрешении, в котором оно хранится на DVD, а, затем, в свойствах матрёшки, при сборке результирующего видеофайла, указать требуемое соотношение или разрешение.
Хорошие плееры, которые поддерживают MKV автоматически растянут видео. Причём, если плеер действительно хороший, то в настройках можно выбрать алгоритм по которому будет производиться resize.
Это гораздо лучше, чем корёжить видео на этапе кодирования.
Делается это вот так.
![image](https://habrastorage.org/getpro/habr/post_images/29c/92b/d37/29c92bd3748599d0d702f588f2d7abf0.png)
На этом, пожалуй всё. До новых встреч! (:
В тексте присутствуют правки от mvgolubev