SlideShare une entreprise Scribd logo
1  sur  33
HTML5 CSS3
              7. 오디오와 비디오




    아키텍트를 꿈꾸는 사람들 cafe.naver.com/architect1
                 현수명 soomong.net
                                    #soomong
<audio>

<video>
역사!
지금 어디에 있는지 알려면
전에 어디에 있었는지 알아야 하니까요
<embed src="bass.mp3" autostart="true"
    loop="true" controller="true"></embed>
<object>
      <param name="src" value="bass.mp3">
      <param name="autoplay" value="false">
      <param name="controller" value="true">
      <embed src="bass.mp3" autostart="true"
           loop="true" controller="true"></embed>
</object>
Flash 넘 느림
직접 지원하자.
컨테이너와 코덱


Video Codec   Audio Codec
   - H.264      - AAC
   - Theora     - MP3
   - VP8        - OGG
H.264
 from MPEG 그룹

 로열티 콘텐츠 제작자가 코덱을 쓰면
    돈내야 함!!

   와    이 지원하는 사실상의 표준
테오라 Theora
 from Xiph.Org 재단

 로열티 공짜

   와   에서 잠수함 특허 걱정.

           잠수함 특허?
           특허권자가 고의로 특허 발표 일을 연기하면서
           널리 퍼질 때까지 기다리는 것. 즉 꼼수.
VP8
 from

 로열티 공짜

 H.264와 비슷한 수준
 but   지원안함
AAC (Advanced Audio Coding)
    from

    로열티 돈내야함!

      제품은 당연히 다 지원.
Vorbis (OGG)
  from 오픈 소스

  로열티 공짜

  매우 높은 품질.
  H/W 기기에서는 잘 지원 안함
         음질?
         한때 OGG음원 찾아서 듣곤 했지만 막귀로는 비교불가
MP3

 from MPEG 그룹

 로열티 특허 문제!
컨테이너?
Metadata 파일
오디오와 비디오 파일을 담는 봉투
자신이 포함하고 있는 파일의 인코드 정보는 없음

 OGG 컨테이너 : 테오라 Video + OGG Audio
      O ( FireFox & Chrome & Opera )

 MP4 컨테이너 : H.264 Video + AAC Audio
      O ( Safari & Chrome & Flash & iPhone & iPad )

 WebM 컨테이너 : VP8 Video + OGG Audio
      O ( FireFox & Chrome & Opera & Flash)

                                      구글+모질라
                                      VP8 + WebM을 밀고 있음.
http://en.wikipedia.org/wiki/Comparison_of_container_formats
<audio>

<article class="sample">
    <header><h2>Drums</h2></header>
    <audio id="drums" controls>
      <source src="sounds/ogg/drums.ogg" type="audio/ogg">
      <source src="sounds/mp3/drums.mp3" type="audio/mpeg">
      <a href="sounds/mp3/drums.mp3">Download drums.mp3</a>
    </audio>
  </article>



             src를 여러 개 정의
             지원하지 않으면 내려받기 링크 제공
지원하지 않을때는
 내려받을 링크를
 audio 요소밖으로 빼고
 JavaScript로 링크 숨기기
<article class="sample">
    <header><h2>Drums</h2></header>
    <audio id="drums" controls>
     <source src="sounds/ogg/drums.ogg" type="audio/ogg">
     <source src="sounds/mp3/drums.mp3" type="audio/mpeg">
    </audio>
    <a href="sounds/mp3/drums.mp3">Download drums.mp3</a>
  </article>



링크를 audio 요소밖으로 빼고 JavaScript로 링크 숨기기

$(function(){
    var canPlayAudioFiles = !!(document.createElement('audio').canPlayType);

   if(canPlayAudioFiles){
     $(".sample a").hide();
   };
<video>
<article>
      <header>
       <h2>Saturate with Blur</h2>
      </header>
      <video controls>
       <source src="video/h264/01_blur.mp4">
       <source src="video/theora/01_blur.ogv">
       <source src="video/webm/01_blur.webm">
       <p>이 브라우저는 video를 지원할 그럴 분이 아닙니다.</p>
       </video>
</article>

           브라우저가 모를수도 있음
           서버에 있는 파일이니 .htaccess 에 친절히 Mime type을 정의해준다.
            AddType video/ogg .ogv
            AddType video/mp4 .mp4
            AddType video/webm .webm
지원하지 않을때는
                                 플래시로!
<object width="640" height="480" type="application/x-shockwave-flash"
        data="swf/flowplayer-3.2.2.swf">
        <param name="movie" value="swf/flowplayer-3.2.2.swf" />
        <param name="allowfullscreen" value="true" />

       <param name="flashvars"
        value='config={"clip":{"url":"../video/h264/01_blur.mp4",
                        "autoPlay":false,
                        "autoBuffering":true
                       }
                 }' />

       <img src="video/thumbs/01_blur.png"
        width="640" height="264" alt="Poster Image"
        title="No video playback capabilities." />
      </object>
