Skip to content

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

지원 여부 확인

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

Samples