mp4hls

/usr/local/m2/setting.json 다음 영역에 대해 기술한다.

{
  "functions": {
    "network": {
      "mp4hls": {
        ...
      }
    }
  }
}

How to use

명령어 리스트

용량제한 없는 HLS를 제공한다.

# 인덱스 파일을 제공한다.
https://foo.com/video.mp4/mp4hls/index.m3u8
https://foo.com/video.mp4/mp4hls/playlist.m3u8

# 분할된 미디어 파일을 mpeg2-ts로 전송한다.
https://foo.com/video.mp4/mp4hls/0.ts
https://foo.com/video.mp4/mp4hls/1.ts

에러 메시지

See also

응답코드

x-sc-chain-error 필드

설명

원본응답

not200

원본에서 200 OK 를 응답받지 못함

원본응답

ftpy

MP4헤더 값이 ftyp 가 아님

원본응답

invalidseq

잘못된 HLS 인덱스 번호

원본응답

toosmall

원본이 최소구성크기(8bytes) 미만

원본응답

failcache

원본콘텐츠 캐시로딩 실패

원본응답

failtrim

MP4 분할실패

415

noav

오디오/비디오 트랙 모두 없음

415

failparse

MP4 분석실패

415

failseek

MP4 탐색실패

415

failbuf

MP4 소스버퍼 할당실패

415

failinits

MPEG2-TS 초기화 실패

415

failgents

MPEG2-TS 생성 실패

meta

"meta" : {
  "enable": false,
  "keyword": "mp4hls"
}
enable (기본: false)

MP4편집 활성화

keyword (기본: mp4hls)

MP4편집 키워드

hls

"hls" : {
  "duration": 10,
  "indexName": "index.m3u8"
  "playlist": {
    "version": 3,
    "alternates": false,
    "alternatesName": "playlist.m3u8",
    "sequence": 0
  }
}
duration (기본: 10초)

MP4를 HLS로 분할하는 기준 시간(초). 분할의 기준은 Video/Audio의 KeyFrame이다. KeyFrame은 들쭉날쭉할 수 있으므로 정확히 분할되지 않는다. 만약 10초로 분할하려는데 KeyFrame이 9초와 12초에 있다면 가까운 값(9초)을 선택한다.

indexName (기본: "index.m3u8)

HLS 인덱스(.m3u8) 파일명

playlist

인덱스 파일 구성

version (기본: 3)

인덱스 파일 버전

alternates (기본: false)

Stream Alternates 사용여부.

alternatesName (기본: "playlist.m3u8)

Stream Alternates 파일명.

sequence (기본: 0)

.ts 파일의 시작 번호. 이 수를 기준으로 순차적으로 증가한다.

encrypt

EXT-X-KEY 암호화를 지원한다.

"encrypt": {
  "enable": false,
  "keyword": "segment.key",
  "token": "",
  "tokenType": null
}
enable (기본: false)

암호화 활성화

keyword (기본: "segment.key)

인덱스 파일에 표기될 암호화 키워드

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="/sample.mp4/mp4hls/segment.key"
#EXTINF:10.677,
...
token

암호화 토큰

tokenType (기본: null)

암호화 토큰 타입

  • null 설정된 token 이 암호화 키로 사용한다.

  • enc 설정된 tokenencryptpassword 로 암호화되어 있다. 사용시 복호화하여 사용한다.