Top

HTML5 비디오 [미디어 웹표준 기술]

  • 원서명The Definitive Guide to HTML5 Video (ISBN 9781430230908)
  • 지은이실비아 파이퍼
  • 옮긴이윤민홍, 남기혁
  • ISBN : 9788960772854
  • 30,000원
  • 2012년 03월 26일 펴냄
  • 페이퍼백 | 456쪽 | 188*235mm
  • 시리즈 : 웹 프로페셔널

책 소개

HTML5에서 가장 크게 부각되는 기능인 HTML 오디오/비디오를 쉽고 자세히 설명한 책이다. 오디오/비디오를 HTML5 페이지에 게시하는 간단한 방법부터 오디오/비디오를 이용해 특수효과를 적용하는 고급 방법까지, HTML5의 미디어 처리와 관련된 다양한 내용에 대해 브라우저 특성을 고려한 상세한 예제를 활용해 소개한다. 후반부에서는 아직 표준화되지는 않았지만, 표준화 가능성이 매우 높은 HTML5 관련 웹 기술도 함께 소개한다. 이 책을 통해 HTML5의 멀티미디어 처리에 대한 상세한 지식을 습득할 수 있을 것으로 생각한다.


[ 소개 ]

웹 개발에 이용할 수 있는 새로운 기능들이 HTML5에 많이 도입됐다. 물론 이 중에서도 가장 중요한 기능은 바로 비디오 엘리먼트다. 『HTML5 비디오』를 통해 표준과 코덱의 놀라운 세계를 접할 수 있을 것으로 생각하며, HTML5 비디오로 무엇을 할 수 있고 무엇을 할 수 없는지 이 책을 통해 정확히 파악할 수 있을 것이다.

비디오 엘리먼트와 오디오 엘리먼트의 기본 기능, 비디오를 웹상에 표시하는 방법, 가능한 한 많은 브라우저를 지원하기 위해 선택해야 하는 파일 타입 등을 이 책에서 배울 수 있다. 기본 기능뿐 아니라 자신만의 비디오 컨트롤을 만들고, 미디어 엘리먼트에 자바스크립트 API를 사용하는 등의 고급 기능도 배울 수 있다. 또한 비디오에 CSS, SVG, 캔버스, 웹 워커와 같은 새로운 웹 기술을 적용하는 방법도 이 책에서 다룬다. 이 방법을 이용하면 비디오에 효과를 입히거나, 별도의 스레드를 이용해 비디오 처리를 수행하는 작업도 가능하다. 끝으로, 오디오와 비디오의 접근성을 높이는 방법도 배운다. HTML5에 호환되도록 기존의 오디오/비디오 컨텐츠를 변환하거나 컨텐츠를 새롭게 제작할 때 사용할 수 있는 도구들도 이 책에서 다룬다.

HTML5는 아직 태동기에 불과하기 때문에 미흡한 부분이 많다. 이 책에서 즉시 사용해도 되는 부분과 아직 안정되지 않아 변화가 예상되는 부분을 구별했다. 이 책을 통해 브라우저 호환성을 극대화한 비디오 사용 방법과 표준이 변하는 경우에도 최소한의 노력으로 이를 지원할 수 있는 방법을 익힐 수 있을 것으로 기대한다.

가장 중요한 점은 HTML에서 기본으로 비디오를 지원하기 시작했다는 사실이다. 이 책을 통해 새로운 세계에 눈을 뜨기를 바란다.


[ 이 책의 활용 방법 ]

이 책은 HTML5 미디어 엘리먼트에 관심 있는 사람을 위해 쓴 책이다. 간단한 HTML, CSS, 자바스크립트를 사용할 수 있는 독자를 대상으로 하며, 미디어에 대해서는 전혀 몰라도 무방하다.

초보자가 웹페이지에 비디오를 넣는 방법을 배우려는 목적으로 이 책을 선택했다면, 처음 네 개의 장으로도 충분하다. 여러 브라우저가 지원하는 마크업으로 웹페이지에 오디오/비디오를 넣는 방법과 비디오를 인코딩하는 방법을 배울 수 있을 것이다. 또한 HTML5 미디어 엘리먼트와 관련된 오픈 소스 도구 사용 방법을 익힐 수 있을 것이며, CSS로 오디오 엘리먼트와 비디오 엘리먼트에 스타일을 적용하는 방법도 배울 수 있을 것이다.

