Microsoft Media Foundation中的网络媒体接收器

时间:2016-12-26 03:43:33

标签: c++ windows ms-media-foundation

下面介绍如何使用Media Foundation中的网络媒体源接收视频流:https://msdn.microsoft.com/en-us/library/windows/desktop/aa369734(v=vs.85).aspx。但是如何使用这个库以简单的方式通过网络发送视频流?是否有网络媒体接收器或类似的东西?我的意思是我有一台服务器,我想要流媒体视频连接客户端。

1 个答案:

答案 0 :(得分:0)

通过Media Foundation接收器传输视频并不简单,因为它没有实现网络流传输协议。但是,有两个可用于此目的的接收器 - ASF和MP4。 ASF格式是Microsoft格式,它可用于在Microsoft平台MFCreateASFStreamingMediaSink之间流式传输视频 - 它需要带有IMFByteStream接口的类对象作为参数 - 可以从接收器捕获ASF字节口袋并通过任何网络发送协议。 MP4格式目前在视频中更常见,它可用于几乎所有计算机平台的视频流。 Media Foundation包含两个版本的MP4格式 - 在结束文件中包含媒体信息,在开始文件中包含媒体信息 - 是的,这些格式用于将视频写入文件,但如果您搜索接收片段的碎片格式 - 使用媒体信息begin MFCreateFMPEG4MediaSink - 您将看到它还需要带有IMFByteStream接口的类对象作为参数 - 可以获得用于流式传输的MP4格式的字节袋。当然,视频格式协议还不足以进行流式传输 - 它需要在字节口袋周围写入流式传输协议。然而,以简单的方式,MP4碎片格式可以通过直接调用通过MP4播放器元素通过HTML5播放。几个月前,我写了这么简单的服务器 - 它已经听了连接,并且在收到来自HTML5的请求后,MP4播放器元素已经发送了MP4字节口袋。无论如何,它可以写入流接收器,但并不容易 - 没有简单的代码解决方案。顺便说一句,该程序被称为WPFScreenStreamer - 它将Windows桌面和音频屏幕的视频从扬声器流式传输到浏览器,HTML5支持TCP。