Adobe Flash Player의 중요한 기능 중 하나는 기타 시각적 내용(예: 이미지, 애니메이션, 텍스트)을 조작하는 것과 동일한 방법으로 ActionScript를 사용하여 비디오 정보를 표시하고 조작하는 것입니다.
Adobe Flash CS3 Professional에서 Flash 비디오(FLV) 파일을 만드는 경우 일반적인 재생 컨트롤을 포함한 비디오 스킨을 선택하는 옵션이 있습니다. 그러나 제공되는 옵션 외에도 다양한 기능을 활용할 수 있습니다. ActionScript를 사용하면 비디오 재생 로드, 표시 및 제어를 세밀하게 조절하여 자신만의 비디오 플레이어 스킨을 만들거나 사용자가 원하는 새로운 방식으로 비디오를 사용할 수 있습니다.
ActionScript에서 비디오를 사용한 작업을 수행하려면 다음과 같은 여러 클래스를 조합해서 사용해야 합니다.
Video 클래스: 스테이지에 있는 실제 비디오 내용 상자가 Video 클래스의 인스턴스입니다. Video 클래스는 표시 객체이므로 위치 지정, 변형 적용, 필터 및 블렌드 모드 적용을 비롯하여 다른 표시 객체에 적용할 수 있는 동일한 기술로 조작할 수 있습니다.
NetStream 클래스: ActionScript에서 제어하도록 비디오 파일을 로드할 때, 비디오 내용의 소스(이 경우에는 비디오 데이터 스트림)를 나타내는 데 NetStream 인스턴스가 사용됩니다. NetStream 인스턴스를 사용하려면 NetConnection 객체도 사용해야 합니다. NetConnection 객체는 비디오 파일에 대한 연결이며 비디오 데이터가 제공되는 터널과 같습니다.
Camera 클래스: 사용자의 컴퓨터에 연결된 카메라에서 입력된 비디오 데이터를 사용하여 작업할 때 Camera 인스턴스는 비디오 내용의 소스 즉, 사용자의 카메라 및 비디오 데이터를 통해 입력된 내용을 나타냅니다.
외부 비디오를 로드할 때는 표준 웹 서버에서 파일을 로드하여 점진적인 다운로드 재생을 하거나, Adobe의 Macromedia® Flash® Media Server와 같은 특별 서버에 의해 전달된 비디오를 스트리밍할 수도 있습니다.
일반적인 비디오 작업
이 장에서는 사용자가 수행할 다음과 같은 비디오 관련 작업에 대해 설명합니다.
스크린에서 비디오 표시 및 제어
외부 FLV 파일 로드
비디오 파일의 메타데이터 및 큐 포인트 정보 처리
사용자의 카메라에서 비디오 입력 캡처 및 표시
중요한 개념 및 용어
큐 포인트: 비디오 파일에서 특정 순간에 삽입할 수 있는 표시자입니다. 예를 들어, 특정 지점을 찾기 위한 책갈피로 큐 포인트를 사용하거나 특정 순간과 관련된 추가 데이터를 제공하기 위해 큐 포인트를 사용할 수 있습니다.
인코딩: 특정 포맷의 비디오 데이터를 다른 비디오 데이터 포맷으로 변환하는 프로세스입니다. 예를 들어, 고해상도의 소스 비디오를 인터넷으로 전송하는 데 적합한 포맷으로 변환할 수 있습니다.
프레임: 비디오 정보의 한 세그먼트로, 각 프레임은 한 순간의 스냅샷을 나타내는 정지 영상과 같습니다. 프레임을 고속으로 연속 재생하면 움직이는 것처럼 보입니다.
키프레임: 프레임의 모든 정보가 포함된 비디오 프레임입니다. 키프레임 다음에 오는 다른 프레임에는 전체 프레임의 정보가 아닌 키프레임과 구분되는 정보만 포함됩니다.
메타데이터: 비디오 파일에 포함할 수 있으며 비디오가 로드되었을 때 검색할 수 있는 비디오 파일에 대한 정보입니다.
점진적 다운로드: 표준 웹 서버에서 비디오 파일을 전송하는 경우 비디오 데이터는 점진적 다운로드를 통해 로드됩니다. 즉, 비디오 정보가 순서대로 로드됩니다. 점진적 다운로드를 사용하면 전체 파일이 다운로드되기 전에 비디오 재생을 시작할 수 있다는 장점이 있지만 아직 로드되지 않은 비디오 부분으로 이동할 수는 없습니다.
스트리밍: "트루 스트리밍"이라고 하는 스트리밍 기술을 사용하여 특수 비디오 서버를 통해 인터넷으로 비디오를 전송하는 방법으로서 점진적 다운로드 대신 사용할 수 있습니다. 스트리밍을 사용하면 해당 컴퓨터에 전체 비디오가 한 번에 다운로드되지 않습니다. 다운로드 속도를 높이기 위해 컴퓨터에서는 언제나 전체 비디오 정보의 일부만을 필요로 합니다. 특수 서버에서 비디오 내용 전송을 제어하므로 비디오 액세스를 위해 다운로드될 때까지 기다릴 필요 없이 언제든지 비디오의 모든 부분에 액세스할 수 있습니다.
이 장의 예제를 사용하여 작업
이 장의 내용을 따라 작업하면서 예제 코드 샘플을 직접 테스트할 수 있습니다. 이 장은 ActionScript의 비디오 작업을 다루므로, 이 장 내의 코드 샘플 중 상당수는 비디오 객체(Flash 제작 도구에서 만들어 스테이지에 배치된 객체 또는 ActionScript를 사용하여 만든 객체) 작업과 관련이 있습니다. 샘플을 테스트하려면 코드로 비디오를 조작한 결과를 Flash Player에서 확인해야 합니다.
대부분의 예제 코드 샘플은 Video 객체를 명시적으로 생성하지 않고 조작합니다. 이 장의 코드 샘플을 테스트하려면:
빈 Flash 문서를 만듭니다.
타임라인에서 키프레임을 선택합니다.
[액션] 패널을 열고 [스크립트] 창에 코드 샘플을 복사합니다.
필요한 경우 [라이브러리] 패널을 엽니다.
[라이브러리] 패널의 메뉴에서 [새 비디오]를 선택합니다.
[비디오 속성] 대화 상자에서 새 비디오 심볼 이름을 입력한 다음, [유형] 필드에서 [비디오(ActionScript 조절됨)]을 선택합니다. [확인]을 클릭하여 비디오 심볼을 만듭니다.
만든 비디오 심볼을 [라이브러리] 패널에서 스테이지로 드래그합니다.
비디오 인스턴스를 선택한 상태에서, 속성 관리자에서 인스턴스 이름을 지정합니다. 이 이름은 예제 코드 샘플에서 해당 비디오 인스턴스에 대해 사용한 이름과 일치해야 합니다. 예를 들어, 코드 샘플에서 vid라는 Video 객체를 조작하려는 경우 스테이지 인스턴스 이름도 vid로 지정해야 합니다.
[컨트롤] > [무비 테스트]를 사용하여 프로그램을 실행합니다.
코드 샘플에 지정된 대로 코드를 통해 비디오를 조작한 결과가 스크린에 표시됩니다.
이 장의 예제 코드 샘플 중 일부에는 해당 예제 코드뿐만 아니라 클래스 정의도 포함되어 있습니다. 이러한 샘플의 경우, 앞의 단계와 더불어 SWF를 테스트하려면 예제에 사용할 클래스를 만들어야 합니다. 예제 코드 샘플에 정의된 클래스를 만들려면:
테스트에 사용할 FLA 파일을 저장해 두었는지 확인합니다.
주 메뉴에서 [파일] > [새로 만들기]를 선택합니다.
[새 문서] 대화 상자의 [유형] 섹션에서 [ActionScript 파일]을 선택합니다. [확인]을 클릭하여 새 ActionScript 파일을 만듭니다.
예제의 클래스 정의 코드를 ActionScript 문서에 복사합니다.
주 메뉴에서 [파일] > [저장]을 선택합니다. 파일을 Flash 문서와 같은 디렉토리에 저장합니다. 파일 이름은 코드 샘플에 있는 클래스의 이름과 일치해야 합니다. 예를 들어, 코드 샘플에서 "VideoTest"라는 클래스 이름을 정의했으면 ActionScript 파일을 "VideoTest.as"로 저장합니다.