다음에 나오는 네 개 장은 미디어 엘리먼트를 다른 웹 기술과 함께 사용하는 방법과 관련된 장이다. 웹 브라우저의 기본 컨트롤을 교체하는 방법을 배울 수 있다. 미디어 플레이어 ‘스킨 입히기’라고도 불리는 기술이다. 자바스크립트 API로 미디어 엘리먼트를 조작하는 방법도 배울 수 있으며, 미디어 엘리먼트를 SVG, 캔버스, 웹 워커 스레드 등과 함께 사용하는 방법도 배울 수 있다.

마지막 네 개의 장에선 훨씬 발달된 HTML5 미디어 기능에 대해서 살펴본다. 대부분의 기능은 실험적으로만 구현된 상태로 아직 이를 지원하는 브라우저는 제한적이다. 마지막 네 개 장을 통해 제안된 기술들에 대한 현재 상태와 배경 지식에 대해 알 수 있을 것이다. 오디오 데이터를 읽고 조작하는 방법, 오디오/비디오의 국제화를 지원하는 방법, 캡션, 자막, 오디오 설명 등에 대해서도 배울 수 있다. 실시간으로 디바이스의 비디오에 접근해 이를 네트워크로 전송하는 방법도 배울 수 있다. 그리고 끝으로 이 책에서 다룬 HTML5에 대한 정리와 전망에 대해 이야기한다.

저자/역자 소개

[ 저자 서문 ]

이 책의 집필을 시작한 날, 주요 브라우저에서 HTML5와 HTML5 비디오를 지원하겠다고 발표했다. 참으로 신기한 우연의 일치가 아닐 수 없다. 2010년 3월 16일 마이크로소프트가 인터넷 익스플로러 9에서 HTML5와 HTML5 비디오 엘리먼트를 지원하겠다고 발표함으로써 파이어폭스, 오페라, 구글 크롬, 웹킷/사파리 진영에 참여했다. 이 책을 마치기 몇 주 전 인터넷 익스플로러 9의 베타 버전이 출시돼서 인터넷 익스플로러 9의 내용도 이 책에 실을 수 있었다. 독자에겐 다행스러운 일이다.

이 책을 집필하는 동안에도 브라우저 제작사들의 발표가 이어졌고, 많은 기술이 브라우저에 탑재됐다. 이 책에 실린 예제는 이 책의 집필을 마치는 시점의 최신 브라우저 버전에서 모두 테스트했다. 이 책에서 사용한 브라우저 버전은 파이어폭스 4.0b8pre, 사파리 5.0.2, 오페라 11.00alpha build 1029, 구글 크롬 9.0.572.0이며 모두 맥 OS X에서 동작시켰다. 인터넷 익스플로러 9 beta(9.0.7930.16406)는 윈도우 7에서 동작시켰다.

브라우저는 계속 발전하고 있어 오늘까진 지원되지 않던 기능이 내일은 지원될 수도 있다. HTML5와 HTML5 비디오를 이용해 웹페이지를 개발한다면, 사용하려는 기능이 현재 모든 브라우저에서 지원하는 기능인지 꼭 확인해보기 바란다.


[ 저자 소개 ]

