Electra 미디어 플레이어는 주로 인터넷에서 호스팅되는 스트리밍 미디어를 위해 디자인된 언리얼 엔진용 미디어 플레이어 플러그인입니다.
Electra는 다음과 같은 미디어 타입을 지원합니다.
- MPEG, DASH 또는 HLS 포맷의 라이브 스트림 및 스태틱 VOD 스트림
- mp3(ISO 11172-3 MPEG 오디오 레이어 3)로 인코딩되고 Icecast 또는 Icycast를 사용하여 제공되는 인터넷 라디오 스트림
- 인터넷, 로컬 네트워크 및 로컬 파일의 정적
.mp4,.mkv,.mp3파일
Electra를 지원하는 플랫폼은 다음과 같습니다.
- Windows 10 이상
- macOS
- iOS 13.0 이상
- Android 5.1 이상
- Playstation 4
- Playstation 5
- Xbox One/S/X
- Xbox Series X
- Nintendo Switch
지원되는 코덱은 물론 재생 가능한 최대 비디오 해상도 및 최대 프레임 레이트는 플랫폼마다 다릅니다. 자세한 사양을 확인하려면 해당 플랫폼의 문서를 참고하세요.
지원되는 코덱
Electra 미디어 플레이어는 아래 나열된 코덱으로 인코딩된 미디어 파일과 스트림을 지원합니다.
비디오
| 미디어 타입 | 스트림 프로토콜 또는 컨테이너 | 가용성 |
|---|---|---|
| H.264/AVC(ISO/IEC 14496-10) | DASH, HLS, mp4, mkv | 플랫폼 OS만 사용 |
| H.265/HEVC(ISO/IEC 23008-2) | DASH, HLS, mp4, mkv | 플랫폼 OS만 사용 |
| VP8 | DASH, mp4, mkv, webm | 플랫폼 OS 또는 추가 플러그인 사용 |
| VP9 | DASH, mp4, mkv, webm | 플랫폼 OS 또는 추가 플러그인 사용 |
오디오
| 미디어 타입 | 스트림 프로토콜 또는 컨테이너 | 가용성 |
|---|---|---|
| AAC(LC, HE, HEv2)(ISO/IEC 14496-3) | DASH, HLS, mp4, mkv | 플랫폼 OS 사용 |
| MPEG Layer 3(ISO 11172-3) | HLS, mp4, mp3 | 추가 플러그인 사용 |
| Opus | DASH, mp4, mkv, webm | 추가 플러그인 사용 |
| FLAC | mp4, mkv | 추가 플러그인 사용 |
자막
| 미디어 타입 | 스트림 프로토콜 또는 컨테이너 | 가용성 |
|---|---|---|
| tx3g | DASH, mp4 | 자막 플러그인 사용 |
| TTML/IMSC1 | DASH | 자막 플러그인 사용 |
| wvtt | DASH, mp4 | 자막 플러그인 사용 |
추가 코덱
Electra용 추가 플러그인은 플러그인 매니저에서 제공됩니다. 플러그인 설치에 대한 자세한 내용은 플러그인으로 작업하기를 참고하세요.
지원되는 미디어 포맷
비디오, 오디오 및 자막은 지원되는 적합한 코덱 중 하나를 사용하여 미디어 기본 스트림으로 인코딩됩니다. 그런 다음 미디어 기본 스트림의 조합은 지원되는 컨테이너 포맷으로 패키징됩니다(일반적인 파일 확장자는 .mp4, .mkv 또는 .ts).
다음 예시와 같이 일부 기본 스트림 타입은 컨테이너에 배치할 수 없습니다.
- VP9 비디오를 MPEG 전송 스트림에 배치하려고 시도하면 프라이빗 스트림에 배치되어 미디어 플레이어에서 인식되지 않을 수 있습니다.
- H.264는 webm 컨테이너에 배치할 수 없습니다. webm 컨테이너는 Matroska/mkv 컨테이너와 완전히 동일하지만 webm에서는 코덱이 VP8, VP9, Opus 및 Vorbis로 제한됩니다. 기타 코덱은 webm에서 허용되지 않습니다.
인터넷 스트리밍의 경우 컨테이너 파일이 짧은 세그먼트로 분할되고 비디오는 일반적으로 여러 해상도와 비트레이트로 제공됩니다. 따라서 사용자의 현재 네트워크 대역폭에 따라 여러 퀄리티 수준 간에 원활하게 전환할 수 있습니다. 이는 DASH 및 HLS 프로토콜에서 처리됩니다.
지원되는 모든 컨테이너 파일은 인터넷에서 스트리밍할 수 있지만, 네트워크 대역폭이 파일의 데이터 속도를 따라가지 못하면 결국 버퍼링을 위해 재생이 지연됩니다.
미디어 파일은 점진적으로 다운로드되거나 저장되지 않습니다. 데이터는 도착하는 대로 처리됩니다. 따라서 여러 기본 스트림이 포함된 파일은 각 스트림의 데이터를 짧은 간격으로 번갈아 가며 배열해야 합니다. 예를 들어 파일에 비디오 기본 스트림의 모든 데이터가 먼저 포함된 후 오디오 기본 스트림의 모든 데이터가 포함된 경우에는 파일을 재생할 수 없습니다. 이 경우에는 파일에 대한 랜덤 액세스가 필요하며, 이는 순차적 데이터 스트리밍과 호환되지 않는 방식입니다.
미디어 포맷 제한
코덱과 컨테이너 파일이 지원되는 미디어 스트림만 재생할 수 있습니다. 미디어 파일에 여러 스트림(트랙)이 포함된 경우 지원되는 코덱으로 인코딩된 스트림은 재생되고 지원되지 않는 트랙은 무시됩니다.
타깃 플랫폼의 일부 비디오 디코더에는 해상도, 프레임레이트, 프로파일, 레벨 또는 이러한 프로퍼티의 조합에 대한 제한이 있습니다. 따라서 동일한 미디어 파일이라도 이러한 제한에 따라 특정 플랫폼에서는 비디오 스트림을 재생할 수 있고 다른 플랫폼에서는 무시될 수 있습니다.
암호화된 미디어
미디어 스트림은 DASH 및 HLS를 사용하는 경우에만 암호화할 수 있습니다. 암호화를 사용하는 .mp4, .mp3, .ts, .mkv 또는 .webm 파일은 재생할 수 없습니다.
암호화는 ISO/IEC 23001-7을 준수해야 합니다. 'cenc' 및 'cbcs' 스킴이 모두 지원됩니다. HLS의 경우 전체 세그먼트 암호화(AES-128 PKCS#7)도 지원됩니다.
커스텀 DRM 시스템은 플러그인을 사용하여 구현할 수 있습니다.
지원되지 않는 기능
DASH 및 HLS의 일부 기능은 사용 빈도가 매우 낮기 때문에 Electra에서 지원되지 않습니다.
DASH
- 라이브 및 온디맨드 스트리밍에 일반적으로 사용되는 프로파일은 지원됩니다.
- 전체 프로파일과 특정 기능이 포함된 특정 프로파일은 프레젠테이션에 실제 사용되지 않더라도 지원되지 않습니다.
- 전송 스트림이 필요한 프로파일은 지원되지 않습니다.
- 다양한 세그먼트 어드레싱 타입 중
는 지원되지 않습니다.
HLS
- 모든 세그먼트 타입(
mp4파생 개체, MPEG TS 및 패킹된 오디오(aac및mp3))은 지원됩니다. - 자막은 현재 지원되지 않지만 향후 출시 버전에서 지원할 계획입니다.
- 다음 플레이리스트 태그는 지원되지 않습니다.
#EXT-X-I-FRAMES-ONLY#EXT-X-PART-INF#EXT-X-PART#EXT-X-BITRATE#EXT-X-DATERANGE#EXT-X-SKIP#EXT-X-PRELOAD-HINT#EXT-X-RENDITION-REPORT#EXT-X-I-FRAME-STREAM-INF#EXT-X-SESSION-DATA#EXT-X-SESSION-KEY#EXT-X-INDEPENDENT-SEGMENTS(Electra의 요구사항이므로 암시적으로 가정됨)#EXT-X-VERSION(평가되지 않음, 최대 버전 12 지원)#EXT-X-SESSION-KEY(라이선스 키를 미리 가져오지 않음)
- 다음 태그는 재생 보조를 위해 부분적으로 인식되고 사용되지만 아직 완전히 지원되지는 않습니다.
#EXT-X-SERVER-CONTROL#EXT-X-CONTENT-STEERING
- 다음 선택적 태그는 지원되지 않습니다.
#EXT-X-DEFINE#EXT-X-GAP
이전 HLS 스트림 지원
플레이리스트 태그와 함께 표시되는 어트리뷰트 중 상당수는 선택 사항이며, 이전 플레이리스트에 존재하지 않을 수 있습니다. 기본 스트림을 재생할 수 있는지 확인하려면 Electra가 해당 코덱과 비디오의 경우 해상도와 프레임레이트를 알아야 합니다. 이러한 태그가 누락된 경우 Electra는 비디오가 H.264(하이 프로파일 레벨 4.0)를 사용하고 오디오가 스테레오 LC-AAC로 되어 있다고 가정합니다.
여러 베리언트 스트림이 있는 경우 Electra는 대역폭 어트리뷰트가 가장 큰 베리언트에 대해 1080p부터 시작하여 각 스트림에 가장 일반적으로 사용되는 해상도를 할당합니다. 할당된 해상도는 각 추가 베리언트 스트림마다 대역폭 순서대로 감소합니다. 프레임레이트는 초당 30프레임(fps) 이하로 가정합니다. 잘못된 할당이 이뤄지면 재생 문제가 발생할 수 있으므로 그러한 할당이 이뤄진 경우 콘솔에 경고가 로깅됩니다.
Electra는 각 베리언트 스트림의 플레이리스트를 로드하지 않고 각 목록에서 미디어 세그먼트를 랜덤으로 선택하여 실제 미디어 콘텐츠를 검사합니다. 이러한 방식은 시간이 오래 걸리고 재생 시작을 딜레이시킵니다. Electra는 CODECS, RESOLUTION, FRAME-RATE(30fps보다 높은 경우)와 같은 모든 관련된 베리언트 스트림 정보가 제공되었고 정확하다고 가정합니다. 베리언트 스트림의 선택은 전적으로 이 정보에 따라 결정됩니다.
이 요구 사항은 DASH에도 적용되지만 DASH의 경우 이러한 어트리뷰트가 필수적이므로 존재해야 합니다.
새로 생성된 HLS 스트림에 대해 최대한의 호환성을 보장하려면 Apple 가이드라인을 따라야 합니다.