Видеофайлы точнее называть «контейнерами». Это связано с тем, что они могут содержать не только само видео, но и дополнительные дорожки, включая аудио, субтитры и другие видеоматериалы. Также в контейнере может быть более одной дорожки каждого типа, например:
- Несколько точек зрения
- Версии аудио микса в формате стерео или 5.1
- Субтитры на разных языках
- Диалог на разных языках
Для экономии полосы пропускания и места для хранения содержимое каждой дорожки кодируется с помощью «кодека», который сжимает и распаковывает данные по мере необходимости.
Распространенный формат видеокодека — H.264, а распространенный формат аудиокодека — AAC.
Расширения файлов, такие как .mp4, .mov, .webm или .avi, указывают на то, что данные в видеофайле организованы с использованием определенного контейнерного формата.
Аппаратное и программное декодирование
Большинство современных устройств имеют аппаратное обеспечение, предназначенное для декодирования видео. Этому оборудованию обычно требуется меньше энергии для выполнения этой задачи, чем, например, центральному процессору, и это означает, что ресурсы могут использоваться для других задач, кроме декодирования видео.
Это аппаратное ускорение стало возможным благодаря нативным пользовательским API, которые варьируются от платформы к платформе. Архитектура видео Unity скрывает эти различия, предоставляя общий пользовательский интерфейс(пользовательский интерфейс). Позволяет пользователю взаимодействовать с вашим приложением. Подробнее
См. в Словарь и Scripting API, чтобы получить доступ к этим возможностям.
Unity также поддерживает программное декодирование видео. При этом используются видеокодек VP8 и аудиокодек Vorbis, что полезно в ситуациях, когда аппаратное декодирование платформы приводит к нежелательным ограничениям с точки зрения разрешения, наличия нескольких звуковых дорожек или поддержки альфа-канала (см. документацию по Прозрачность для получения дополнительной информации).