본문 바로가기

분류 전체보기40

블로그 이전합니다. sun5066.github.io 2021. 4. 18.
[Android] MediaRecorder, MediaCodec, FFMpeg 뭘 써야할까? 1. FFMpeg 자체 SO를 구축하면 사용 사례에 따라 크기를 약 2~3MB 로 줄일 수 있다. (6000줄 빌드스크립트를 편집하려면 시간과 노력이 필요하지만..) 다양한 포맷 지원(거의 모든 포맷 지원) 모든 장치에서 결과가 동일함 모든 해상도가 지원됨 디코딩으로 인한 높은 에너지 소비는 속도저하의 원인이됨, lib-stagefright를 지원하는 플러그인이 있지만, 많은 기기에서 작동하지 않는다고함 라이센스에 예민함. 2. MediaRecorder 가장 구현하기가 쉬움(MediaCodec, lib-stagefright에 대한 단순화된 액세스) 원시 데이터가 인코더에 직접 전달되므로 문제 발생 방지 대부분의 장치에서 빠르고 에너지 절약이 가능함. 장치마다 결과가 다를 수 있음 라이센스 문제 없음 3... 2021. 4. 15.
[Android] MediaRecorder로 녹화된 파일 코덱 오류 나면서 소리만 들릴때 혹은 화면을 H.264 로 인코딩 했을경우 플레이어는 H.264 디코딩 작업이 필요하다.(8.0 오레오 기준 기본 플레이어 어플에서는 디코딩안해줌) 그래서 플레이스토어에서 다운받은 플레이어에서는 디코딩 작업이 되기 때문에 코덱문제가 없이 잘 재생되는것이다. mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)) 위 코드로 작성하면 H.264 로 자동 인코딩되기 때문에 플레이어는 디코딩 작업이 필수임. 2021. 4. 13.
[Android] MediaRecorder 녹화중지 -1007 에러 mCameraTexture?.setDefaultBufferSize(mImageDimension!!.width, mImageDimension!!.height) 녹화된 파일을 저장할때 MediaRecorder VideoSize 크기가 잘못되었을때 발생하는 현상. 해결법은 카메라 미리보기 화면을 셋팅하는 함수에서 private var mImageDimension: Size? = null private var mVideoDimension: Size? = null private fun setPreview() { val characteristics = mCameraManager.getCameraCharacteristics(mCameraId!!) val streamConfigurationMap = characteri.. 2021. 4. 13.
반응형