플래시의 보안정책
사용한 비디오와
플레이어 모두
서버에 있어야 함
HTML5 Video의 한계

Streaming X
콘텐츠 권리 보호 X
인코딩 따로 해줘야함
그분이 가시는 곳에
길이 만들어 지리라.




  성인업계!!
  전자상거래의 시작부터 플래시의 비약까지
  인터넷에 강력한 영향을 끼치고 있음.
  그런 분께서 플래시를 버리고
  H.264로 인코딩한 HTML5 비디오를 서비스하고 있음!
장애인을 위한 자막 서비스
<section class="transcript">
      <h2>Transcript</h2>
      <p>We'll drag the existing layer to the new button on the bottom of
        the Layers palette to create a new copy.</p>
      <p>Next we'll go to the Filter menu and choose "Gaussian Blur".
        We'll change the blur amount just enough so that we lose a little
        bit of the detail of the image.</p>
      <p>Now we'll double-click on the layer to edit the layer and
        change the blending mode to "Overlay". We can then adjust the
        amount of the effect by changing the opacity slider.</p>
      <p>Now we have a slightly enhanced image.</p>
</section>
HTML5 video + canvas




       http://craftymind.com/factory/html5video/CanvasVideo.html
       http://craftymind.com/factory/html5video/CanvasVideo3D.html
Reference
http://www.watblog.com/2010/04/30/steve-jobs-thoughts-on-adobe-flash-%E2%80%93-it-is-past-and-dead/

http://www.klickout.com/html5/iphone-ipad-android-mobile-apps-with-html5-and-css3-best-html5-mobile-framework-list/

http://noteandpoint.com/2010/04/html5-wtf/

http://en.wikipedia.org/wiki/HTML5_video




                                                                                            감사합니다

Contenu connexe

Tendances

유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기Young D
 
모바일 무한 스크롤 개발
모바일 무한 스크롤 개발모바일 무한 스크롤 개발
모바일 무한 스크롤 개발NAVER D2
 
하이브리드앱 성능 극복
하이브리드앱 성능 극복하이브리드앱 성능 극복
하이브리드앱 성능 극복sung hwan Park
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
크롬 확장 프로그램 만들기 - Qr code generator
크롬 확장 프로그램 만들기 - Qr code generator크롬 확장 프로그램 만들기 - Qr code generator
크롬 확장 프로그램 만들기 - Qr code generatorJeongHwan Jang
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5Taegon Kim
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기NAVER D2
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
Vuejs 시작하기
Vuejs 시작하기Vuejs 시작하기
Vuejs 시작하기성일 한
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Junsu Kim
 
PHPStorm - tool for php
PHPStorm - tool for phpPHPStorm - tool for php
PHPStorm - tool for phpSungbum Hong
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나JeongHwan Kim
 
모바일 코딩의 종류
모바일 코딩의 종류모바일 코딩의 종류
모바일 코딩의 종류승제 이
 
Ionic으로 모바일앱 만들기 #2
Ionic으로 모바일앱 만들기 #2Ionic으로 모바일앱 만들기 #2
Ionic으로 모바일앱 만들기 #2성일 한
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁WebFrameworks
 
혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - Polymer혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - PolymerJae Sung Park
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_frameworkJT Jintae Jung
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with AngularJT Jintae Jung
 

Tendances (20)

유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기
 
모바일 무한 스크롤 개발
모바일 무한 스크롤 개발모바일 무한 스크롤 개발
모바일 무한 스크롤 개발
 
하이브리드앱 성능 극복
하이브리드앱 성능 극복하이브리드앱 성능 극복
하이브리드앱 성능 극복
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
크롬 확장 프로그램 만들기 - Qr code generator
크롬 확장 프로그램 만들기 - Qr code generator크롬 확장 프로그램 만들기 - Qr code generator
크롬 확장 프로그램 만들기 - Qr code generator
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
Vuejs 시작하기
Vuejs 시작하기Vuejs 시작하기
Vuejs 시작하기
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
PHPStorm - tool for php
PHPStorm - tool for phpPHPStorm - tool for php
PHPStorm - tool for php
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나
 
