20
“Architect! Your Role, Our Future” 2014 한국 소프트웨어 아키텍트 대회 - 창조 컨버전스를 이끄는 기술리더로서의 아키텍트 역량과 비전 – : 임 철 홍 : SK C&C 부서/직위 : 통신/전자사업개발TF/부장 컴퓨터시스템 응용 기술사 / KCSA 인증 시니어 아키텍트 미디어 서비스를 위한 SW 아키텍처

미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

“Architect! Your Role, Our Future”

2014 한국 소프트웨어 아키텍트 대회- 창조 컨버전스를 이끄는 기술리더로서의 아키텍트 역량과 비전 –

• 발 표 자 : 임 철 홍

• 회 사 : SK C&C

• 부서/직위 : 통신/전자사업개발TF/부장

• 컴퓨터시스템 응용 기술사 / KCSA 인증 시니어 아키텍트

미디어 서비스를 위한 SW 아키텍처

Page 2: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 2 - 2014 한국소프트웨어 아키텍트대회

목차

1. 미디어 스트리밍 서비스

2. HLS (HTTP LIVE STREAMING)

3. 미디어 서비스 아키텍처

Page 3: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 3 - 2014 한국소프트웨어 아키텍트대회

Ⅰ. 미디어 스트리밍 서비스

미디어 스트리밍 서비스 제공을 위한 구성요소로는 실시간 인코더/인코딩된 미디어, 스트리밍 서버, 플레이어가 있습니다.

1. 미디어 스트리밍 서비스 개요

구성 설명

실시간 인코더 카메라로 입력된 신호를 실시간으로 미디어 프로토콜로 변환하여 생방송을 제공

인코딩된 미디어 스트리밍 서비스를 제공하기 위해 약속된 미디어 포맷으로 트랜스코딩

스트리밍서버 실시간 인코더나 인코딩된 미디어를 플레이어에게 전달 (실시간 트랜스코딩 제공도 가능)

플레이어 스트리밍 서버로 부터 정보를 전달 받아 사용자에게 플레이함 (전용 어플리케이션, 플래시플레이어, 웹 브라우저 등)

실시간인코더

인코딩된미디어 전용스트리밍서버

일반웹서버

스트리밍프로토콜

전용미디어플레이어

웹브라우저(플레이어내장)

Page 4: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 4 - 2014 한국소프트웨어 아키텍트대회

미디어 스트리밍 서비스 종류로는 Progressive Download, Streaming, Adaptive HTTP Streaming이 있으며, Adaptive HTTP Streaming의 활용도가 높아 지고 있습니다.

Ⅰ. 미디어 스트리밍 서비스2. 미디어 스트리밍 서비스 종류

특성 Progressive Download Streaming Adaptive HTTP Streaming

사용서버 웹서버 전용 미디어서버 웹서버

프로토콜 HTTP RTMP/RTSP HTTP

사용포트 80 80 / 1935 80

생방송(Live Streaming)

불가 가능 가능

Bandwidth 활용 적음 적음 효율

파일다운로드 있음 없음 있음

보안성 적음 많음 중간

비용 적음 많음 중간

Progressive Download-점진적으로 사용자 PC에 다운로드하여 재생. Seeking 불가능 (MPEG 표준 발전으로 다운로드가 완료되지 않아도 재생이 가능)

HTTP Pseudo-Streaming-Progressive Download의 단점을 보완 Seeking이 가능(메타파일을 활용하여 다운로드 후에 재생하는 형태임)

스트리밍-생방송 중계 지원되고 보안성이 높음-세션을 유지해야 되기 때문에 Bandwidth 효율성이 떨어지고, 전용 플레이어가 필요한 단점이 있음

Adaptive HTTP Streaming (HLS -> HTTP Live Streaming)-미디어를 작은 조각으로 쪼개어 내려주는 방식. Bandwidth를 플레이어 상황에 맞추어 변경함 (WIFI -> 고화질, 3G -> 저화질)-아이폰에서는 잘 동작(HLS는 Apple의 표준임)하나 안드로이드 지원에 문제 (3.0 이하 사용불가, 4.x도 버그 존재)-서비스 URL을 특정시간만 유효하게 하고 (one time URL) 작은 조각의 미디어를 암호화하여 보안성을 높일 수 있음-플레이어에서 처리가 복잡하고 플레이어 클라이언트의 CPU, 메모리 자원 소요가 큼

