다양한 동영상 파일 포맷을 Unity로 임포트할 수 있습니다. Unity는 임포트한 동영상 파일을 VideoClip 에셋으로 저장합니다.
Unity가 동영상 파일을 미리 보려면 파일이 Unity 에디터를 실행하는 플랫폼과 호환되어야 합니다. 또한 파일은 타겟 빌드 플랫폼과 호환되어야 합니다. Unity는 일반적으로 지원되는 포맷으로 파일을 변환하는 옵션을 제공하지만, 사용자가 호환성을 직접 관리할 수도 있습니다. 자세한 내용은 아래의 타겟 플랫폼과의 호환성을 참조하십시오.
동영상 소스 파일은 에디터 플랫폼에서 지원하는 포맷을 사용해야 합니다. 각 플랫폼은 다양한 동영상 파일 포맷을 지원합니다.
| 확장자 | Windows | macOS | Linux |
|---|---|---|---|
| .asf | ✓ | ||
| .avi | ✓ | ||
| .dv | ✓ | ✓ | |
| .m4v | ✓ | ✓ | |
| .mov | ✓ | ✓ | |
| .mp4 | ✓ | ✓ | |
| .mpg | ✓ | ✓ | |
| .mpeg | ✓ | ✓ | |
| .ogv | ✓ | ✓ | ✓ |
| .vp8 | ✓ | ✓ | ✓ |
| .webm | ✓ | ✓ | ✓ |
| .wmv | ✓ |
동영상 파일 트랙의 인코딩은 지원되는 코덱을 사용해야 합니다. 각 플랫폼은 플랫폼의 각 버전에 따라 변경될 수 있는 특정 코덱을 지원합니다.
미지원 코덱을 사용하는 비디오 파일은 에디터에 오류 메시지가 표시되며, 호환 코덱으로 전환해야 사용할 수 있습니다.
대부분의 플랫폼에서 지원되는 최적의 동영상 코덱은 H.264입니다. 이는 최상의 크로스 플랫폼 호환성을 제공하지만, Linux 에디터는 이 코덱을 지원하지 않습니다.
Linux의 경우 최적의 인코딩은 다음 코덱이 포함된 .webm 컨테이너입니다.
코덱 지원에 대한 자세한 내용은 에디터의 공식 플랫폼 기술 자료를 참조하십시오. Windows 및 macOS용 코덱 호환성은 아래 링크를 참조하십시오.
동영상 클립 임포터는 Unity로 임포트하는 동영상 파일을 변환할 수 있습니다. 이는 동영상이 에디터 플랫폼에서 지원하는 코덱을 사용하지만 파일이 타겟 플랫폼과 호환되지 않는 경우에 유용합니다.
에디터 플랫폼이 아닌 타겟 플랫폼과 호환되는 동영상 파일을 사용하려면 동영상 파일을 스트리밍 에셋으로 설정합니다. 예를 들어 에디터가 VP8만 지원하더라도 Android 빌드에 VP9 코덱을 사용할 수 있습니다.
동영상 파일을 스트리밍 에셋으로 설정하려면 프로젝트의 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
}
Video Player 컴포넌트는 에디터 플랫폼의 네이티브 오디오 및 동영상 디코딩 라이브러리를 사용하여 에디터에서 동영상 파일을 재생합니다. 파일이 타겟 플랫폼의 요구 사항을 충족하는지도 확인해야 합니다.
하드웨어 가속을 위해 지원되는 최고의 네이티브 동영상 코덱은 H.264입니다.
크로스 플랫폼 지원을 우선적으로 고려하는 경우에는 VP8을 선택하는 것이 좋습니다. 이는 광범위하게 지원되고 포괄적인 기능을 갖추고 있지만 H.264와 같은 하드웨어 가속 코덱보다 더 많은 리소스를 소모합니다.
Android는 네이티브 라이브러리를 사용하여 VP8을 지원합니다. 따라서 VP8은 일부 Android 기기에서 하드웨어 지원을 받을 수도 있습니다.
Unity 에디터는 .ogv 포맷을 지원하지만 다른 플랫폼에서는 이 포맷이 널리 지원되지 않습니다. 타겟 플랫폼에 따라 .ogv 파일을 .mp4(H.264) 또는 .webm(VP8)으로 변환하십시오.
아래 표에는 인코딩 파라미터에서 눈여겨봐야 할 키 값이 나열되어 있습니다.
| 파라미터 | 설명 |
|---|---|
| Video Codec | H.264, H.265 또는 VP8입니다. |
| Resolution | 디스플레이의 해상도입니다. 예시: 1280 × 720. |
| Profile | Baseline 또는 Main과 같이 벤더가 종종 지정하는 일련의 기능과 제약 요소입니다. H.264/H.265에 적용됩니다. H.264 또는 H.265를 참조하십시오. |
| Profile Level | H.264/H.265에 적용됩니다. 특정 프로파일 내에서 레벨은 성능 요구 사항(예: Baseline 3.1)을 지정합니다. |
| Audio Codec | AAC(H.264/H.265를 사용하는 mp4 동영상의 경우) 또는 Vorbis(VP8를 사용하는 webm 동영상의 경우)입니다. |
| Audio Channels | 플랫폼에 따라 다릅니다. 플랫폼의 개발자 가이드를 참조하십시오. 예를 들어, Android에 대한 지원 미디어 포맷에 대한 문서를 읽어 볼 수 있습니다. |
동영상 클립 임포터는 VideoClip 에셋을 다음 동영상 코덱 중 하나로 변환하기 위한 옵션을 제공합니다.
변환된 비디오 클립은 자동으로 적절한 오디오 코덱을 사용합니다.
참고: 동영상 클립 임포터는 기본 변환 옵션만 제공합니다. 소스 파일 인코딩 방식에 따라 임포터 옵션으로 변환된 클립에서 최적의 성능을 얻지 못할 수 있습니다. 이 경우 외부 변환 프로그램으로 더 나은 결과를 얻을 수 있습니다.
타겟 시스템이 확실히 지원하는 동영상을 사용하는 경우, 동영상 클립 임포터의 변환 옵션을 비활성화 상태로 유지할 수 있습니다. 비활성화하면 Unity가 파일을 수정하지 않습니다. 외부 프로그램으로 인코딩을 관리하여 세밀하게 제어할 수 있습니다.
이 섹션에서는 비디오 호환성에 대한 유용한 정보와 외부 리소스 링크를 제공합니다.
코덱 지원에 대한 공급업체 권장 사항을 따르십시오. 이전의 모바일 플랫폼에서는 코덱 옵션이 제한적입니다. 여러 기기에서 실행 중인 게임에 포함할 동영상을 검사하고 전환하거나 다시 인코딩해야 할 수 있습니다.
아래 표에는 플랫폼별 요구 사항과 H.265 코덱에 대한 정보가 나와 있습니다.
|플랫폼|요구 사항|인코딩/디코딩|참고 |-|-|-|-|
|macOS|SDK 10.13+ |하드웨어 인코딩: 6세대 Intel Core 프로세서
소프트웨어 인코딩: 모든 Mac 기기
하드웨어 디코딩: 6세대 Intel Core 프로세서
소프트웨어 디코딩: 모든 Mac 기기|
| | Windows |Windows 10 + HEVC 확장 기능 |인코더
디코더 |HEVC 확장 기능(하드웨어만 해당)
HEVC 확장 기능(하드웨어 + 소프트웨어 지원) |
|iOS |SDK 11.0+ |하드웨어 디코딩: A9 칩
소프트웨어 디코딩: 모든 iOS 기기|
| |tvOS |SDK 11.0+ |
| |
|UWP |Windows 10+ |
|기기가 H.265를 지원하더라도 기기 제품군 내 모든 기기에 적용되지 않을 수 있습니다. |
|Android |5.0+ |
| |
2019–05–07
Unity 5.6의 새로운 기능