마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

camera1 API에서 mediacodec 사용하는법 아시는분??

0 추천
제목그대로 camera1 API에서 mediacodec 사용하는법을 잘모르겠어서 질문올립니다..

camera2에서는 사용하는 예제가 구글에 있어서 간편했는데 camera1같은 경우에는 어떻게 적욯아는지..
익명사용자 님이 2017년 12월 12일 질문

1개의 답변

0 추천

previewCallback 을 통해 데이터를 구한 후 인코딩하는 방식이 있긴 한데, 칼라변환을 해야 해서  속도가 늦습니다.

보통  5~10FPS 나옵니다. 꼭 MediaCodec을 사용할 필요가 없다면, 

 MediaRecoder setCamera를 통해 만드시는 것도 가능합니다.  ( 로컬 프록시로 출력 시킨 후 적어지는 컨테이너를 파싱 하여,  NAL데이터를 뽑는 것도 가능은 하더군요.. )

익명사용자 님이 2017년 12월 13일 답변
아.. 지금 녹화영상을 뽑는것이 목적이아니고
매번 인코딩된 결과(I,P프레임)을 로그로 찍어내는게 목적이라서요..
MediaCodec.callback의 outputBuffer메소드로 찍어내려고 하는거라..ㅎㅎ
Camera1에서는 속도가 많이 느리려나요..?
색상이 깨져도 된다면야 . 칼라변환을 안해도 되니. previewcallback으로 구해 인코딩해도 그렇게 늦진 않을 겁니다. 링크에 있는 코드를 확인 해 보세요.
근데...  프레임 정보는 MediaCodec configure 설정  시
 https://developer.android.com/reference/android/media/MediaFormat.html#KEY_I_FRAME_INTERVAL 값을  지정하면 인코딩 결과의 주기를 결정할 수 있을텐데 굳이 잴 필요가 있는지는 모르겠습니다.
처음 답글 다신분이 몰라도 너무 모르시네요;;
previewCallback과 MediaRecorder의 setCamera모두 deprecated된 메소드입니다.
당장은 동작할지몰라도 이후에는 동작안되겠죠
...