추천의 글 ... 4 저자 소개 ... 6 감사의 글 ... 8 옮긴이의 말 ... 11 감수의 글 ... 14 들어가며 ... 22 1장 유물 발굴 프로젝트 지역 정찰 : 고객의 요구 파악 ... 30 표면 걷어내기 : 지형 살피기 ... 31 굴착: 인터뷰 ... 33 유물 조각 맞추기 : 적절한 해답 찾기 ... 34 함정의 예측 ... 34 프로젝트 지도 작성 : 제안서 ... 37 정확한 가격 책정 ... 40 대체할 방법의 제안 ... 41 요약 ... 42 2장 인코딩 기초 채굴의 기초 ... 44 고객으로부터 원본 비디오 받기 ... 44 비디오 자체 제작 ... 45 재미있는 요소의 추가 : 투명 비디오 ... 47 FLV를 만드는 방법 ... 50 참고로, 어떤 인코더를 사용하든 문제 없습니다 ... 53 비디오 인코딩 ... 55 알아야 하는 인코딩 요소 ... 55 인코딩 ... 59 요약 ... 65 3장 비디오 배포 로드맵 구성 관련성과 흐름 ... 68 흐름도 ... 69 구현의 시작 ... 70 테스트 1, 2, 3 ... 71 '뒤로 가기' 버튼에 대한 고려 ... 71 플래시 플레이어의 확인 ... 72 플래시 비디오 내비게이션 ... 73 단순함의 유지 ... 73 프로그레시브냐 스트리밍이냐, 그것이 문제로다 ... 74 SWF에 비디오 포함 ... 74 프로그레시브 다운로드 ... 75 스트리밍 ... 76 액션스크립트 작성! ... 78 프로그레시브 전송 : 액션스크립트 2 ... 78 프로그레시브 전송 : 액션스크립트 3 ... 80 스트리밍 전송 : 액션스크립트 2 ... 82 스트리밍 전송 : 액션스크립트 3 ... 83 퍼블리싱과 호스팅 선택 ... 84 CDN의 개요와 필요성 ... 85 FVSS란 ... 85 좀 더 많은 서비스가 필요할 경우 ... 86 오프라인 비디오의 경우 : FLV의 DVD 변환 ... 87 플로피 디스크에 복사 금지 : 디지털 저작권 관리 ... 87 요약 ... 89 4장 OOP와 비디오 애플리케이션 OOP에 열광하는 이유 ... 92 OOP란 ... 92 OOP의 핵심 요소 ... 92 플래시 개발에서 OOP가 유용한 이유 ... 93 플래시 비디오에서 OOP의 역할 ... 93 디자인 패턴과 플래시 비디오 ... 94 모델-뷰-컨트롤러(MVC) ... 94 상태 디자인 패턴(SDP) ... 97 여정의 기로 : 액션스크립트 2와 액션스크립트 3 ... 99 사용할 언어의 선택 ... 99 애플리케이션이 해야 할 것 ... 99 대상 플레이어 ... 100 작업 환경의 구축 ... 101 진행 : 액션스크립트 2 개발을 위한 이클립스, FDT와 MTASC 설정 ... 103 오픈 소스 만세! ... 109 요약 ... 110 5장 비디오 플레이어 비디오 재생의 필요 - 시작 위치의 결정 ... 112 컴포넌트를 이용한 플레이어 제작 ... 113 FLVPlayback 컴포넌트로 할 수 있는 것 ... 113 FLVPlayback 컴포넌트로 할 수 없는 것 ... 113 플래시 CS3의 FLVPlayback 컴포넌트 사용 ... 114 특화된 사용자 플레이어의 제작 ... 124 플레이어 구조 ... 126 코드의 분석 ... 130 스킨의 적용 ... 137 요약 ... 138 6장 테스트, 최적화, 설치 테스트, 테스트, 테스트 ... 140 테스트 주도 개발과 코딩 시의 테스트 ... 140 테스트, 테스트, 좀 더 많은 테스트 ... 143 대역폭의 고려 ... 147 비디오 버퍼링 : 만약이 아닌 얼마나 많이 ... 148 대역폭 측정 : 파이프로 밀어넣을 수 있는 양 ... 149 3, 2, 1... 런칭 준비! ... 157 프로그레시브 설치 ... 157 스트리밍 설치 ... 160 프로젝트 최종 정리 ... 164 스펙 문서의 재확인 ... 164 최종 리허설 ... 164 런칭 ... 164 결과물 : 문서와 작업 파일들 ... 165 미팅 스케줄의 확인 ... 165 파일 보관 ... 166 요약 ... 167 7장 동적 재생 목록 고객의 공격 : 컨텐츠 업데이트의 제어 ... 170 힘겨운 재생 목록 : 옵션들 ... 171 PlaylistLiStBox.fla : 리스트 박스 안으로 단순한 배열 삽입 ... 178 PlaylistListBox_XML.fla : 리스트 박스에 XML 정보 입력 ... 180 혼합: 순차와 셔플 재생 ... 185 PiaylistAutoPlay.fla : 순차 재생 ... 186 PlaylistShuffle.fla : 재생 목록으로부터 랜덤한 비디오 재생 ... 187 MVC 플레이어에 XML 재생 목록의 적용 ... 189 test_playlist.xml ... 190 액션스크립트 2 : MediaPlayer.as ... 190 액션스크립트 3 : Main.as ... 193 요약 ... 195 8장 메타데이터와 큐 포인트의 이해 메타데이터 마술 ... 198 메타데이터 읽기 ... 202 비디오의 전체 재생 시간(duration) ... 204 큐 포인트의 힘 ... 208 큐 포인트를 사용하는 이유 ... 208 큐 포인트에 포함되는 데이터의 종류 ... 208 큐 포인트의 추가 방법 ... 209 큐 포인트의 3가지 타입 ... 211 NetStream에서 큐 포인트를 읽어오는 방법 ... 212 동적 액션스크립트 큐 포인트의 추가 ... 214 자막의 추가 ... 217 챕터 링크의 추가 ... 221 프로그레시브의 교묘한 처리 : 스크립트된 가상의 스트리밍 ... 228 전통적인 프로그레시브 다운로드 ... 229 스크립트된 가상의 스트리밍(SPS) ... 229 알게 된 것 ... 234 요약 ... 234 9장 필터와 마스크를 이용한 픽셀 변형 내 비디오에 할 수 있는 일 ... 238 하나의 비디오, 다양한 마스크 ... 239 액션스크립트 2 : FunWithMasks.as ... 240 액션스크립트 3 : FunWithMasks.as ... 246 다시 살펴보는 알파 채널 ... 254 필터와 틴트의 이용 ... 256 액션스크립트 2 : FunWithFilters.as ... 257 액션스크립트 3 : FunWithFilters.as ... 263 장면 전환 ... 268 액션스크립트 2 : FunWithTransitions.as ... 269 액션스크립트 3 : FunWithTransitions.as ... 273 요약 ... 278 10장 비디오와 비트맵 데이터 객체 비트맵 데이터의 의미와 알아야 할 이유 ... 280 동적 썸네일 : 비디오 스냅샷 ... 283 액션스크립트 2 : FLVBitmapThumb ... 283 액션스크립트 3 : FLVBitmapThumb ... 288 전환과 디졸브 ... 294 액션스크립트 2 : FLVBitmapTransition ... 296 액션스크립트 3 : FLVBitmapTransition ... 307 포토부스 애플리케이션 ... 314 액션스크립트 2 : FotoBooth Application ... 315 액션스크립트 3 : FotoBooth Application ... 320 요약 ... 329 11장 라이브 비디오와 웹캠 : FMS 비디오 혁명의 시작 ... 332 FMS의 개요와 작업 방법 ... 333 FMS가 멋진 이유 ... 333 FMS의 용도 ... 333 FMS 라이브! 알아야 하는 것들 ... 334 호스팅: 선택, 선택, 선택 ... 334 개발 환경의 설정 ... 338 파일 구조 ... 339 기본 사항들 ... 340 미디어 클래스 ... 343 웹캠을 세상 밖으로 ... 346 videoConf.fla ... 347 FMS를 사용해서 할 수 있는 다른 것 ... 359 File 클래스 ... 359 서버 측 데이터 처리 ... 360 서버와 서버 간의 커뮤니케이션 ... 360 대역폭 매니저 ... 361 서버 측 스트리밍 ... 361 로드 밸런싱 ... 362 스트림과 녹화를 위한 접근 제어 ... 362 보안 애플리케이션 ... 363 지능적 대역폭 스트리밍 ... 363 FMS에 대한 팁과 비법 ... 365 요약 ... 368 부록 : 실제 환경에서 사용되는 MVC 미디어 고객의 요구 사항 ... 370 상위 레벨의 프레임워크 코드로 리펙토링 ... 371 이벤트 브로캐스터 적용 ... 371 코드 기반의 애니메이션 라이브러리 사용 ... 372 MVC 미디어 플레이어 코드 리펙토링 ... 373 MVC 접속이 이뤄지는 방법의 변화 ... 373 인터페이스에 필요한 메소드 추가 ... 375 클래스에 새 메소드 적용 ... 379 뷰에 다중 컴포넌트 추가 ... 386 핵심 컴포넌트 클래스 ... 387 재생 시간/전체 재생 시간 ... 390 음소거/비음소거 버튼 ... 392 빨리 감기와 되감기 버튼 ... 392 재생/일시정지 버튼 ... 394 볼륨 슬라이드 바 ... 397 재생 진행 바 ... 398 다운로드 진행 바 ... 399 미디어 플레이어의 결론 - MVC 결론 ... 399 다음 레벨로 넘어가기 ... 400 찾아보기 ... 405