Page 5: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 5 - 2014 한국소프트웨어 아키텍트대회

Adaptive HTTP Streaming의 대표적인 표준으로 HLS가 있으며, 분할된 TS파일은 플레이리스트 파일(M3U8)에 기술되고 플레이어에서 순차적으로 재생 됩니다.

II. HLS (HTTP LIVE STREAMING)1. HLS 개요

Live Streaming

(Real Time Transcoding)

인코딩된 파일을미리 올려놓고 서비스(Static Transcoding)

m3u8 ts

구성 설명

미디어서버 소스 미디어 파일을 실시간으로 트랜스코딩하여 m3u8, ts 파일을 만들어서 플레이어에 전달하여 서비스를 제공 (HLS이외에 RTSP, RTMP 등을 동시에 제공)

웹 서버 유틸리티 어플리케이션을 이용하여 m3u8, ts 파일을 만들어서 웹 서버 (스토리지)에 탑재하여 서비스 제공. CMS어플리케이션에서 파일 업로드시에 트랜스코딩 하는 것이 일반적임

미디어서버Wowza – 상용미디어서버 / 멀티프로토콜지원

(RTSP, RTMP, HLS, MPEG-TS 등)Red5 – 오픈소스 미디어서버 (RTMP만 가능)

유틸리티MPEG-TS m3u8

분할된 MPEG-TS(FFMPEG / segmenter 활용)

* 두 가지 모두 필요한 것은 아님

Page 6: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 6 - 2014 한국소프트웨어 아키텍트대회

II. 하이브리드 프레임워크 아키텍처2. M3U8

Bitrate Adaptation을 위한 M3U8은 Bandwidth조건에 따른 M3U8 모음을 기술하고 있고,각 M3U8 파일은 재생될 TS파일 목록을 가지고 있습니다.

Playlist m3u8#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=200000, RESOLUTION=720x480http://ALPHA.mycompany.com/lo/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=200000, RESOLUTION=720x480http://BETA.mycompany.com/lo/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=500000, RESOLUTION=1920x1080http://ALPHA.mycompany.com/md/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=500000, RESOLUTION=1920x1080http://BETA.mycompany.com/md/prog_index.m3u8

Playlist m3u8

Adaptive Bitrate Streaming

Page 7: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 7 - 2014 한국소프트웨어 아키텍트대회

2. M3U8

M3U8은 전체 재생시간, TS파일 리스트, 암호화 키, 해상도 및 코덱 정보를 기술합니다.

지시어 사용예 설명

#EXTM3U #EXTM3U 파일의 가장 첫 줄에 명시하여 파일이 m3u8 포맷임을 명시한다.

#EXTINF #EXTINF: <재생 시간:초>,<제목>

이 지시어의 다음에 명시된 콘텐츠의 재생 시간과 제목을 명시한다.

#EXT-X-

TARGETDUR

ATION

#EXT-X-TARGETDURATION: <시간: 초>

파일 목록에 나열된 각 파일의 최대 재생 시간을 명시한다.

#EXT-X-

ENDLIST

#EXT-X-ENDLIST 플레이 리스트에서 재생할 콘텐츠가 더 이상 없음을 의미한다. 이 지시어가 표시된 줄 이후의 콘텐츠는 무시한다.

#EXT-X-

DISCONTINUI

TY

#EXT-X-DISCONTINUITY

이 지시어가 표지된 줄을 기준으로 이전 줄과 이후 줄에서 재생하는 콘텐츠의 정보가 변경되었음을 표시한다. 예를 들어 이전 콘텐츠와 이후 콘텐츠의 파일 포맷, 파일이 갖고 있는 미디어 트랙의 개수, 인코딩 정보, 재생 시간 정보 등이 변경되면 이 지시어를 플레이리스트에서 정보가 바뀌는 파일 사이에 명시

#EXT-X-

MEDIA-

SEQUENCE

#EXT-X-MEDIA-SEQUENCE: <첫 파일의 일련번호>

제일 먼저 플레이해야하는 파일의 일련번호를 명시한다. 예를 들어 0,1,2의 파일이 있을 경우 이 지시어의 값은 0이 된다. 이 지시어가 포함되지 않은 경우 첫 분할 파일의 일련 번호는 0으로 간주한다.

#EXT-X-KEY #EXT-X-KEY: <암호화 방법>[, <key>]

