M3U
M3U는 멀티미디어 재생목록의 파일 포맷이다. 윈도우 미디어 플레이어, 아이튠즈, 윈앰프, 알송 등 대부분의 프로그램이 지원하고 있지만, 정식 사양은 존재하지 않고 대응 상황은 각각 다르다.
Categories
- FFmpeg:Example:HLS - FFmpeg 의 HLS 변환 옵션 및 코드 샘플 (m3u8 포맷 참조)
Tags
EXT-X-VERSION
Protocol versions and features:
EXT-X-VERSION | Features and usage notes |
2 | IV attribute of the EXT-X-KEY tag |
3 | Floating-point EXTINF duration values |
4 | EXT-X-BYTERANGE, EXT-X-I-FRAME-STREAM-INF, EXT-X-I-FRAMES-ONLY, EXT-X-MEDIA, the AUDIO and VIDEO attributes of the EXT-X-STREAM-INF tag |
5 | KEYFORMAT and KEYFORMATVERSIONS attributes of the EXT-X-KEY tag. The EXT-X-MAP tag. SUBTITLES media type. SAMPLE-AES encryption method EXT-X-KEY |
6 | CLOSED-CAPTIONS media type. Allow EXT-X-MAP for subtitle playlists |
7 | EXT-X-SESSION-DATA, EXT-X-SESSION-KEY, EXT-X-DATERANGE, 'SERVICEn' values of INSTREAM-ID, AVERAGE-BANDWIDTH, FRAME-RATE, CHANNELS, and HDCP-LEVEL attributes. |
8 | EXT-X-GAP, EXT-X-DEFINE, Variable Substitution, VIDEO-RANGE attribute. |
Examples
- Apple Developer Documentation - Example Playlists for HTTP Live Streaming
- [추천] (Swift) HTTP Live Streaming을 위한 재생 목록 (m3u8)
지원 여부 확인
HLS 지원여부 방법은 다음과 같습니다.
/**
* https://github.com/videojs/videojs-contrib-hls
* Whether the browser has built-in HLS support.
*/
videojs.Hls.supportsNativeHls = (function() {
var
video = document.createElement('video'),
xMpegUrl,
vndMpeg;
// native HLS is definitely not supported if HTML5 video isn't
if (!videojs.Html5.isSupported()) {
return false;
}
xMpegUrl = video.canPlayType('application/x-mpegURL');
vndMpeg = video.canPlayType('application/vnd.apple.mpegURL');
return (/probably|maybe/).test(xMpegUrl) ||
(/probably|maybe/).test(vndMpeg);
})();
var video = document.getElementById('video');
var videoSrc = 'https://test.dev/tmp/index.m3u8';
// HLS를 지원하는지 체크
if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = videoSrc;
// HLS를 지원하지 않는다면 hls.js 사용
} else if (Hls.isSupported()) {
var hls = new Hls();
hls.loadSource(videoSrc);
hls.attachMedia(video);
}
See also
Favorite site
- Wikipedia (en) M3U
- HLS 매니페스트 태그 처리 - AWS Elemental MediaTailor
- HTTP 실시간 스트리밍(HLS) 인코더 통합
- HLS를 위한 m3u8 메타 파일 만들기(ffmpeg 사용)
- (Swift) HTTP Live Streaming을 위한 재생 목록 (m3u8)