2013-07-19 2 views
3

안드로이드 응용 프로그램을 개발하여 녹화를 중단하지 않고 비디오를 계속 녹화하고 서버에 업로드 할 수있게하고 싶습니다. 비디오를 멈추지 않고 최대 60 분까지 녹화 할 수 있다는 것은 어플리케이션에서 매우 중요합니다. 두 부분아직 녹음 중일 때 ffmpeg로 안드로이드 인코딩 비디오

초기 접근

출원 consits : 카메라로부터 연속적으로 녹화

  1. MediaRecorder.
  2. 커터/복사 - 파트 : 비디오가 녹화되는 동안 특정 세그먼트를 꺼내 서버로 보내야합니다. 이 부분은 http://ffmpeg4android.netcompss.com/
    libffmpeg.so을 사용하여 구현되었습니다. VideoKit Wrapper를 사용하여 필요한 모든 매개 변수로 ffmpeg를 직접 실행할 수 있습니다.

내 문제

나는 안드로이드의 MediaRecorder 녹음을 마무리 한 나를 위해 큰 일했다 PARAMS

ffmpeg -ss 00:00:03 -i <in-file> -t 00:00:05 -vcodec copy -acodec copy <out-file> 

으로는 FFmpeg 명령을 시도했다.

동일한 명령을 실행하면 MediaRecorder가 파일을 기록하는 동안 ffmpeg가 "작업이 허용되지 않음"이라는 오류 메시지와 함께 종료됩니다.

  • 오류 메시지가 안드로이드가 파일에 대한 액세스를 막을 수 없다고 생각하지 않습니다. 나는 ffmpeg가 비디오에서 적절한 위치를 찾기 위해 "moov-atoms"을 필요로한다고 생각한다. 내가 다른 생각하는 이유

합니다 (MOOV 원자를 필요로하지 않는) 접근 :

  1. 안드로이드와 RTSP 스트림을 생성하고 나중에 RTSP 스트림에 액세스 할 수 있습니다. 문제는 내 지식에 안드로이드 SDK rtsp 스트림에 녹음을 지원하지 않습니다.
  2. ffmpeg로 카메라에 직접 액세스 할 수 있습니다 (/ dev/video0가 비디오 장치 인 것 같습니다!)
  3. 스트리밍의 대안으로 webm을 읽었습니다. 아마도 webm 스트림을 기록 할 수 있습니까?

TLDR : 너무 오랫동안 읽어 보지 않았 :

내가 그것을 기록하는 동안에는 FFmpeg (libffmpeg.so)와 비디오 파일에 액세스 할 수 있습니다. Fffmpeg는 "작업을 할 수 없습니다"라는 오류 메시지와 함께 종료

목표 :

내 목표는 비디오 (오디오)를 기록하고 여전히 기록되는 동안 비디오의 일부를 가져 와서에 업로드하는 것입니다

섬기는 사람.

혹시 문제를 해결하는 데 도움이 될 수도 있고 내 문제에 접근하는 방법에 대한 다른 아이디어가있을 수도 있습니다.

미리 감사드립니다.

+0

이 문제를 해결 했습니까? – Trinea

답변

0

실시간 요구 사항으로 인해 ffmpeg에서 webrtc 및/또는 html5로 연결될 수 있습니다.

일부 리소스;

http://dev.w3.org/2011/webrtc/editor/getusermedia.html (5 장)

https://github.com/lukeweber/webrtc-jingle-client

을 ondello .. 자신이 갖고 API를

다소의 XCOPY를 획득하기 위해 프레임 버퍼에 기본 가서 비디오 스트림에서 얻으려고 노력하거나 얻는 것보다 무엇을 비디오 버퍼에 있고 스트림을 복제하여 연결 (소켓 또는 청크 http)을 관리하면 API 유형 대체를 볼 수 있습니다.

+0

답변 해 주셔서 감사합니다. 귀하의 자료를 검토했습니다. 어떻게 든 그들은 내 신청에 어울리지 않는 것 같습니다. –