Совместимость видеофайлов с Unity Editor
Вы можете импортировать различные форматы видео файлов в Unity. Для Unity для предварительного просмотра видео файлов, файлы должны быть совместимы с платформой, на которой вы запускаете Unity Editor. Различные платформы поддерживают различные форматы видео файлов.
Примечание: Ваши файлы также должны быть совместимы с целевыми платформами сборки для ваших пользователей. Unity предоставляет опции для транскодирования видеофайлов в общеподдерживаемые форматы, но вы также можете управлять совместимостью самостоятельно.
Форматы видеофайлов
Каждая платформа редактора поддерживает различные форматы видеофайлов.
| Расширение | Windows | macOS | Linux |
|---|---|---|---|
| .asf | X | ||
| .avi | X | ||
| .dv | X | X | |
| .m4v | X | X | |
| .mov | X | X | |
| .mp4 | X | X | |
| .mpg | X | X | |
| .mpeg | X | X | |
| .ogv | X | X | X |
| .vp8 | X | X | X |
| .webm | X | X | X |
| .wmv | X |
WebM видео — Поддерживаемые видео и аудио кодеки
Unity обычно поддерживает только импорт видео WebM с кодеками VP8 (видео) и Vorbis (аудио). Однако вы можете использовать папку StreamingAssets для добавления видео WebM с другими кодеками в проект. При использовании этой папки Редактор не интерпретирует сам файл, а импортирует raw файл в сборку. Для получения дополнительной информации об этой папке см. Включение дополнительных файлов в сборку.
Затем вы можете использовать код для назначения raw файла компоненту VideoPlayer (см. VideoPlayer.url). Это позволяет целевой платформе читать файл напрямую и обходить ограничения поддержки редактора. Однако импортированный видеоклип не виден в редакторе, и вы не можете перетащить ассет на видеоплеер в сцене.
При использовании видеофайла таким образом разблокируются следующие возможности целевой платформы:
| Платформа | Поддерживаемые видео кодеки | Поддерживаемые аудио кодеки |
|---|---|---|
| Android | Поддерживает видео кодеки, которые поддерживают файлы WebM на Android. См. документацию Android на Поддерживаемые форматы медиа. | Поддерживает аудиокодеки, которые поддерживают файлы WebM на Android. См. документацию Android на Поддерживаемые форматы медиа. |
| Nintendo Switch | VP8, VP9 | Форбис |
| Веб | VP8, VP9 | Vorbis, Опус |
Кодеки
Кодировка должна использовать поддерживаемый кодек. Каждая платформа поддерживает конкретные кодеки, которые могут меняться с каждой версией платформы. Видео файлы, которые используют неподдерживаемые кодеки вызывают сообщение об ошибке в Редакторе, и вы должны конвертировать их в совместимый кодек, прежде чем вы сможете использовать их. Для получения дополнительной информации о поддержке кодеков, см. официальную документацию платформы для вашего Редактора, например Совместимость кодеков в Windows и Совместимость кодеков в macOS.
Оптимальным поддерживаемым видеокодеком для большинства платформ является H.264., однако оптимальной кодировкой для Linux является контейнер .webm с VP8 для видео и Vorbis для аудио.
Неподдерживаемые файлы
Самый простой способ обеспечить совместимость видео для различных платформ — это включить транскодирование в Unity, которое перекодирует видео для совместимости при создании сборки. Однако это может привести к увеличению времени сборки и снижению качества видео. Чтобы транскодировать видеоклипы, см. Video Clip Importer.
Чтобы использовать видеоклипы, которые не поддерживаются платформой Редактор, но поддерживаются вашей целевой платформой, см. Использование неподдерживаемых видеофайлов в Редакторе.