2013-04-10 6 views
0

내 안드로이드 전화기의 카메라에서 MediaRecorder 클래스를 사용하여 내 컴퓨터로 라이브 비디오를 스트리밍하고 있습니다.라이브 비디오 스트림에서 프레임 가져 오기

recorder.setCamera(mCamera); 
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);   
recorder.setOutputFile(uav_UDP_Client.pfd.getFileDescriptor());      
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 

기본 아이디어입니다. 그래서이 스트림을 실시간으로 보여주고 싶습니다. 내 계획은 FFMpeg를 사용하여 최신 프레임을 .bmp로 바꾸고 새 프레임이있을 때마다 내 C# 프로그램에서 .bmp를 표시하는 것입니다.

녹화를 중지 할 때까지 아무런 문제가 없습니다. 그래서 헤더가 없다면 FFMpeg를 사용할 수 없습니다. 나는 spydroid를보고 RTP를 사용했지만 여러 가지 이유로이 방법을 사용하고 싶지 않습니다.

어떻게하면 쉽게 할 수 있습니까?

+0

이 문제에 대한 해결책이 있습니까? –

답변

0

MPEG2 TS 스트리밍을 고려하여 화면에서 재생하거나 RTP 이상의 데이터를 H.264 개 스트리밍하고 클라이언트를 사용하여 디코딩하고 표시 할 수 있습니다.

Android에는 RTP 패킷 화를 수행하고 H.264 스트림의 스트림을 네트워크를 통해 스트리밍하는 샘플 실행 파일이 있습니다. 해결책 MyTransmitter에 대한 자세한 내용은 file에서 찾을 수 있으며 이는 솔루션에 대한 좋은 참고 자료로 활용 될 수 있습니다.

추가 정보 4.2.0 릴리스 이후, Miracast 또는 약간 복잡한 사용 사례입니다 Wi-Fi 포럼에 의해 표준화되어 Wi-Fi Display라는 프레임 워크에서 지원하는 유사한 기능이 안드로이드에서 .