Network media sink in Microsoft Media Foundation

1.1k views Asked by At

Here is written how to receive video stream using a network media source in the Media Foundation: https://msdn.microsoft.com/en-us/library/windows/desktop/aa369734(v=vs.85).aspx. But how to send a video stream over network using this library in a simple way? Is there a network media sink or something like this? I mean i have a server and just i want stream video to connected clients.

1

There are 1 answers

0
Evgeny Pereguda On BEST ANSWER

There is not simple way for streaming video via Media Foundation sink because it does not implement protocols for net streaming. However, there is two sinks which can be used for this purpose - ASF and MP4. ASF format is Microsoft format and it can be used for streaming video between Microsoft platform MFCreateASFStreamingMediaSink - it needs class object withIMFByteStreaminterface as argument - It is possible capture ASF byte pockets from sink and send over any network protocol. MP4 format is more common at the present time for video and it can be used for video streaming for almost all computer platforms. Media Foundation includes two versions of MP4 formats - with media info at the end file and with media info at the begin file - yes these formats is used for writing video into the files, but if you search sink for fragmented format - with media info at the begin MFCreateFMPEG4MediaSink - you will see that it also needs class object withIMFByteStreaminterface as argument - it is possible get byte pockets of MP4 format for streaming. Of course, video format protocol is not enough for steaming - it needs write streaming protocols around of byte pockets. However, in the simple way MP4 fragmented format can be played via HTML5 via MP4 player element by direct calling. A couple months ago, I wrote such simple server - it has listened connecting, and after receiving request from HTML5 MP4 player element has sent MP4 byte pockets. In any way, it is possible write stream sink, but is not easy - there is not easy code solution. By the way, the program is called WPFScreenStreamer - it streams video of screen of Windows Desktop and audio from speakers into browser with HTML5 supporting over TCP.