실비아 파이퍼(Silvia Pfeiffer)
실비아 파이퍼 박사는 독일에서 태어나 독일에서 자랐다. 컴퓨터와 경영을 전공했으며, 컴퓨터 박사학위를 취득했다. 오디오/비디오 콘텐츠를 분석해 인터넷상의 디지털 오디오/비디오 콘텐츠 관리하는 분야에 대해 연구했다. 웹 초창기 시절부터 이 분야에 대한 연구를 진행했으며, 유튜브가 나오기도 훨씬 전부터 이 분야의 연구를 시작했다.
1999년에 박사학위를 받은 후 호주의 CSIRO(Commonwealth Scientific and Industrial Research Organisation)에 입사했다. 여기서 MPEG-7 표준과 관련된 일을 하면서 오디오/비디오 애노테이션을 이용해 웹상에서 미디어 콘텐츠의 접근성을 높이는 연구를 시작했다. 동료와 함께 ‘Continuous Media Web’이라는 아이디어를 만들었으며, 이를 이용해 웹의 모든 정보를 오디오/비디오 콘텐츠로 구성하고 사용자가 하이퍼링크를 이용해 텍스트 페이지를 서핑하는 것과 같이 오디오/비디오 콘텐츠로 구성된 웹을 서핑하는 구조를 개발했다. 또한 오디오/비디오 콘텐츠에 시간정보가 포함된 트랜스크립트를 이용해 사용자가 미디어 파일의 내부까지 검색할 수 있는 방안을 제시했다.
실비아와 동료는 지프(Xiph)와 협력해 Ogg를 확장하고 파이어폭스와 아파치 서버 플러그인을 개발해 위 아이디어를 실현했다. CSIRO의 웹 검색 엔진에 파일 지원 기능을 추가해 2001년에는 비디오 검색 엔진을 만들어 시간적 URI를 이용한 비디오 검색이 가능하게 했다. 오늘날 구글 비디오 검색에서 사용하는 것과 유사한 기능이다.
실비아는 2006년까지 CSIRO에서 일했다. 웹 2.0의 탄생과 유튜브의 성공에 감명받아 크리스 길비(Chris Gilbey), 존 펄리토(John Ferlito)와 함께 비디오 검색 업체인 브이퀀스(Vquence)로 회사를 옮겼다.
현재 실비아는 프리랜서로 일하면서 웹 미디어 애플리케이션, 미디어 표준, 미디어 접근성 등과 관련된 일을 한다. 또한 매해 개최되는 FOMS(Foundations of Open Media Software) 워크샵을 준비하는 일도 한다. WHATWG와 W3C에서 활동하면서 HTML5 미디어 기술에 공헌하며, 모질라와 구글과 함께 미디어 접근성 표준 관련된 작업도 한다. 실비아의 블로그 주소는 http://blog.gingertech.net이다


[ 옮긴이의 말 ]

누군가가 HTML5의 새로운 기능이 무엇이냐고 묻는다면 아마 대부분의 웹 개발자는 비디오 엘리먼트라고 대답할 것입니다. 기존 HTML에서도 사용할 수 있던 비디오가 추가된 것이 뭐 그리 대단하냐고 의문을 가질 수도 있습니다. 그러나 비디오 엘리먼트가 추가됐다는 말은 단순히 ‘엘리먼트 하나 추가’만을 뜻하지 않습니다. 이 책에서도 순수하게 비디오 엘리먼트만 다루는 장은 2장 하나에 지나지 않습니다.

HTML5에서 혁신적인 점은 비디오 엘리먼트를 잘 활용할 수 있는 더 많은 기능이 추가돼 많은 일들을 간단히 처리할 수 있게 된 것입니다. 대표적으로 비디오 편집과 이미지 프로세싱을 간단히 처리할 수 있게 됐습니다. 뿐만 아니라, 독자적인 규격이 아닌 W3C에서 정한 표준이기 때문에 HTML5를 지원하는 많은 브라우저에서 같은 방법으로 처리할 수 있습니다.

몇 년 새 국내에서도 크롬이나 파이어폭스를 사용하는 사용자가 늘어났습니다. 또한 아이폰과 맥의 확대 보급과 더불어 자연스레 사파리를 사용하는 사용자도 많이 늘어났습니다. HTML5의 도입으로 브라우저 기능이 확장됨에 따라 이런 현상은 더욱 가속화될 것으로 보입니다.

HTML5의 비디오 엘리먼트에 대한 완벽한 가이드 역할을 해 주리라 기대하는 이 책에서는 단순히 비디오 엘리먼트를 웹페이지에 추가하는 방법뿐 아니라 자바스크립트, SVG, 캔버스, 웹 워커 등을 이용해 비디오 엘리먼트의 활용도를 높일 수 있는 방법을 소개합니다. 뿐만 아니라 저자가 전문가로 초빙돼 활동 중인 표준화 단체에서 논의중인 오디오 API, 웹 접근성, 오디오/비디오 장치 접근 등과 관련된 내용도 이 책에서 다룹니다. 현재 완료된 표준과 개발 중인 표준을 한 번에 파악할 수 있는 가치 있는 책이라고 생각됩니다. 더욱이 책의 출판 시점을 기준으로 가장 최신 버전의 브라우저로 테스트했으므로 각 브라우저가 지원하는 기능과 지원하지 않는 기능을 정확히 파악할 수 있을 것으로 기대합니다.

