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

FFmpeg 사용법에 관하여 질문합니다..

0 추천
FFmpeg를 사용하여 아프리카처럼 스마트폰으로 바로 방송을 하고 싶습니다.

스트리밍서버는 준비가 되어있는데 안드로이드 쪽을 어떻게 만져야 할지 모르겠네요;

FFmpeg를 사용하면 바로 스트리밍이 된다고 하는데 FFmpeg 옵션에 불러올 파일 이름?을 어떻게 줘야할지 깜깜하네요;

Camera  Stream을 얻어서 바로 주는식으로 하면 되는건가요?

그렇게 된다면 그 코드가 어떻게 되는건지요...? 즉.. 옵션에 들어갈 불러올 파일 이름 쪽에 들어갈 이름 말입니다...ㅠㅠ

다른 옵션이야 이래저래 주면 해결되겠지만 이게 막히네요; 아시는분 답변 부탁합니다 ^^
인연 (31,880 포인트) 님이 2013년 10월 23일 질문

1개의 답변

0 추천
 
채택된 답변

불행히도 안드로이드 API 중 카메라 스트림만 구하는 방법은 없습니다.

카메라 정보만 을 구하는 방법은 아래같은 방법이 있는 듯 했습니다.

1. 안드로이드 java api 중 takePicture 를 이용하여 반환되는 이미지를 사용

http://developer.android.com/reference/android/hardware/Camera.html#takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback) 를 사용

장점 : 구글에서 제공하는 API라 모든 단말에서 사용 가능

단점 : java api라 1초에 15fps를 캡쳐하기 힘듬

 

2. shell 명령어를 이용 

https://code.google.com/p/androidscreencast

장점 : DDMS같은데서  사진 찍을 때 사용하는 방법이라. 거의 모든 단말에서 사용 가능

단점 : 1번 보다는 빠르지만 늦음 

 

3. 1번에 대응하는 C쪽 코드 android_hardware_Camera.cpp 같은 것을 코드 미라캐스트관련  C쪽 코드를 분석하여 jni 로 해당 함수들을 호출하는 방식으로 구함 

장점 : 속도가 빨라 30fps 도 가능

단점 : C쪽 코드는 헤더같은게 달라질 가능성이 높아서 모든 단말에 대응해주기가 거의 불가능 

 

이 방법들 모두 상용으로 사용하는데는 무리가 있는 듯 하며, 그나마 ffmpeg를 사용하지 않고, MediaRecoder로 녹화까지 수행하여 임시 파일로 떨구고, 그 파일을 전송하는 방식으로 구현하시는게 현재로썬 제일 나은 듯 합니다.

사악미소 (65,330 포인트) 님이 2013년 10월 23일 답변
인연님이 2013년 10월 23일 채택됨
빠른 답변 매우 감사합니다 ^^
...