암호화된 파일을 해독하는 키 값을 명시한다.

#EXT-X-

STREAM-INF

#EXT-X-STREAM-INF

BANDWIDTH: 10진수로 표시한 bps 값PROGRAM-ID: 플레이 리스트 파일에 있는 콘텐츠가 갖는 고유 값CODEC: 해당 콘텐츠에 적용된 코텍(codec) 정보RESOLUTION: 해상도

II. HLS (HTTP LIVE STREAMING)

Page 8: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 8 - 2014 한국소프트웨어 아키텍트대회

(M3U8 사례)

3. M3U8

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1238640,CODECS="avc1.66.30,

mp4a.40.2",RESOLUTION=640x360

chunklist_w1666258014.m3u8?q=3KJnE%2BOSdy1E5lVykGN7VNo22b%2FUxanX03EpOH3uCuQ%3D

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-TARGETDURATION:13

#EXT-X-MEDIA-SEQUENCE:0

#EXT-X-KEY:METHOD=AES-

128,URI="http://example.com/key_w1666258014.m3u8key?q=3KJnE%2BOSdy1E5lVykGN7VNo22b%2FUxanX

03EpOH3uCuQ%3D"

#EXTINF:5.172,

media_w1666258014_0.ts?q=3KJnE%2BOSdy1E5lVykGN7VNo22b%2FUxanX03EpOH3uCuQ%3D

#EXTINF:11.078,

media_w1666258014_1.ts?q=3KJnE%2BOSdy1E5lVykGN7VNo22b%2FUxanX03EpOH3uCuQ%3D

#EXTINF:6.339,

media_w1666258014_2.ts?q=3KJnE%2BOSdy1E5lVykGN7VNo22b%2FUxanX03EpOH3uCuQ%3D

#EXTINF:12.146,

media_w1666258014_3.ts?q=3KJnE%2BOSdy1E5lVykGN7VNo22b%2FUxanX03EpOH3uCuQ%3D

#EXTINF:10.01,

media_w1666258014_4.ts?q=3KJnE%2BOSdy1E5lVykGN7VNo22b%2FUxanX03EpOH3uCuQ%3D

#EXTINF:10.01,

media_w1666258014_5.ts?q=3KJnE%2BOSdy1E5lVykGN7VNo22b%2FUxanX03EpOH3uCuQ%3D

#EXTINF:5.826,

media_w1666258014_6.ts?q=3KJnE%2BOSdy1E5lVykGN7VNo22b%2FUxanX03EpOH3uCuQ%3D

#EXT-X-ENDLIST

II. HLS (HTTP LIVE STREAMING)

Page 9: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 9 - 2014 한국소프트웨어 아키텍트대회

TS파일은 IPTV에서 활용되고 있는 표준규격으로, MPEG-2기반으로 다수의 방송 정보를 포함하는 채널형태의 규격입니다.

4. TS

MPEG-2 TS는 MPEG-2 Part 1, Systems (ISO/IEC 13818-1 또는 ITU-T H.222.0)로 오디오나 비디오, 방송의 채널 정보 등을전송하거나 저장하기 위해 정의한 규격이다. MPEG-2의 Elementary Stream(MPEG에서 오디오나 비디오 각각의 데이터 집합)을 패킷(Packet)으로 만들 때 에러 정정 및 동기화 정보 등을 같이 포함할 수 있도록 하는 컨테이너(container) 포맷이다. 실제로 TS로 데이터를 전송하는 경우 하나의 연결 내에 동시에 여러 개의 채널 정보를 담아서 전송할 수 있다.

Program Association Table (PAT)프로그램의 번호와 Program Map Table을 담고있는패킷의 Packet Identifier(PID) 간 연결 관계를 담고있다.

Program Map Table (PMT)프로그램의 Elementary Stream을 담은 패킷에 대한연결 정보를 담고 있다

Packetized Elementary Stream (PES)네트워크 전송을 위한 패킷의 크기로 나누어진Elementary Stream이다. 분할된 첫 조각을 포함하는 패킷에는 PES 헤더 정보가포함되어 전송되며 이후에는 분할된 데이터만 포함된다.

II. HLS (HTTP LIVE STREAMING)

Page 10: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 10 - 2014 한국소프트웨어 아키텍트대회