모바일 코딩의 종류
모바일 코딩의 종류모바일 코딩의 종류
모바일 코딩의 종류
 
Ionic으로 모바일앱 만들기 #2
Ionic으로 모바일앱 만들기 #2Ionic으로 모바일앱 만들기 #2
Ionic으로 모바일앱 만들기 #2
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 
혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - Polymer혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - Polymer
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_framework
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 

En vedette

The Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 TreeThe Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 Treehyun soomyung
 
xUnitTestPattern/chapter8
xUnitTestPattern/chapter8xUnitTestPattern/chapter8
xUnitTestPattern/chapter8hyun soomyung
 
The Art of Computer Programming 1.2.5
The Art of Computer Programming 1.2.5The Art of Computer Programming 1.2.5
The Art of Computer Programming 1.2.5hyun soomyung
 
[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술hyun soomyung
 
The Art of Computer Programming 2.4 다중연결구조
The Art of Computer Programming 2.4 다중연결구조The Art of Computer Programming 2.4 다중연결구조
The Art of Computer Programming 2.4 다중연결구조hyun soomyung
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Designhyun soomyung
 
프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?hyun soomyung
 
Dependency Breaking Techniques
Dependency Breaking TechniquesDependency Breaking Techniques
Dependency Breaking Techniqueshyun soomyung
 
실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부hyun soomyung
 
프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장hyun soomyung
 
5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)hyun soomyung
 
예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법hyun soomyung
 
Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systemshyun soomyung
 

En vedette (17)

The Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 TreeThe Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 Tree
 
xUnitTestPattern/chapter8
xUnitTestPattern/chapter8xUnitTestPattern/chapter8
xUnitTestPattern/chapter8
 
MapReduce
MapReduceMapReduce
MapReduce
 
The Art of Computer Programming 1.2.5
The Art of Computer Programming 1.2.5The Art of Computer Programming 1.2.5
The Art of Computer Programming 1.2.5
 
Hybrid app
Hybrid appHybrid app
Hybrid app
 
이산수학 Ch.5
이산수학 Ch.5이산수학 Ch.5
이산수학 Ch.5
 
[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술
 
Clojure Chapter.6
Clojure Chapter.6Clojure Chapter.6
Clojure Chapter.6
 
The Art of Computer Programming 2.4 다중연결구조
The Art of Computer Programming 2.4 다중연결구조The Art of Computer Programming 2.4 다중연결구조
The Art of Computer Programming 2.4 다중연결구조
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?
 
Dependency Breaking Techniques
Dependency Breaking TechniquesDependency Breaking Techniques
Dependency Breaking Techniques
 
실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부
 
프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장
 
5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)
 
예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법
 
Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systems
 

Similaire à HTML5 & CSS3 - Video,Audio

처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차Michael Yang
 
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차Michael Yang
 
5-2. html5 multimedia
5-2. html5 multimedia5-2. html5 multimedia
5-2. html5 multimediaJinKyoungHeo
 
WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010Joone Hur
 
Web Standards HTML5_CSS3
Web Standards HTML5_CSS3Web Standards HTML5_CSS3
Web Standards HTML5_CSS3Eulsoo Jung
 
제 5회 R&D 컨퍼런스 _양진희_20141125
제 5회 R&D 컨퍼런스 _양진희_20141125제 5회 R&D 컨퍼런스 _양진희_20141125
제 5회 R&D 컨퍼런스 _양진희_20141125dgmit2009
 
Object Parameters Ws Yjj
Object Parameters Ws YjjObject Parameters Ws Yjj
Object Parameters Ws YjjDaniel D.J. UM
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지yongwoo Jeon
 
Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8Juneyoung Oh
 
HTML5 APIs - Part1. Multimedia
HTML5 APIs - Part1. MultimediaHTML5 APIs - Part1. Multimedia
HTML5 APIs - Part1. MultimediaJunsang Dong
 
20131217 html5
20131217 html520131217 html5
20131217 html5DK Lee
 
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)I Goo Lee
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER Engineering
 
응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrapredribbon1307
 
기가박스 영화관 운영 시스템 구축마지막
기가박스 영화관 운영 시스템 구축마지막기가박스 영화관 운영 시스템 구축마지막
기가박스 영화관 운영 시스템 구축마지막ssuser5280ce
 
Polymer따라잡기
Polymer따라잡기Polymer따라잡기
Polymer따라잡기Han Jung Hyun
 
