В Unity можно импортировать множество форматов видеофайлов. Unity сохраняет импортированные видеофайлы как ресурсы VideoClip.
Чтобы Unity могла выполнять предварительный просмотр видеофайлов, файлы должны быть совместимы с платформой, на которой вы запускаете редактор Unity. Ваши файлы также должны быть совместимы с целевыми платформами сборки. Unity предоставляет возможности для перекодирования файлов в часто поддерживаемые форматы, но вы также можете сами управлять совместимостью. Дополнительную информацию см. в разделе Совместимость с целевыми платформами ниже.
Совместимость с платформами редактора
Исходные видеофайлы должны использовать формат, поддерживаемый вашей платформой редактора. Каждая платформа поддерживает разные форматы видеофайлов.
Extension | Windows | macOS | Linux |
---|---|---|---|
.asf | ✓ | ||
.avi | ✓ | ||
.dv | ✓ | ✓ | |
.m4v | ✓ | ✓ | |
.mov | ✓ | ✓ | |
.mp4 | ✓ | ✓ | |
.mpg | ✓ | ✓ | |
.mpeg | ✓ | ✓ | |
.ogv | ✓ | ✓ | ✓ |
.vp8 | ✓ | ✓ | ✓ |
.webm | ✓ | ✓ | ✓ |
.wmv | ✓ |
Для кодирования дорожек видеофайлов должен использоваться поддерживаемый кодек. Каждая платформа поддерживает определенные кодеки, которые могут изменяться с каждой версией платформы.
Видеофайлы, в которых используются неподдерживаемые кодеки, вызывают сообщение об ошибке в редакторе, и перед использованием их необходимо преобразовать в совместимый кодек.
H.264 — оптимальный поддерживаемый видеокодек для большинства платформ. . Он предлагает наилучшую межплатформенную совместимость, но редактор Linux не поддерживает этот кодек.
Для Linux оптимальной кодировкой является контейнер .webm со следующими кодеками:
Информацию о поддержке кодеков см. в официальной документации платформы для вашего редактора. См. ссылки ниже для информации о совместимости кодеков для Windows и macOS:
Импорт видеоклипов
С помощью модуля импорта видеоклипов можно перекодировать видеофайлы, которые вы импортируете в Unity. Это полезно, когда в ваших видео используется кодек, поддерживаемый платформой редактора, но файлы несовместимы с вашей целевой платформой.
Использование неподдерживаемых видеофайлов в редакторе
Чтобы использовать видеофайлы, совместимые с вашими целевыми платформами, но не с вашей платформой Editor, настройте их как потоковые ресурсы. Например, вы можете использовать кодек VP9 для сборки Android, хотя редактор поддерживает только VP8.
Чтобы настроить видеофайлы как потоковые ресурсы, поместите их в папку StreamingAssets
вашего проекта. Используйте свойство URL, чтобы указать компоненту Video Player потоковые ресурсы.
Вы также можете использовать Application.streamingAssetsPath для доступа к путям для конкретных платформ к потоковым ресурсам через скриптыКусок кода, который позволяет вам создавать свои собственные Компоненты, запускать игровые события, изменять свойства Компонентов с течением времени и реагировать на ввод данных пользователем любым удобным для вас способом. . Подробнее
См. в Словарь. Вы не можете просмотреть эти пути в редакторе.
Если вы хотите иметь версии-заполнители, совместимые с вашим редактором, но использовать другую версию для целевой платформы, вы можете включить обе версии в свой проект, использовать версии, совместимые с редактором, в качестве заполнителей и решить, какую версию использовать в время работы.
В приведенном ниже примере показано, как использовать разные URL-адреса видео для разных платформ. Дополнительную информацию см. в документации по платформенно-зависимой компиляции.
void SetupMovieFile(VideoPlayer vp)
{
#if UNITY_EDITOR || UNITY_LINUX
vp.url = pathToMyVp8File;
#elif UNITY_ANDROID
vp.url = pathToMyVp9File;
#elif UNITY_STANDALONE_WIN
vp.url = pathToMyWmvFile;
#else
vp.url = pathToMyMp4File;
#endif
}
Совместимость с целевыми платформами
Компонент Видеопроигрыватель использует собственные библиотеки декодирования аудио и видео вашей платформы Editor для воспроизведения видеофайлов в редакторе. Вы должны подтвердить, что файлы также соответствуют требованиям для целевой платформы.
Рекомендации по кодированию
Лучшим видеокодеком с собственной поддержкой для аппаратного ускорения является H.264.
Если межплатформенная поддержка является приоритетной задачей, VP8 — хороший выбор. . Он широко поддерживается и имеет полный набор функций, но потребляет больше ресурсов, чем кодеки с аппаратным ускорением, такие как H.264.
H.265 доступен на устройствах, которые его поддерживают. Дополнительную информацию см. в разделе Совместимость с H.265 ниже.
Android поддерживает VP8 с использованием собственных библиотек, поэтому на некоторых устройствах Android VP8 также может поддерживаться аппаратно.
Редактор Unity поддерживает формат .ogv, но на других платформах он широко не поддерживается. Перекодировать файлы .ogv в .mp4 (H.264) или .webm (VP8) в зависимости от целевой платформы.
Перекодирование видеоклипов
С помощью модуля импорта видеоклипов можно перекодировать ресурсы видеоклипа в один из следующих видеокодеков:
Перекодированные видеоклипы автоматически используют соответствующий аудиокодек:
Примечание: |
---|
Инструмент импорта видеоклипов предоставляет только основные параметры транскодирования. В зависимости от того, как закодированы ваши исходные файлы, вы можете не добиться оптимальной производительности от клипов, перекодированных с помощью параметров импортера. В этом случае вы можете получить лучшие результаты с помощью внешней программы транскодирования. |
Кодирование видеоклипов с помощью внешней программы
Если вы используете видео, которые определенно поддерживает целевая система, вы можете оставить параметры транскодирования Video Clip Importer отключенными. Если отключено, Unity не изменяет файлы. Вы можете управлять кодированием с помощью внешней программы, которая обеспечивает более точный контроль.
Примечания о совместимости
В этом разделе содержится полезная информация о совместимости видео и ссылки на внешние ресурсы.
Рекомендации поставщиков по поддержке СМИ
Следуйте рекомендациям поставщиков по поддержке кодеков. На старых мобильных платформах выбор кодеков ограничен. Вам может потребоваться проверить и преобразовать или перекодировать видео, которые вы собираетесь включить в игру, работающую на нескольких устройствах.
- Android: поддерживаемые форматы мультимедиа
- Windows: Поддерживаемые форматы мультимедиа, H.265
- iPhone: Сравните модели iPhone
- UWP: Поддерживаемые кодеки
Совместимость с H.265
В таблице ниже приведены требования и информация для конкретных платформ для кодека H.265.
Платформа | Требования | Кодирование/декодирование | Примечания |
---|---|---|---|
macOS | SDK 10.13+ |
Аппаратное кодирование: процессор Intel Core 6-го поколения.
Программное кодирование: все компьютеры Mac Аппаратное декодирование: процессор Intel Core 6-го поколения Программное декодирование: все компьютеры Mac |
|
Windows | Windows 10 + HEVC extensions | Encoder | HEVC extension (Hardware only) |
iOS | SDK 11.0+ |
Аппаратное декодирование: Чип A9
Программное декодирование: все устройства iOS |
|
tvOS | SDK 11.0+ | ||
UWP | Windows 10+ | Если на устройстве указана поддержка H.265, это может относиться не ко всем устройствам в семействе устройств. | |
Android | 5.0+ |