HLS와 MPEG-DASH로 미디어 공통화
오늘은 기온 차가 심한데 다들 어떻게 지내십니까
streampack의 목촌입니다.
애플은 지난해 아이폰11과 하이시라에서 드디어 HEVC 디코더를 지원하기 시작했고 HLS에서도 HEVC를 사용할 수 있게 됐다.
용기는 Fragmented MP4(fMP4)에만 한정되어 있어 MPEG-DASH와 HLS가 미디어를 공통적으로 사용할 수 있다.
벤토4를 사용하면 같은 미디어에서 MPEG-DASH와 HLS를 한꺼번에 만들어 필요한 파일 그룹(MP4, 재생 목록)을 보낼 수 있기 때문에 절차를 적는다.
준비물
물론 다른 서류도 가능합니다.
https://www.bento4.com/
Bento4 설치
같은 팀 해기 씨가 썼으니까 할애!
아래의 내용을 참조하시오.
단편화
Apple HLS 사양에서 HEVC를 사용할 때는 세그먼트화가 필요합니다.
수중에 있는 출처가 Fragmented MP4(fMP4)가 아니라면 벤토4 부속mp4fragment
로 단편화한다.$ mp4fragment IMG_7611.mov IMG_7611_frag.mov
found regular I-frame interval: 997 frames (at 59.940 frames per second)
원본 파일 → HLS/DASH화
단편화된 후 벤토4mp4dash
에 선언문, 재생 목록(mpd, m3u8)을 쓴다.$ mp4dash --force --hls --no-split --profile=on-demand IMG_7611_frag.mov
Parsing media file 1: IMG_7611_frag.mov
Extracting track 2 from IMG_7611_frag.mov
Extracting track 1 from IMG_7611_frag.mov
Parsing media file 1: tmpaY7qJJ = Extracted[track 2 from IMG_7611_frag.mov]
Parsing media file 2: tmpzr8seI = Extracted[track 1 from IMG_7611_frag.mov]
Processing and Copying media file tmpzr8seI = Extracted[track 1 from IMG_7611_frag.mov]
Processing and Copying media file tmpaY7qJJ = Extracted[track 2 from IMG_7611_frag.mov]
기본값output
은 폴더를 만들고 그룹을 내보냅니다.
비디오 파일, 오디오 파일, 선언, 재생 목록이 만들어집니다.$ ls output/
audio-und-mp4a.m3u8 stream.mpd
master.m3u8 video-hev1.m3u8
media-audio-und-mp4a.mp4 video-hev1_iframes.m3u8
media-video-hev1.mp4
스트리밍
그럼 미디어 유저에게 실제 제작된 파일을 보여주세요!
파일 업로드
output 아래에 생성된 파일을 S3에 넣습니다.
보다
HLS
https://s3-ap-northeast-1.amazonaws.com/{S3통 이름]/encoded/fMP4/hevc/master.m3u8
아이폰의 사파리에서 틀어봤어요.
4/18 추기
상기 마스터.m3u8에서 Hi Sierra의 Safari가 재생되지 않는 것을 발견했습니다.CODECS
정보를 제거한 후 재생성할 수 있는 모양
master.m3u8#EXTM3U
# Created with Bento4 mp4-dash.py, VERSION=1.8.0-621
#
#EXT-X-VERSION:6
# Media Playlists
# Audio
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio/mp4a",LANGUAGE="und",NAME="Unknown",AUTOSELECT=YES,DEFAULT=YES,URI="audio-und-mp4a.m3u8"
# Video
#EXT-X-STREAM-INF:AUDIO="audio/mp4a",AVERAGE-BANDWIDTH=3603386,BANDWIDTH=4306476,CODECS="hev1.1.6.L123.90,mp4a.40.2",RESOLUTION=1920x1080
video-hev1.m3u8
# I-Frame Playlists
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=3505453,BANDWIDTH=4209252,CODECS="hev1.1.6.L123.90",RESOLUTION=1920x1080,URI="video-hev1.m3u8"
다음과 같이 CODECS
정보를 제거하면 Hi Sierra Safari를 통해 재생성할 수 있습니다.
master_rev.m3u8#EXTM3U
# Created with Bento4 mp4-dash.py, VERSION=1.8.0-621
#
#EXT-X-VERSION:6
# Media Playlists
# Audio
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio/mp4a",LANGUAGE="und",NAME="Unknown",AUTOSELECT=YES,DEFAULT=YES,URI="audio-und-mp4a.m3u8"
# Video
#EXT-X-STREAM-INF:AUDIO="audio/mp4a",AVERAGE-BANDWIDTH=3603386,BANDWIDTH=4306476,RESOLUTION=1920x1080
video-hev1.m3u8
# I-Frame Playlists
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=3505453,BANDWIDTH=4209252,RESOLUTION=1920x1080,URI="video-hev1.m3u8"
MPEG-DASH
Windows 10Edge라면 바로 재생할 수 있습니다(아마도!)
https://s3-ap-northeast-1.amazonaws.com/{S3통 이름]/encoded/fMP4/hevc/stream.mpd
이쪽에도 주머니가 없으니 안드로이드의 엑소플레이어로 틀어주세요.
그나저나 엑소플레이어에서는 위의 HLS도 바로 재생할 수 있다.
총결산
HLS와 MPEG-DASH가 공통된 미디어 파일을 사용하면 노동력을 줄일 수 있을 뿐만 아니라 자원을 삭감할 수 있다.
지금은 낡은 OS를 고려해야 하지만 앞으로 이쪽이 주류가 되지 않겠는가.
Reference
이 문제에 관하여(HLS와 MPEG-DASH로 미디어 공통화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomopyonsama/items/d520af4a6198da5af928
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Apple HLS 사양에서 HEVC를 사용할 때는 세그먼트화가 필요합니다.
수중에 있는 출처가 Fragmented MP4(fMP4)가 아니라면 벤토4 부속
mp4fragment
로 단편화한다.$ mp4fragment IMG_7611.mov IMG_7611_frag.mov
found regular I-frame interval: 997 frames (at 59.940 frames per second)
원본 파일 → HLS/DASH화
단편화된 후 벤토4mp4dash
에 선언문, 재생 목록(mpd, m3u8)을 쓴다.$ mp4dash --force --hls --no-split --profile=on-demand IMG_7611_frag.mov
Parsing media file 1: IMG_7611_frag.mov
Extracting track 2 from IMG_7611_frag.mov
Extracting track 1 from IMG_7611_frag.mov
Parsing media file 1: tmpaY7qJJ = Extracted[track 2 from IMG_7611_frag.mov]
Parsing media file 2: tmpzr8seI = Extracted[track 1 from IMG_7611_frag.mov]
Processing and Copying media file tmpzr8seI = Extracted[track 1 from IMG_7611_frag.mov]
Processing and Copying media file tmpaY7qJJ = Extracted[track 2 from IMG_7611_frag.mov]
기본값output
은 폴더를 만들고 그룹을 내보냅니다.
비디오 파일, 오디오 파일, 선언, 재생 목록이 만들어집니다.$ ls output/
audio-und-mp4a.m3u8 stream.mpd
master.m3u8 video-hev1.m3u8
media-audio-und-mp4a.mp4 video-hev1_iframes.m3u8
media-video-hev1.mp4
스트리밍
그럼 미디어 유저에게 실제 제작된 파일을 보여주세요!
파일 업로드
output 아래에 생성된 파일을 S3에 넣습니다.
보다
HLS
https://s3-ap-northeast-1.amazonaws.com/{S3통 이름]/encoded/fMP4/hevc/master.m3u8
아이폰의 사파리에서 틀어봤어요.
4/18 추기
상기 마스터.m3u8에서 Hi Sierra의 Safari가 재생되지 않는 것을 발견했습니다.CODECS
정보를 제거한 후 재생성할 수 있는 모양
master.m3u8#EXTM3U
# Created with Bento4 mp4-dash.py, VERSION=1.8.0-621
#
#EXT-X-VERSION:6
# Media Playlists
# Audio
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio/mp4a",LANGUAGE="und",NAME="Unknown",AUTOSELECT=YES,DEFAULT=YES,URI="audio-und-mp4a.m3u8"
# Video
#EXT-X-STREAM-INF:AUDIO="audio/mp4a",AVERAGE-BANDWIDTH=3603386,BANDWIDTH=4306476,CODECS="hev1.1.6.L123.90,mp4a.40.2",RESOLUTION=1920x1080
video-hev1.m3u8
# I-Frame Playlists
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=3505453,BANDWIDTH=4209252,CODECS="hev1.1.6.L123.90",RESOLUTION=1920x1080,URI="video-hev1.m3u8"
다음과 같이 CODECS
정보를 제거하면 Hi Sierra Safari를 통해 재생성할 수 있습니다.
master_rev.m3u8#EXTM3U
# Created with Bento4 mp4-dash.py, VERSION=1.8.0-621
#
#EXT-X-VERSION:6
# Media Playlists
# Audio
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio/mp4a",LANGUAGE="und",NAME="Unknown",AUTOSELECT=YES,DEFAULT=YES,URI="audio-und-mp4a.m3u8"
# Video
#EXT-X-STREAM-INF:AUDIO="audio/mp4a",AVERAGE-BANDWIDTH=3603386,BANDWIDTH=4306476,RESOLUTION=1920x1080
video-hev1.m3u8
# I-Frame Playlists
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=3505453,BANDWIDTH=4209252,RESOLUTION=1920x1080,URI="video-hev1.m3u8"
MPEG-DASH
Windows 10Edge라면 바로 재생할 수 있습니다(아마도!)
https://s3-ap-northeast-1.amazonaws.com/{S3통 이름]/encoded/fMP4/hevc/stream.mpd
이쪽에도 주머니가 없으니 안드로이드의 엑소플레이어로 틀어주세요.
그나저나 엑소플레이어에서는 위의 HLS도 바로 재생할 수 있다.
총결산
HLS와 MPEG-DASH가 공통된 미디어 파일을 사용하면 노동력을 줄일 수 있을 뿐만 아니라 자원을 삭감할 수 있다.
지금은 낡은 OS를 고려해야 하지만 앞으로 이쪽이 주류가 되지 않겠는가.
Reference
이 문제에 관하여(HLS와 MPEG-DASH로 미디어 공통화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomopyonsama/items/d520af4a6198da5af928
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ mp4dash --force --hls --no-split --profile=on-demand IMG_7611_frag.mov
Parsing media file 1: IMG_7611_frag.mov
Extracting track 2 from IMG_7611_frag.mov
Extracting track 1 from IMG_7611_frag.mov
Parsing media file 1: tmpaY7qJJ = Extracted[track 2 from IMG_7611_frag.mov]
Parsing media file 2: tmpzr8seI = Extracted[track 1 from IMG_7611_frag.mov]
Processing and Copying media file tmpzr8seI = Extracted[track 1 from IMG_7611_frag.mov]
Processing and Copying media file tmpaY7qJJ = Extracted[track 2 from IMG_7611_frag.mov]
$ ls output/
audio-und-mp4a.m3u8 stream.mpd
master.m3u8 video-hev1.m3u8
media-audio-und-mp4a.mp4 video-hev1_iframes.m3u8
media-video-hev1.mp4
그럼 미디어 유저에게 실제 제작된 파일을 보여주세요!
파일 업로드
output 아래에 생성된 파일을 S3에 넣습니다.
보다
HLS
https://s3-ap-northeast-1.amazonaws.com/{S3통 이름]/encoded/fMP4/hevc/master.m3u8
아이폰의 사파리에서 틀어봤어요.
4/18 추기
상기 마스터.m3u8에서 Hi Sierra의 Safari가 재생되지 않는 것을 발견했습니다.
CODECS
정보를 제거한 후 재생성할 수 있는 모양master.m3u8
#EXTM3U
# Created with Bento4 mp4-dash.py, VERSION=1.8.0-621
#
#EXT-X-VERSION:6
# Media Playlists
# Audio
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio/mp4a",LANGUAGE="und",NAME="Unknown",AUTOSELECT=YES,DEFAULT=YES,URI="audio-und-mp4a.m3u8"
# Video
#EXT-X-STREAM-INF:AUDIO="audio/mp4a",AVERAGE-BANDWIDTH=3603386,BANDWIDTH=4306476,CODECS="hev1.1.6.L123.90,mp4a.40.2",RESOLUTION=1920x1080
video-hev1.m3u8
# I-Frame Playlists
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=3505453,BANDWIDTH=4209252,CODECS="hev1.1.6.L123.90",RESOLUTION=1920x1080,URI="video-hev1.m3u8"
다음과 같이 CODECS
정보를 제거하면 Hi Sierra Safari를 통해 재생성할 수 있습니다.master_rev.m3u8
#EXTM3U
# Created with Bento4 mp4-dash.py, VERSION=1.8.0-621
#
#EXT-X-VERSION:6
# Media Playlists
# Audio
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio/mp4a",LANGUAGE="und",NAME="Unknown",AUTOSELECT=YES,DEFAULT=YES,URI="audio-und-mp4a.m3u8"
# Video
#EXT-X-STREAM-INF:AUDIO="audio/mp4a",AVERAGE-BANDWIDTH=3603386,BANDWIDTH=4306476,RESOLUTION=1920x1080
video-hev1.m3u8
# I-Frame Playlists
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=3505453,BANDWIDTH=4209252,RESOLUTION=1920x1080,URI="video-hev1.m3u8"
MPEG-DASH
Windows 10Edge라면 바로 재생할 수 있습니다(아마도!)
https://s3-ap-northeast-1.amazonaws.com/{S3통 이름]/encoded/fMP4/hevc/stream.mpd
이쪽에도 주머니가 없으니 안드로이드의 엑소플레이어로 틀어주세요.
그나저나 엑소플레이어에서는 위의 HLS도 바로 재생할 수 있다.
총결산
HLS와 MPEG-DASH가 공통된 미디어 파일을 사용하면 노동력을 줄일 수 있을 뿐만 아니라 자원을 삭감할 수 있다.
지금은 낡은 OS를 고려해야 하지만 앞으로 이쪽이 주류가 되지 않겠는가.
Reference
이 문제에 관하여(HLS와 MPEG-DASH로 미디어 공통화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomopyonsama/items/d520af4a6198da5af928
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(HLS와 MPEG-DASH로 미디어 공통화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tomopyonsama/items/d520af4a6198da5af928텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)