Html5 시맨틱태그
Html5 시맨틱태그Html5 시맨틱태그
Html5 시맨틱태그은심 강
 

Similaire à HTML5 & CSS3 - Video,Audio (20)

Html5 video
Html5 videoHtml5 video
Html5 video
 
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
 
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
 
5-2. html5 multimedia
5-2. html5 multimedia5-2. html5 multimedia
5-2. html5 multimedia
 
WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010
 
Web Standards HTML5_CSS3
Web Standards HTML5_CSS3Web Standards HTML5_CSS3
Web Standards HTML5_CSS3
 
HTML5 & CSS3
HTML5 & CSS3HTML5 & CSS3
HTML5 & CSS3
 
제 5회 R&D 컨퍼런스 _양진희_20141125
제 5회 R&D 컨퍼런스 _양진희_20141125제 5회 R&D 컨퍼런스 _양진희_20141125
제 5회 R&D 컨퍼런스 _양진희_20141125
 
Object Parameters Ws Yjj
Object Parameters Ws YjjObject Parameters Ws Yjj
Object Parameters Ws Yjj
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
 
Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8
 
HTML5 APIs - Part1. Multimedia
HTML5 APIs - Part1. MultimediaHTML5 APIs - Part1. Multimedia
HTML5 APIs - Part1. Multimedia
 
20131217 html5
20131217 html520131217 html5
20131217 html5
 
Html5 ie9
Html5 ie9Html5 ie9
Html5 ie9
 
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황
 
응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap
 
기가박스 영화관 운영 시스템 구축마지막
기가박스 영화관 운영 시스템 구축마지막기가박스 영화관 운영 시스템 구축마지막
기가박스 영화관 운영 시스템 구축마지막
 
Polymer따라잡기
Polymer따라잡기Polymer따라잡기
Polymer따라잡기
 
Html5 시맨틱태그
Html5 시맨틱태그Html5 시맨틱태그
Html5 시맨틱태그
 

Plus de hyun soomyung

아꿈사 매니저소개
아꿈사 매니저소개아꿈사 매니저소개
아꿈사 매니저소개hyun soomyung
 
Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10hyun soomyung
 
The Art of Computer Programming 1.3.2 MIXAL
The Art of Computer Programming 1.3.2 MIXALThe Art of Computer Programming 1.3.2 MIXAL
The Art of Computer Programming 1.3.2 MIXALhyun soomyung
 
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)hyun soomyung
 

Plus de hyun soomyung (6)

아꿈사 매니저소개
아꿈사 매니저소개아꿈사 매니저소개
아꿈사 매니저소개
 
MongoDB
MongoDBMongoDB
MongoDB
 
Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10
 
The Art of Computer Programming 1.3.2 MIXAL
The Art of Computer Programming 1.3.2 MIXALThe Art of Computer Programming 1.3.2 MIXAL
The Art of Computer Programming 1.3.2 MIXAL
 
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
 
Erlang
ErlangErlang
Erlang
 

