표면에 비디오를 디코딩 할 때 비트 맵/jpeg 파일로 원하는 프레임을 저장하고 싶습니다. 저는 스크린에 그려 넣고 싶지 않고 SurfaceTexture의 내용을 이미지 파일로 저장하기를 원합니다.SurfaceTexture를 비트 맵으로 저장하는 방법
답변
텍스처를 렌더링해야합니다.
일반 텍스처 였고 GLES 2 이상을 사용 중이라면 FBO에 부착하여 직접 읽을 수 있습니다. SurfaceTexture
은 "external texture"으로 백업되며 GL 드라이버가 전체 작업 집합을 지원하지 않는 형식 일 수 있으므로 그렇게 할 수 없습니다. 그것을 렌더링하고 결과를 읽어야합니다.
FWIW를 사용하면 프레임을 저장하는 방식으로 성능에 큰 영향을 줄 수 있습니다. MediaExtractor
, MediaCodec
, glReadPixels()
및 PNG 파일 생성의 사용을 보여주는 전체 예제가 bigflake (ExtractMpegFramesTest)에 추가되었습니다.
정보 및 사례에 대해 감사드립니다. – feisal
저는 최근에 안드로이드 플랫폼에서 이것을보고있었습니다. 다양한 옵션을 요약하고 적용 가능한 이유는 무엇입니까?
glReadPixels()는 유일한 옵션 안드로이드 자바 코더는 현재 정말 있습니다. 천천히. 텍스처가 아닌 프레임 버퍼에서 읽습니다 (화면 자체를 기록하지 않으려면 먼저 텍스처를 내부 프레임 버퍼에 렌더링해야합니다). 괜찮아. 일할 일이있어.
EGL_KHR_image_base() 네이티브 (NJK) 레벨에서는 사용할 수 있지만 Java에서는 사용할 수없는 것 같은 확장 프로그램입니다.
glGetTexImage() 유망하지만 OpenGL 2.0 ES 변형에서 사용할 수 없습니다.
픽셀 버퍼 객체 아마도 '올바른 방법'일을하고 있지만 OpenGL 3.0 ES (즉, 선택한 Android 4.3 이상 기기)가 필요합니다.
다른 곳에서 사용할 수없는 정보를 추가하는 것은 아닙니다. 그러나 겉으로보기에는 비슷한 많은 옵션을 사용하는 것은 여전히 혼란 스럽습니다. 나는 OpenGL 전문가가 아니므로 위의 실수는 기꺼이 고쳐집니다.
- 1. 비트 맵으로 캔버스를 저장하는 방법
- 2. 캔버스를 비트 맵으로 변환하여 sdCard에 저장하는 방법
- 3. 격자를 비트 맵으로 저장하는 방법 Windows의 로컬 저장소에있는 이미지 8
- 4. 변경 가능한 비트 맵으로 화면에 표시된 픽셀을 저장하는 방법
- 5. PictureDrawable을 비트 맵으로 변환하는 방법
- 6. ImageSource를 비트 맵으로 변환하는 방법?
- 7. IMediaSample을 비트 맵으로 변환하는 방법
- 8. AS3 - ByteArray를 비트 맵으로
- 9. 비트 맵으로 이미지 URL을로드하고
- 10. 비트 맵으로 setDataAndType을 사용하십시오.
- 11. 이미지를 비트 맵으로 변환
- 12. FrameLayout을 비트 맵으로 변환
- 13. BitmapImage를 비트 맵으로
- 14. Imagebox를 비트 맵으로 변환
- 15. GDI + 비트 맵으로 그리기
- 16. 지도를 비트 맵으로 변환
- 17. 안드로이드의 비트 맵으로 표면보기
- 18. fontawesome을 비트 맵으로 그립니다.
- 19. 스프라이트에서 비트 맵으로 변환
- 20. BitmapDrawable을 비트 맵으로 변환
- 21. VB.net에서 문자열에서 비트 맵으로
- 22. 비트 맵을 단색 비트 맵으로 변환하여 sdcard에 저장
- 23. IplImage를 Android 비트 맵으로 표시
- 24. GD-Sharp 스트림을 비트 맵으로 변환
- 25. 바이트 배열이나 사진을 객체에 비트 맵으로 저장하는 것이 더 낫습니다.
- 26. 안드로이드 : 바이트 배열을 비트 맵으로 변환하는 방법?
- 27. vb.net 그림 상자를 비트 맵으로 변환하는 방법
- 28. Uri 이미지를 비트 맵으로 압축하는 방법
- 29. 폴리곤 집합을 비트 맵으로 변환하는 방법
- 30. wpf에서 사각형을 비트 맵으로 변환하는 방법
시도해 보셨습니까? 이 질문을 본 적 있으신가요? http://stackoverflow.com/questions/12600023/how-to-read-pixels-from-a-rendered-texture-in-opengl-es –
저는 GLES에 상당히 익숙합니다. 올바른지 날 제발 내가 틀렸다면 : 실제로 텍스처를 렌더링하지 않고 서피스 색상 형식을 기반으로 SurfaceTexture의 내용을 RGB로 직접 변환하려고합니다. – feisal