Question

I need to develop a full screen client that will decode raw h264 frames from a network source. Any suggested approach on where to start? I was looking at ffmpeg but then i have to interface it to VS and i am getting lost on the way there. Microsoft Media Foundation has an inbuilt h264decoder and there is no example simple enough for me to understand. Same with DirectShow but then Microsoft says its extinct tech don't use it. the client should be able to work on WinXP and onwards targets. So if anyone can maybe point me in the right direction it would be great.

Was it helpful?

Solution

You enumerated the options correctly, and you are about right stating that there is no simple example. The technology itself is a bit complex, and it's typically not used on its own but instead as a part of a more complicated system such as streaming client. Additionally, the technology is not free and there is no "default" H.264 decoder implementation widely available.

FFmpeg is a good choice if you are good to go with LGPL/GPL and you can built it from source code (with GPL you can even download prebuilt binaries), interfacing from VS requires some effort but doable, more of a trouble is lack of documentation, so you need to look for code snippets on Internet.

Media Foundation is a no go: Windows XP does not have Media Foundation H.264 decoder. Then the API itself is not popular and the only advantage it offers is availability on non-desktop Windows versions having no DirectShow.

DirectShow is the best native media API in Windows. With backward compatibility in Windows, it is available Windows XP through Windows 8.1. Microsoft provides a decent H.264 decoder starting Windows Vista - Microsoft DTV-DVD Video Decoder, that is in the same versions the decoder is available through Media Foundation. Third party decoders such are typically interfaced to DirectShow. There is hardware assisted decoding support, a lot of sample code and tutorials on Internet. A bit of a steep learning curve though.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top