HTML 외에도 이 책에서는 CSS, 자바스크립트 등을 다루지만, 충분한 예제와 설명이 제공되므로 CSS와 자바스크립트의 개념만 알고 있다면 이해하는 데 전혀 문제가 없을 것입니다. 또한 이 책에서는 주로 HTML5 비디오에 초점을 맞추고 있긴 하지만, HTML5의 많은 기능에 대해 이해할 수 있으리라 기대합니다. 이 책을 통해 HTML5에 더욱 많은 관심을 가지고 훌륭한 웹 애플리케이션을 개발할 수 있는 능력을 키워 웹OS 시대에 대응하는 개발자가 되기 바랍니다.

- 윤민홍


[ 옮긴이 소개 ]

윤민홍
아름다운 아내, 귀염둥이 딸, 아들과 대전에서 살고 있는 8년차 연구원으로, 모바일 SW 플랫폼 분야에서 일한다. 작은 버그를 수정하고 1%라도 성능을 높이는 것에 만족을 느끼는 소심한 연구원으로, 은퇴하는 날까지 프로그래밍을 즐기는 것이 소망이다. 에이콘출판사에서 출간한 『코코아 터치 프로그래밍』(2010), 『해킹 초보를 위한 USB 공격과 방어』(2011)를 번역했다.

남기혁
고려대 컴퓨터학과를 졸업하고 동 대학원 정형기법 연구실에서 석사 학위를 받았다. 한국전자통신연구원에서 미래 인터넷 연구에 참여 중이며, 낚시와 자동차에 푹 빠져 살고 있다. 에이콘출판사에서 출간한 『Early Adopter Curl』(2002), 『GWT 구글 웹 툴킷』(2008)과 『코코아 터치 프로그래밍』(2010), 『해킹 초보를 위한 USB 공격과 방어』(2011)를 번역했다.

목차

