가능한 한 CPU에 미치는 영향을 최소화하면서 한 위치에서 다른 위치로 효율적으로 1080p 비디오의 픽셀을 복사하고 싶습니다.as3에서 비디오 픽셀에 액세스하는 가장 빠른 방법은 무엇입니까?
지금까지 내 구현은 매우 간단하다 :의 BitmapData의 copyPixels를 사용하여 비디오
- 은()에 대한
이상적으로 픽셀을 뒤섞 가능한 한 CPU에 미치는 영향은 거의 없지만 옵션이 부족하여 숙련 된 ActionScript 3 개발자의 팁을 실제로 사용할 수 있습니다.
스카우트로 코드를 프로파일 링했으며 CPU 사용량이 거의 70 % 정도이지만 100 %를 훨씬 넘는 것으로 나타났습니다. 나는 StageVideo에보고했지만 주요 한계 중 하나는 이것이다 : 비디오 데이터가 BitmapData 객체 (하여 BitmapData.draw)에 복사 할 수 없습니다
.
DisplayObject를 래스터 화하는 대신 비디오 픽셀에 직접 액세스하는 방법이 있습니까?
각 비디오 프레임을 직접 ByteArray로 액세스하여 BitmapData 객체에 연결할 수 있습니까? (내가 찾은 appendBytes하지만 내 설정에서 필요한 것과 반대로 수행하는 것 같습니다).
actionscript 3에서 h264 1080p 비디오의 픽셀을 조작하는 데 가장 CPU 친화적 인 방법은 무엇입니까?
또한 Flash Player를 사용하여 copyPixels() 이외의 다른 픽셀을 빠르게 이동하는 방법이 있습니까? 또한 스카우트 (Skout)는 비디오가 하드웨어 가속화가 아니라고 지적합니다 (.rend.video.hwrender: false
). this article에 따라 h264 비디오를 하드웨어 가속화해야합니까 (아니면 전체 화면 모드에만 해당됩니까?)?
추상화의 여러 레이어를 사용하여이 대규모 데이터 세트를 조작하는 것이 이미 가지고있는 것보다 빠르게 진행되지 않아야하고, 예,'copyPixels() '는 가장 빠른 방법 중 하나입니다. 'getPixels()'또는'getVector()'를 사용하면 실제로 무엇을해야하는지에 따라 더 빨리 할 수 있습니다. – Vesper
copyPixels()에 대한 정보를 삭제 해 주셔서 감사합니다. BitmapData'draw()를 사용하지 않고도 비디오에서 직접 픽셀을 가져 오는 방법을 알고 있습니까? –
잡는 바이트에 신경 쓰지 마라. 압축에서 디코딩 할 때까지는 픽셀이 없습니다 (예 : 사용자 정의 h.264 디코더 작성). appendBytes를 디코딩 바로 가기로 사용하면 바이트가 픽셀이되지만 뭘 추측합니까? 'BitmapData.draw()'가 Adobe에 의해 차단되었습니다 !! 파일을 재생할 수있는 곳에서 byteArray를 통해 공급 된 동일하거나 다른 맞춤 비디오 데이터 _가 정책 파일 오류 (wtf?)를 던졌습니다 –