【问题标题】:Get frame from live video stream从实时视频流中获取帧
【发布时间】:2013-04-01 17:04:00
【问题描述】:

我正在使用 MediaRecorder 类从我的 Android 手机上的摄像头将实时视频流式传输到我的计算机。

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

关于如何轻松做到这一点的任何想法?

【问题讨论】:

  • 您对此有任何解决方案

标签: android ffmpeg h.264 3gp


【解决方案1】:

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

在 Android 中,有一个示例可执行文件执行H.264 流的RTP 数据包化并通过网络流式传输。您可以从此file 中找到有关MyTransmitter 的更多详细信息,这可以作为您解决方案的一个很好的参考。

其他信息 在 Android 4.2.0 以后的版本中,框架支持的类似功能称为MiracastWi-Fi Display,由Wi-Fi 论坛标准化,这是一个稍微复杂的用例。

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 2017-12-31
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    相关资源
    最近更新 更多