HLS서비스를 위한 M3U8, TS파일 구성을 위해서 리눅스기반의 FFMPEG 도구나 애플에서제공하는 도구를 활용할 수 있습니다.

5. Segmenting

Using Apple Tools

1. Media Stream Segmenter

command-line tool takes an MPEG-2 transport stream as an input and produces a series of equal-length files from it

2. Media File Segmenter

command-line tool takes an encoded media file as an input, wraps it in an MPEG-2 transport stream, and produces a series of

equal-length files from it. The media file segmenter can also produce index files (playlists).

3. Media Stream Validator

4. Variant Playlist Creator

command-line tool creates a master index file, or playlist, listing the index files for alternate streams at different bit rates, using

the output of the mediafilesegmenter.

출처: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introdu

ction.html

AVI, FLV등

MPEG2

Streaming

MPEG2-TSM3u8 and

ts filesplaylist

Media Stream Segmenter

ffmpeg

Media File Segmenter Variant Playlist Creator

segmenter

II. HLS (HTTP LIVE STREAMING)

Page 11: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 11 - 2014 한국소프트웨어 아키텍트대회

리눅스 기반 시스템에서 FFMPEG을 활용하여 MPEG2 표준으로 전환과 TS형태로 분할 할수있습니다.

5. Segmenting

Using FFMPEG

1.ffmpeg 설치svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpegcd ffmpeg ./configure --enable-static --enable-shared --enable-gpl --enable-postproc --enable-pthreads --enable-libfaac \ --enable-libmp3lame --enable-libx264 --enable-nonfree --enable-avfilter --enable-runtime-cpudetect --enable-libtheora --enable-libvorbis --enable-libxvid --enable-nonfree --enable-postproc --enable-x11grab

2. avi 파일을 ts 파일로 바꿔야 함ffmpeg -i input.avi -vcodec copy -acodec copy -f mpegts output.tsffmpeg -y -threads 2 -i "input.avi" -ab 128k -b 2500k -r 25 -maxrate 8000k -bufsize 1000k -vcodec mpeg2video -s 4cif -acodec mp2 -map 0:0 -map 0:1 "output.ts”3. segmenter 설치

svn co http://svn.assembla.com/svn/legend/segmenter/

4. 아파치 설정cd /usr/local/apache2.4/confvi httpd.conf<IfModule mime_module> 태그 안에 아래 2줄 추가AddType application/x-mpegurl .m3u8 AddType video/MP2T .ts

5. 파일변환 segmenter 로 ts 파일을 m3u8 로 바꿔주기segmenter <source ts 파일명> <segment 될 시간(초)> <streaming 될 파일명> <http url 로 접속 될 파일명>ex) segmenter ./gundam.ts 10 gundam gundam.m3u8 http://192.168.1.1/test/이러면 gundam.m3u8파일과 gundam-1.ts , gundam-2.ts , gundam-3.ts 라고 ts 파일들이 생성

출처: http://shonm.tistory.com/m/post/406

II. HLS (HTTP LIVE STREAMING)

Page 12: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 12 - 2014 한국소프트웨어 아키텍트대회

미디어 서비스 제공을 위해서 컨텐츠관리 시스템인 CMS와 연계하여 미디어 URL등의 메타정보를 관리하고 사용자가 서비스 요청시에 해당 URL을 스트리밍 서버로 전달 합니다.

III. 미디어 서비스 아키텍처1. 미디어 서비스 아키텍처 개요

플레이어공통모듈 ( js)

플레이어(Flash Player

HTML5)

API호출(클라이언트)

서비스 제공 시스템

미디어 재생 정보제공 서버

영상 데이터

CMS

내부 ST서버

외부 ST서버

이미지 데이터

영상 파일(스토리지)

영상 파일(스토리지)

서비스 관리 시스템

보안성 – 원타임 URL, TS 암호화가용성 – ST서버 용량 확보관리성 – CMS 시스템과의 연계

Page 13: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 13 - 2014 한국소프트웨어 아키텍트대회

Wowza 스트리밍 엔진은 웹 기반으로 관리가 가능하며, 실시간 트랜스코딩 기반으로 실시간 방송과 VOD서비스 제공이 가능합니다. (수동으로 파일 변환 및 분할이 필요 없음)

2. 스트리밍 서버 III. 미디어 서비스 아키텍처

Page 14: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 14 - 2014 한국소프트웨어 아키텍트대회

