13. 동영상 서비스 문제 – 다양한 멀티미디어 표준 Multimedia Coding on the web is fragmented Many video codecs: DIVX, XVID, H264 WMV, VC-1, VP8 Many Containers (File Format): AVI, MKV MP4, FLV Many delivery methods RTSP/RTP Streaming, Progressive download Live Http Streaming, Smooth Streaming
20. Flash Video 역사 2002, Flash Video 출시 – Sorenson spark codec 지원 2003, FLV format 지원 – VP6 codec 지원 2005, youtube.com에서 Flash FLV format 사용 2006, H.264 codec 지원
21. Flash Video - Market 현황 SmartPhone Desktop http://www.adobe.com/products/player_census/flashplayer/ http://www.adobe.com/products/player_census/flashplayer/mobile_penetration.html
26. HTML5 <video> HTML5에 정의된 미디어 태그 (<audio>, <video>) 플러그인 설치 없이 브라우저에서 동영상 지원 하나의 태그로 다양한 video 유형을 지원 JavaScript나 ActionScript가 필요 없음 Powerful (simple) API HTML5 <video>지원:
27. HTML5 <video> - Example 브라우저 내장 컨트롤 사용 <video width="480" height="380“ controls> <source src="http://www.archive.org/{...}_512kb.mp4" type="video/mp4"></source> <source src="http://www.archive.org/{...}nsters.ogv" type="video/ogg"></source> <p>Your browser doesn't like HTML5 video, watch the movie on <a ref="http://www.archive.org/{...}_monsters"> archive.org</a>. </p> </video>
28. Controlling <video> with JavaScript var v = document.getElementById('player'); v.play(); v.pause(); v.volume = ... ; v.currentTime = ... ; ...
29. <video>methods & attributes var video = $('video').get(0); video.play (); video.pause(); video.paused; // Returns true if video is paused. video.ended; // Returns true if video is over. video.volume; // Returns volume value ( between 0-1 ) video.volume=0.5; // Sets volume value ( between 0-1 ) video.currentTime; // Current point of time in the video. video.length; // Returns the length in seconds. video.seekable; // Returns true if supports seeking. video.playbackRate; // Allows you to rewind/fastforward.
30. 주요 속성 및 주요 함수 src: 멀티미디어 파일 소스 지정 currentTime: 현재 재생 위치를 초 단위로 반환 duration: 전체 재생시간을 초 단위로 반환 paused: 일시정지 여부 반환 ended: 재생 종료 어부 반환 muted: 음소거 여부 반환 volume: 볼륨 값(0.0 ~ 1.0 범위를 가짐) error: 에러 정보를 반환 networkState: 멀티미디어 파일과 관련된 네트워크 상태 반환(접속전, 로딩 중, 완료, 로딩 실패 등) 주요 함수 load(): 멀티미디어를 읽어 들임(재생하지는 않음) play(): 멀티미디어를 재생함 pause(): 일시 정지
43. HTML5 Video 문제점 브라우저 마다 다른 코덱정책(Codec fragment) 제한된 스트리밍 프로토콜 지원(Progressive Download) 컨텐츠 보안 문제 (Contents Protection) 캡슐화 + 삽입(Encapsulation + Embedding) 전체화면 지원(Fullscreen Video) 카메라 + 마이크 제어 라이브 스트리밍 지원 컨텐츠스트림 제어 / 스트림관련 부가정보 제공 광고와 관련된 Ecosystem (광고관련정보 리포팅, 분석) 스펙이 보완중임 (~2015)
48. 하나의 파일로 재생할 순 없을까? H.264 via HTML5 with a fallback to Flash or Silverlight (playing the same file) if the browser cannot play H.264 natively via <video>.
52. Chrome Frame Minimal effort for bringing IE6, 7 and 8 up to the latest HTML5 technologies Two ways to get your websites ready for Chrome Frame: Client side: Server side: <meta http-equiv="X-UA-Compatible” content="chrome=1"> X-UA-Compatible: chrome=1 http://www.chromium.org/developers/how-tos/chrome-frame-getting-started
54. Streaming Protocol – Progressive Download - Video Delivery 방법으로 가장 폭넓게 사용됨 - 적용하기가 제일 쉬움 - Flash와 HTML5 audio, video, iOS, Android에서 지원함 - 전송트래픽이 많이 발생함 - 큰 파일에는 적합하지 않음(작은 클립에 맞음) - 라이브 스트리밍은 지원하지 않음
55. Streaming Protocol – RTMP/RTSP Streaming - RTMP +Flash의 Streaming Protocol, FMS, Wowza, 대부분의 CDN에서 제공함 +Bandwith efficiency, Quality switching - RTSP: Android에서 지원함 - 비싼 유지비용 - 전용서버, 전용프로토콜(rtsp/554, rtmp/1935, rtmpt/80) - 방화벽 문제 발생가능 (사내 방화벽 정책에 따라 막힐 수 있음) - 대용량 파일, 라이브 지원가능