2012-02-25 3 views
2

이것은 가능할지 모르지만 상황은 다음과 같습니다. ActionScript 3 Camera 클래스를 사용하여 로컬 카메라 (웹캠, 내장 카메라 등)에서 비디오를 캡처 한 다음 해당 비디오를 다시 재생하려고합니다. 플래시 응용 프로그램.비디오를 메모리로 캡처하고 액션 스크립트로 재생합니까?

Flash Media Server로 전송 한 다음 주문형 비디오로 다시 스트리밍 할 수있는 가능성을 고려하고 있지만 최상의 성능을 위해 모든 것을 클라이언트 쪽에서 유지하는 것이 이상적입니다.

웹 페이지에 삽입 할 수있는 한 다른 플랫폼 (Java는 하나의 고려 사항)을 사용하는 아이디어에 대해 열려 있지만 개발을 가능한 한 간단하게 유지하고 최종 사용자가 가능한 한 쉽게 응용 프로그램에 액세스 할 수 있기 때문에 처음에는 Flash를 선택했습니다.

누구든지이 작업을 수행하는 방법을 알고 있다면 입력을 환영합니다.

+0

필자는 직접 사용하지 않았지만 FMS의 http 스트리밍 API를 사용하면 클라이언트에서 ByteArray로 데이터를 가져올 수 있다고 생각하고 플래시의 Video 클래스는 해당 데이터 스트림을 푸시 할 수 있습니다 ... – catholicon

답변

3

좋아요, 여기 제가 허락 한 장애물에 맞설 수있는 사람을위한 업데이트입니다. flvEncoder라는 Lee Felarca (zeropointnine - http://www.zeropointnine.com/)가 작성한 유틸리티를 사용하여 비디오를 녹화하고 미리보고 미리 볼 수있게 한 다음 한 플래시 응용 프로그램에서 업로드 할 수있었습니다. (발렌틴 시모노 제안 훨씬처럼) 원시 형식으로

  1. 오디오 녹음 및 비디오 데이터
  2. 플래시 FLV 포맷으로 인코딩 flvEncoder에 데이터를 전달하고 다시이 ByteArray를 얻을 :

    개념은 그대로 . Flash FLV를 말하는 것이 중복되는 것 같지만 Flash 및 Adobe Media Player가 결과를 해석 할 수있는 유일한 것으로 보이는 것이므로 그렇게 말합니다.

  3. NetStream 인스턴스를 만들어 데이터 생성 모드에두면 appendBytes() 메서드를 사용하여 인코딩 된 데이터를 입력 NetStream에 연결된 Video 객체에 전달합니다.
  4. FileReference.upload()를 사용하여 HTTP 요청으로 서버에 데이터를 보냅니다.

잠재적으로 많은 메모리를 먹을 수 있지만 어쨌든 짧은 비디오 만 녹화하면됩니다. 지저분하고 독점 프로젝트에 묶여 있기 때문에 여기에 코드를 게시하지 않겠지 만이 정보가 도움이되기를 바랍니다. 답변 주셔서 감사합니다!

+0

좋은 찾으십시오. Adobe가 Alchemy를 별도의 제품으로 변경하고 있기 때문에이 솔루션은 11.2에서 중단 될 수 있습니다. –

+0

flvEncoder 클래스에는 순수 ActionScript 인코더가 포함되어 있으며 연금술 엔코더는 선택 사항입니다. 내가 아는 한, 앞으로 나아가 야한다. –

0

가장 쉬운 방법은 FMS, Wowza 또는 Red5 미디어 서버를 사용하는 것입니다. NetStream을 사용하여 서버에 데이터를 보내고 거기에 영화를 저장하고 다시 스트리밍하면됩니다.

또한이 방법을 사용하는 유일한 방법이라고 생각합니다. Camera, Video 또는 NetStream 객체는 실제 비디오 바이트에 액세스 할 수 없습니다. 당신이 할 수있는 일은 비디오의 인스턴스를 카메라에 추가하고 1/24 초마다 비트 맵에 그려 넣는 것입니다. 그 후에도 데이터를 인코딩해야하거나 메모리가 매우 빨리 소모됩니다. 여기 as3으로 만든 flv/h264 코덱이 있는지 확실하지 않습니다. 그러나 어쨌든 나는 그것이 천천히 걸릴 것 같아요.

+0

FMS에 업로드하기 전에 사용자가 비디오를 미리 볼 수 있도록하고 싶었지만 비디오를 업로드하고 다시 스트리밍해야했습니다. 고맙습니다! –

관련 문제