목차
  • 1장 HTML5 소개
    • 1.1 간단한 HTML5 비디오의 역사
    • 1.2 공통 포맷?
    • 1.3 정리
  • 2장 오디오 엘리먼트와 비디오 엘리먼트
    • 2.1 비디오 마크업과 오디오 마크업
      • 2.1.1 비디오 엘리먼트
      • 2.1.2 오디오 엘리먼트
      • 2.1.3 소스 엘리먼트
      • 2.1.4 마크업 정리
    • 2.2 미디어 인코딩
      • 2.2.1 MPEG-4 H.264 비디오 인코딩
      • 2.2.2 Ogg Theora 인코딩
      • 2.2.3 WebM 인코딩
      • 2.2.4 MP3와 Ogg Vorbis 인코딩
    • 2.3 웹페이지 게시
      • 2.3.1 웹 서버와 HTTP 프로그레시브 다운로드
      • 2.3.2 RTP/RTSP를 이용한 스트리밍
      • 2.3.3 HTTP 스트리밍 확장
    • 2.4 기본 사용자 인터페이스
      • 2.4.1 화면에 항상 표시되는 컨트롤
      • 2.4.2 컨텍스트 메뉴
      • 2.4.3 컨트롤 정리
    • 2.5 정리
  • 3장 CSS3 스타일링
    • 3.1 CSS 박스 모델과 비디오
    • 3.2 CSS 포지셔닝과 비디오
      • 3.2.1 인라인(inline) 박스 타입
      • 3.2.2 논(none) 박스 타입
      • 3.2.3 블록 박스 타입
      • 3.2.4 상대적 포지셔닝 모드
      • 3.2.5 플로트 포지셔닝 모드
      • 3.2.6 절대적 포지셔닝 모드
      • 3.2.7 비디오 스케일링과 박스내 배치
    • 3.3 CSS 기본 속성
      • 3.3.1 불투명
      • 3.3.2 그라디언트
      • 3.3.3 마퀴
    • 3.4 CSS 트랜지션와 트랜스폼
      • 3.4.1 트랜지션
      • 3.4.2 2D 트랜스폼
      • 3.4.3 3D 트랜스폼
      • 3.4.4 비디오 갤러리
    • 3.5 CSS 애니메이션
    • 3.6 정리
  • 4장 자바스크립트 API
    • 4.1 콘텐츠 속성
    • 4.2 IDL 속성
      • 4.2.1 미디어 리소스의 기본 속성
      • 4.2.2 미디어 리소스 재생 관련 속성
      • 4.2.3 미디어 엘리먼트의 상태
    • 4.3 미디어 제어 API
    • 4.4 이벤트
    • 4.5 커스텀 컨트롤
    • 4.6 정리
  • 5장 HTML5 미디어와 SVG
    • 5.1 <video>와 SVG 함께 사용
    • 5.2 기본 도형과 <video>
    • 5.3 SVG 텍스트와 <video>
    • 5.4 <video>를 위한 SVG 스타일링
    • 5.5 <video>에 적용하는 SVG 효과
    • 5.6 SVG 애니메이션과 <video>
    • 5.7 SVG내 미디어 표시
    • 5.8. 정리
  • 6장 HTML5 미디어와 캔버스
    • 6.1 캔버스내 비디오
    • 6.2 스타일링
    • 6.3 합성
    • 6.4 텍스트 그리기
    • 6.5 트랜스폼
    • 6.6 애니메이션과 대화형 객체
    • 6.7 정리
  • 7장 HTML5 미디어와 웹 워커
    • 7.1 비디오에 웹 워커 사용
    • 7.2 웹 워커를 이용한 움직임 탐지
    • 7.3 영역 나누기
    • 7.4 얼굴 탐지
    • 7.5 정리
  • 8장 HTML5 오디오 API
    • 8.1 오디오 데이터 읽기
      • 8.1.1 오디오 샘플 추출
      • 8.1.2 Framebuffer 정보
      • 8.1.3 오디오 파형 그리기
      • 8.1.4 오디오 스펙트럼 그리기
    • 8.2 오디오 데이터 생성
      • 8.2.1 단일 주파수 소리 만들기
      • 8.2.2 별도의 오디오 소스를 이용해 소리 만들기
      • 8.2.3 끊김 없는 재생
      • 8.2.4 소리 조작: 블립
      • 8.2.5 톤 생성기
    • 8.3 필터그래프 API
      • 8.3.1 간단한 읽고 쓰기
      • 8.3.2 고급 필터
      • 8.3.3 잔향 효과
      • 8.3.4 파형 디스플레이
    • 8.4 정리
  • 9장 미디어 접근성과 국제화
    • 9.1 대체 콘텐츠 기술
      • 9.1.1 시각 장애 사용자
      • 9.1.2 청각 장애 사용자
      • 9.1.3 청각 장애와 시각 장애를 모두 가진 사용자
      • 9.1.4 이해 돕기
      • 9.1.5 외국어 사용자
      • 9.1.6 기술 정리
    • 9.2 트랜스크립트
      • 9.2.1 단순 트랜스크립트
      • 9.2.2 대화형 트랜스크립트
    • 9.3 대체 텍스트 동기화
      • 9.3.1 WebSRT
      • 9.3.2 HTML 마크업
      • 9.3.3 인밴드
      • 9.3.4 자바스크립트 API
    • 9.4 멀티트랙 오디오/비디오
    • 9.5 탐색
      • 9.5.1 챕터
      • 9.5.2 키보드 탐색
      • 9.5.3 미디어 프래그먼트 URI
      • 9.5.4 큐의 URL
    • 9.6 접근성 정리
  • 10장 오디오 비디오 장치
    • 10.1 시나리오
    • 10.2 <device> 엘리먼트
    • 10.3 스트림 API
    • 10.4 웹소켓 API
    • 10.5 커넥션피어 API
    • 10.6 정리
  • 부록 HTML5 전망과 정리
    • A.1 전망
      • A.1.1 메타데이터 API
      • A.1.2 서비스 품질 API

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안