안드로이드 영상처리 예제

나는 우리가 안드로이드에 어떤 네이티브 지원을 찾고 시작, 나는 몇 가지 유망한 API를 건너 왔다. 이 라이브러리는 PC용 비디오 처리 라이브러리와 동일한 API 끝점을 노출하려고 시도합니다. 처리 비디오 라이브러리의 스케치는 Android용으로 작동합니다. Android에서 유일한 세 개의 클래스였으며 자르기, 크기 조정 및 데이터 오버레이와 같은 기능에 대한 기본 지원은 없었습니다. 일부 Android 프로젝트는 높거나 낮은 수준의 미디어 처리가 필요할 수 있습니다. 이 문서에서는 FFmpeg, MP4Parser, 모바일용 인텔 미디어 등과 같은 몇 가지 유용한 라이브러리를 정리합니다. 모든 라이브러리에는 장단점이 있습니다. 초기 대상 API-s, 장치 및 사양에 따라 사용할 장치를 신중하게 고려해야 합니다. 나는 너무 많은 세부 사항으로 가지 않을 것이다, 기사의 주요 목적은 주어진 문제에 가장 적합한 lib를 결정하는 데 도움이됩니다. 선택한 라이브러리 또는 라이브러리는 최종 응용 프로그램의 크기에 큰 영향을 줄 수 있으며 코드 복잡성 및 향후 유지 관리 양에도 영향을 줍니다. Namrata는 OANDA의 소프트웨어 엔지니어이며 네이티브 Android 및 iOS 개발 경험이 있습니다. 그녀는 레이 웬더리치 안드로이드 튜토리얼 팀의 일원입니다. 앱을 만드는 것 외에도 그녀는 반려견과 함께 여행, 춤, 하이킹에 열정적입니다.

이 라이브러리는 인텔에서 개발하고 유지 관리하므로 적절한 인코딩 및 디코딩 기능을 갖춘 매우 컴팩트한 라이브러리입니다. 상자에서 충분하지만 샘플은 기본 사용 사례만 제공합니다. 또한 복잡한 비디오 처리에 lib를 사용하려면 OpenGL 플랫폼에 대한 복잡한 스크립트를 작성해야 할 수 있습니다. 그 API는 안드로이드 미디어 플레이어와 MediaCodec API에 내장 된 것과 유사하지만, 인텔 INDE는 API 수준 16에서 사용할 수 있습니다. 나는 당신이 2.2 대상을 가지고 있다는 것을 알고 있지만, Android 4.0은 프리젠 테이션 레이어에 전달하기 전에 스트림에서 이미지 데이터를 읽을 때 일어나는 일에 대해 더 많은 말을 할 수있는 NDK의 새 버전을 출시했기 때문에 여기에 약간의 구호를 제공합니다. 그러나, 나는 그것이 당신의 상황에 추천 될 수 있는지 여부를 알고 그것으로 충분한 시간을 보내지 않았습니다. 나는 안드로이드에 매우 익숙하지 않다, 그래서 제발, 사람이 내가 그런 일을하기 위해 볼 필요가 자원에 저를 보낼 수 있습니까? 2015년 초, 저는 WeatherGIF라는 제품에 대한 안드로이드 개발자로서 Stagename에서 일하기 시작했습니다. 응용 프로그램은 루핑 비디오를 통해 데이터의 피드를 제공했다. 내가 가입 할 때, iOS 응용 프로그램은 이미 완료되었습니다. iOS에서 Apple은 비디오 작업을 위해 AVFoundation이라는 훌륭한 라이브러리를 제공합니다. 당신은 더 복잡한 실시간 비디오 처리를 수행하려는 경우, 나는 매우 안드로이드에 대한 OpenCV를 추천 할 것입니다. 나는 안드로이드에 FFmpeg를 사용할 수있는 방법을보고 시작하고, 나는이 작업을 수행하는 두 가지 방법을 발견 : 이 파일이 안드로이드 응용 프로그램의 프로세스 내에서 실행 될 수 있는지 확인하기 위해, AP에 원시 폴더에서 FFmpeg 실행 파일을 복사하여, 파일에 대한 권한을 변경 p`s 빈 디렉토리.

내가 아는 한,이 라이브러리는 비디오 처리에 가장 자주 사용됩니다. 기사의 톤이 있다, 포럼 스레드 및 이것에 대 한 SO 게시물 그리고 대부분의 개발자가 그것을 사용 하는 이유. 그것은 비디오 처리 작업의 거의 모든 종류를 돌볼 수 있으며 거의 모든 플랫폼에서 컴파일 할 수 있습니다. 그리고 여기에 고통스러운 부분이 온다 : 당신은 당신의 프로젝트에 맞게 컴파일해야합니다. 그것은 모듈 형 라이브러리, 그것은 확장 하거나 축소 될 수 있습니다., 귀하의 요구에 따라. 라이브러리의 사용은 컴파일의 출력에 따라 달라집니다. 한편으로는 표준 유닉스 실행 가능한 셸 프로그램을 만들 수 있습니다. 그런 다음 장치 메모리에서 로드하고 Java 프로세스로 실행할 수 있습니다.