I have a task to transcode A/V data that has a few elementary streams encoded within. Generally my input data will be a network stream of MPEG transport stream data with H.264 video and MP3 audio as elementary streams. What I want to do is read that data in from the stream, transcode just the H.264 video into MPEG2 video and write out the MPEG2 video and MP3 Audio streams back into an MPEG transport stream. I don't need to do anything with the video other than transcode format; no scaling; no enhancement, etc.
What I gathered from reading the Media SDK documentation is that I need to handle demux/mux of the data somewhere else as well as synchronizing the Audio and Video data. I can probably do this with the DirectShow filters provided by Microsoft as far as I can tell.
So do there exist any samples that do most of this? I've been looking at the sample_multi_transcode which handles the video transcode but none of the demux/mux or synch that I need.
Does what I described seem possible with just the Intel Media SDK 2012 and DirectShow. Will I also need the IPP?
Correct, Intel Media SDK does not provide any production ready components or API for mux/demux or audio codecs.
That said, we do provide some sample DShow filter binaries (with limited functionality) so that developers can explore building for instance transcode pipelines. For quick test, try GraphEdit.
For robust and full featured mux/demux or audio components you will have to look outside Media SDK for Dshow filters or if you plan to build console type application you can look at for instance Intel IPP (there is a white paper available decribing mux/demux with Media SDK) or FFmpeg.
I've decided to use the MainConcept DirectShow SDK to accomplish my transcoding. It seems to be pretty complete (at least for my purposes). I do like the documentation of the Intel Media SDK a lot though. It was very easy to follow along and get the samples doing what they're supposed to do right after download.