HTML5 & CSS3 - Video,Audio

  • 1. HTML5 CSS3 7. 오디오와 비디오 아키텍트를 꿈꾸는 사람들 cafe.naver.com/architect1 현수명 soomong.net #soomong
  • 3. 역사! 지금 어디에 있는지 알려면 전에 어디에 있었는지 알아야 하니까요
  • 4. <embed src="bass.mp3" autostart="true" loop="true" controller="true"></embed>
  • 5. <object> <param name="src" value="bass.mp3"> <param name="autoplay" value="false"> <param name="controller" value="true"> <embed src="bass.mp3" autostart="true" loop="true" controller="true"></embed> </object>
  • 7.
  • 9. 컨테이너와 코덱 Video Codec Audio Codec - H.264 - AAC - Theora - MP3 - VP8 - OGG
  • 10. H.264 from MPEG 그룹 로열티 콘텐츠 제작자가 코덱을 쓰면 돈내야 함!! 와 이 지원하는 사실상의 표준
  • 11. 테오라 Theora from Xiph.Org 재단 로열티 공짜 와 에서 잠수함 특허 걱정. 잠수함 특허? 특허권자가 고의로 특허 발표 일을 연기하면서 널리 퍼질 때까지 기다리는 것. 즉 꼼수.
  • 12. VP8 from 로열티 공짜 H.264와 비슷한 수준 but 지원안함
  • 13.
  • 14. AAC (Advanced Audio Coding) from 로열티 돈내야함! 제품은 당연히 다 지원.
  • 15. Vorbis (OGG) from 오픈 소스 로열티 공짜 매우 높은 품질. H/W 기기에서는 잘 지원 안함 음질? 한때 OGG음원 찾아서 듣곤 했지만 막귀로는 비교불가
  • 16. MP3 from MPEG 그룹 로열티 특허 문제!
  • 17. 컨테이너? Metadata 파일 오디오와 비디오 파일을 담는 봉투 자신이 포함하고 있는 파일의 인코드 정보는 없음 OGG 컨테이너 : 테오라 Video + OGG Audio O ( FireFox & Chrome & Opera ) MP4 컨테이너 : H.264 Video + AAC Audio O ( Safari & Chrome & Flash & iPhone & iPad ) WebM 컨테이너 : VP8 Video + OGG Audio O ( FireFox & Chrome & Opera & Flash) 구글+모질라 VP8 + WebM을 밀고 있음.
  • 18.
  • 20. <audio> <article class="sample"> <header><h2>Drums</h2></header> <audio id="drums" controls> <source src="sounds/ogg/drums.ogg" type="audio/ogg"> <source src="sounds/mp3/drums.mp3" type="audio/mpeg"> <a href="sounds/mp3/drums.mp3">Download drums.mp3</a> </audio> </article> src를 여러 개 정의 지원하지 않으면 내려받기 링크 제공
  • 21.
  • 22. 지원하지 않을때는 내려받을 링크를 audio 요소밖으로 빼고 JavaScript로 링크 숨기기
  • 23. <article class="sample"> <header><h2>Drums</h2></header> <audio id="drums" controls> <source src="sounds/ogg/drums.ogg" type="audio/ogg"> <source src="sounds/mp3/drums.mp3" type="audio/mpeg"> </audio> <a href="sounds/mp3/drums.mp3">Download drums.mp3</a> </article> 링크를 audio 요소밖으로 빼고 JavaScript로 링크 숨기기 $(function(){ var canPlayAudioFiles = !!(document.createElement('audio').canPlayType); if(canPlayAudioFiles){ $(".sample a").hide(); };
  • 24. <video> <article> <header> <h2>Saturate with Blur</h2> </header> <video controls> <source src="video/h264/01_blur.mp4"> <source src="video/theora/01_blur.ogv"> <source src="video/webm/01_blur.webm"> <p>이 브라우저는 video를 지원할 그럴 분이 아닙니다.</p> </video> </article> 브라우저가 모를수도 있음 서버에 있는 파일이니 .htaccess 에 친절히 Mime type을 정의해준다. AddType video/ogg .ogv AddType video/mp4 .mp4 AddType video/webm .webm
  • 25.
  • 26. 지원하지 않을때는 플래시로! <object width="640" height="480" type="application/x-shockwave-flash" data="swf/flowplayer-3.2.2.swf"> <param name="movie" value="swf/flowplayer-3.2.2.swf" /> <param name="allowfullscreen" value="true" /> <param name="flashvars" value='config={"clip":{"url":"../video/h264/01_blur.mp4", "autoPlay":false, "autoBuffering":true } }' /> <img src="video/thumbs/01_blur.png" width="640" height="264" alt="Poster Image" title="No video playback capabilities." /> </object>
  • 28. HTML5 Video의 한계 Streaming X 콘텐츠 권리 보호 X 인코딩 따로 해줘야함
  • 29. 그분이 가시는 곳에 길이 만들어 지리라. 성인업계!! 전자상거래의 시작부터 플래시의 비약까지 인터넷에 강력한 영향을 끼치고 있음. 그런 분께서 플래시를 버리고 H.264로 인코딩한 HTML5 비디오를 서비스하고 있음!
  • 30. 장애인을 위한 자막 서비스 <section class="transcript"> <h2>Transcript</h2> <p>We'll drag the existing layer to the new button on the bottom of the Layers palette to create a new copy.</p> <p>Next we'll go to the Filter menu and choose "Gaussian Blur". We'll change the blur amount just enough so that we lose a little bit of the detail of the image.</p> <p>Now we'll double-click on the layer to edit the layer and change the blending mode to "Overlay". We can then adjust the amount of the effect by changing the opacity slider.</p> <p>Now we have a slightly enhanced image.</p> </section>
  • 31.
  • 32. HTML5 video + canvas http://craftymind.com/factory/html5video/CanvasVideo.html http://craftymind.com/factory/html5video/CanvasVideo3D.html