안드로이드 개발 질문/답변
(글 수 45,052)
제목에서 말한것 같이 블랙박스같은 앱을 만들어보려고 합니다.
기능은 카메라에서 영상이 들어오면 파일로 저장하면 되는데 카메라 영상저장 예제를 보면 큰어려움이 없을것 같았는데
실제 개발하려고 하니 다음과 같은 문제가 있어서요....
카메라 샘플 프로그램은 MediaRecorder 객체를 이용하면 되는데 블랙박스는 상시녹화와 이벤트(충돌)감지 후 녹화영상을
각각별도의 파일로 저장하거나 이벤트가 발생하면 상시녹화는 중지되고 이벤트시점에서 과거 10초 부터 30초간(총 40초)을
별도의 파일에 저장해야되는데 기존에 녹화되고 있는 파일에서 과거 10초를 어떻게 가져올 수 있는지가 문제가 되서요.
몇가지 방법을 생각해봤는데 Camera 객체 콜백 함수인 onPreviewFrame으로 프리뷰이미지를 받아서 10초씩 가지고 있다가
이벤트가 발생하지 않으면 기존꺼를 onPreviewFrame에서 오는 수만큼 버리다가 이벤트가 발생하면 버퍼링 하고 있던 10초데이타 부터
동영상으로 엔코딩해서 저장하기 시작하면서 onPreviewFrame에서 들어오는 내용을 엔코딩해서 30초더 저장한 후 파일출력을 닫으면
이벤트 동영상파일이 완성될것 같아서 시도해보려고 했는데 몇가지 의문이 들어서요.
1. 이렇게 하는 방법인 최선인가?
2. 이미지데이타 -> 동영상(mp4)로 엔코딩하는게 가능한가?(안드로이드에서 제공하는지 JNI난 코딩 서비스가 있는지?)
3. 이 방법으로 한다면 음성데이타를 저장할 수 없는데 해결방법은 있나?
인터넷을 검색하면 OpenCore 이런 이야기가 있지만 접근을 어떻게 해야되는지 막막하고, 안드로이드에서 제공하는 동영상
Encoder를 이용할 수 있는 방법이 있는지? 있다면 어디가면 관련 자료가 있는지?
Encoder된 동영상이 파일로만 저장할 수 있는데 메모리로 출력하게 해서 저장이 필요하지 않을때는 버리고 저장이 필요하면
저장하려고 하는 내용이 가능한지 문의 드립니다.
그럼 조금만 해결책도 도움이 됩니다...부탁드립니다.
기능은 카메라에서 영상이 들어오면 파일로 저장하면 되는데 카메라 영상저장 예제를 보면 큰어려움이 없을것 같았는데
실제 개발하려고 하니 다음과 같은 문제가 있어서요....
카메라 샘플 프로그램은 MediaRecorder 객체를 이용하면 되는데 블랙박스는 상시녹화와 이벤트(충돌)감지 후 녹화영상을
각각별도의 파일로 저장하거나 이벤트가 발생하면 상시녹화는 중지되고 이벤트시점에서 과거 10초 부터 30초간(총 40초)을
별도의 파일에 저장해야되는데 기존에 녹화되고 있는 파일에서 과거 10초를 어떻게 가져올 수 있는지가 문제가 되서요.
몇가지 방법을 생각해봤는데 Camera 객체 콜백 함수인 onPreviewFrame으로 프리뷰이미지를 받아서 10초씩 가지고 있다가
이벤트가 발생하지 않으면 기존꺼를 onPreviewFrame에서 오는 수만큼 버리다가 이벤트가 발생하면 버퍼링 하고 있던 10초데이타 부터
동영상으로 엔코딩해서 저장하기 시작하면서 onPreviewFrame에서 들어오는 내용을 엔코딩해서 30초더 저장한 후 파일출력을 닫으면
이벤트 동영상파일이 완성될것 같아서 시도해보려고 했는데 몇가지 의문이 들어서요.
1. 이렇게 하는 방법인 최선인가?
2. 이미지데이타 -> 동영상(mp4)로 엔코딩하는게 가능한가?(안드로이드에서 제공하는지 JNI난 코딩 서비스가 있는지?)
3. 이 방법으로 한다면 음성데이타를 저장할 수 없는데 해결방법은 있나?
인터넷을 검색하면 OpenCore 이런 이야기가 있지만 접근을 어떻게 해야되는지 막막하고, 안드로이드에서 제공하는 동영상
Encoder를 이용할 수 있는 방법이 있는지? 있다면 어디가면 관련 자료가 있는지?
Encoder된 동영상이 파일로만 저장할 수 있는데 메모리로 출력하게 해서 저장이 필요하지 않을때는 버리고 저장이 필요하면
저장하려고 하는 내용이 가능한지 문의 드립니다.
그럼 조금만 해결책도 도움이 됩니다...부탁드립니다.




블랙 박스 어플을 아직 만들고 계신가요?
저도 블랙 박스 어플을 만들고 있는데,
GPS라던가 센서는 어떻게 구현하셨나요?
Thread로 구현할려고 하는데,
너무 힘드네요.
조언 좀 구할수 있을까요?