Wowza는 원소스 멀티프로토콜 서비스를 제공 하여, 하나의 MP4파일을 기반으로 동시에HLS, RTMP 등으로 서비스 제공이 가능합니다.

2. 스트리밍 서버

rtmp://192.168.90.1:1935/vod/mp4:sample.mp4http://192.168.90.1:1935/vod/mp4:sample.mp4/playlist.m3u8

III. 미디어 서비스 아키텍처

HLS RTMP

Page 15: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 15 - 2014 한국소프트웨어 아키텍트대회

웹 환경에서 서비스 제공을 위해서는 플래시 기반의 플레이어를 주로 활용 합니다.jwplayer는 범용적으로 많이 활용되고 있는 플래시 기반 플레이어 입니다.

3. 플레이어 (플래시)

<body>

<div id="video3">HLS</div>

<div id="myElement3">Loading the player...</div>

<script type="text/javascript">

var videoUrl1 = "http://192.168.90.1:1935/vod/mp4:sample.mp4/playlist.m3u8";

jwplayer("myElement3").setup({

file: videoUrl1,

width : 640,

height : 360

});

</script>

</body>

III. 미디어 서비스 아키텍처

* 브라우저에서 제공하는 플레이 기능은OS, 브라우저 종류 등에 따라 제작기 다름

* 현재까지 IE 브라우저 사용이 대부분임(IE7 등 이전 버전 사용자가 많음)

* HLS는 HTML5 브라우저에서도 잘 동작하지 않음(모바일 환경에서는 잘 동작)

범용적 서비스 제공을 위해서는 플래시 사용이필요

Page 16: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 16 - 2014 한국소프트웨어 아키텍트대회

미디어 재생을 위해서 jwplayer 기반으로 HLS 및 RTMP 플레이어 기능을 구현하였으며, 스트리밍 서버와의 통신을 통해 사용자에게 서비스를 제공합니다.

3. 플레이어 (플래시) III. 미디어 서비스 아키텍처

Page 17: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 17 - 2014 한국소프트웨어 아키텍트대회

안드로이드의 경우 HLS지원에 이슈가 존재하며(iOS는 서비스 잘됨), HTML5 비디어 태그를 그대로 활용하는 방법도 있으나, 전용 앱을 활용하는 것이 일반적입니다.

3. 플레이어 (모바일 웹 브라우저)

* 안드로이드 모바일 웹에서 HLS지원 이슈-3.0 이하에서 지원 안함 (OS 내의 미디어 프레임워크 이슈) 2.3 진저브레드 사용불가-4.0 ICS에서 지원이 시작되었으나 비정상 종료 등의 이슈 존재-4.x 버전에서 더블클릭해야 동작, 풀스크린 미지원 등 이슈 존재

* Youtube MP4로 서비스 제공 (동영상을 쉽게 폰에 저장할 수 있음)

* 안드로이드 모바일의 경우 앱으로 서비스가 일반적 전용 플레이어 활용

III. 미디어 서비스 아키텍처

Page 18: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 18 - 2014 한국소프트웨어 아키텍트대회

플래시 플레이어 구현을 위해 ADOBE에서 OSMF 라이브러리를 제공하고 있으며, 플래시 빌더를 활용하여 전용 플래시 플레이어를 구현 할 수 있습니다. (주로 디자인/이벤트 처리 작업)

4. 플래시 플레이어 구현 III. 미디어 서비스 아키텍처

Page 19: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 19 - 2014 한국소프트웨어 아키텍트대회

플래시 빌더는 Action Script를 활용하여 쉽게 플레이어 기능 구축이 가능하며, 빌드 결과swf 파일과 예제 HTML을 생성 합니다.

4. 플래시 플레이어 구현 III. 미디어 서비스 아키텍처

Page 20: 미디어서비스를위한 SW 아키텍처 - kosta.or.krkosta.or.kr/mail/2014/download/Track2-2_2014Architect.pdf · 스트밍서버 실시간인코더나인코딩된미디어를플레이어에게전달(실시간트랜스코딩제공도가능)

- 20 - 2014 한국소프트웨어 아키텍트대회

빌드된 HTML을 실행하면 쉽게 결과를 확인 할 수 있습니다. 라이브러리를 활용하면 쉽게플래시 플레이어 구현이 가능합니다.

4. 플래시 플레이어 구현 III. 미디어 서비스 아키텍처