본문 바로가기

Android9

[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.
안드로이드 애플리케이션 설계 애플리케이션 설계란? 애플리케이션 설계는 구성 요소들 사이에서 유기적 관계를 표현하고, 요구 사항을 해결하려는 계획 과정 등의 원칙을 나타낸다고함. 설계에 대한 설명은 주로 텍스트나 그림, 다이어그램을 비롯한 다양한 형식을 취함. 애플리케이션은 우선 구현되고 나면 변경하는 데 비용이 많이 듬. 시간이 지남에 따라 안드로이드의 정책이 바뀌고, 시장의 요구 사항이 변경되어 애플리케이션에 대한 지속적인 유지보수가 필요하게 되는데, 이때 애플리케이션도 점점 거대해져 유지보수는 점점 커질 수 밖에 없음. 잘 설계된 애플리케이션은 유지 보수비를 줄요 주고, 성능, 보안, 안정성 등의 측면에서 많은 이점이 있다 라고함. 애플리케이션 설계에는 끊임없는 노력이 필요하다. 변ㄹ화에 대응하지 않고, 시간이 흐르면 아무리 잘.. 2021. 3. 9.
반응형