从实时视频流中获取帧

时间:2013-04-10 02:37:31

标签: android ffmpeg h.264 3gp

我正在使用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但我不想出于各种原因使用这种方法。

有关如何轻松完成此任务的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以考虑流式传输MPEG2 TS并在屏幕上播放它,或者您也可以通过H.264传输RTP数据并使用客户端进行解码和显示。

在Android中,有一个示例可执行文件,可执行RTP流的H.264打包,并通过网络对其进行流式处理。您可以从file找到有关MyTransmitter的更多详细信息,这可以作为您解决方案的良好参考。

其他信息 在Android 4.2.0版本开始之前,MiracastWi-Fi Display框架支持的类似功能由Wi-Fi论坛标准化,这是一个稍微复杂的用例。 / p>