Solved

How do I decode an MPEG2 stream in visual c++?

Posted on 2011-02-14
6
975 Views
Last Modified: 2012-05-11
I am looking at MPEG2 streaming and decoding and am searching for a good start to accept a stream and draw it on the screen in visual c++, where should I start?
0
Comment
Question by:alexatsearidge
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 86

Assisted Solution

by:jkr
jkr earned 200 total points
ID: 34889829
Since you are on Windows, I'd suggest DirectX for that - you'll find a nice example at http://www.codeproject.com/KB/directx/MPEG2_Capture_Device.aspx ("Preview and Record with MPEG2 Capture device"). Just replace the "Capture Device" in the graph with your MPEG stream and you are already pretty much done.
0
 
LVL 12

Accepted Solution

by:
trinitrotoluene earned 300 total points
ID: 34894195
0
 
LVL 8

Expert Comment

by:lomo74
ID: 34896083
I'm not experienced on this subject, but... what about ffmpeg
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:alexatsearidge
ID: 34906811
The example at http://www.codeproject.com/KB/directx/MPEG2_Capture_Device.aspx ("Preview and Record with MPEG2 Capture device") I tried to compile it after installing the Windows SDK for Server 2003 (since I'm compiling my final app to work with Win XP) but I'm still getting linker errors with that sample, I think my Windows SDK or directshow version may be different than needed but the sample doesn't say what version is needed.

I'm looking further into directshow and using microsofts mpeg2 - demux but I never worked with makefiles so I'm still trying to compile them so I can try the samples that come with Windows SDK - the Directshow Samples - Filter Samples but they make it a little difficult to set up the environment - your includes and exe files in Options - C++ Directories need to be in a certain order that I'm still figuring out.

-ffmpeg-

If you read into ffmpeg and do some research they say it is not designed for MSVC++ .net because MSVC++ does not follow the C99 standard and FFmpeg is designed to rely on it. The current project that I'm working on uses MSVC++ but if anyone else wants to try ffmpeg on windows with MinGW they talk about it here http://ffmpeg.arrozcru.org/wiki/index.php?title=Main_Page  but they also state that you have to do all your compiling still in a virtual box running linux.
0
 

Assisted Solution

by:alexatsearidge
alexatsearidge earned 0 total points
ID: 34960854
We did not want to tie our code down to a Windows environment so we bought a license for Intel(R) Integrated Performance Primitives (IPP) which comes with an MPEG2 decoder/encoder and full sample code with easy to compile VS2005 c++ projects and solutions, anyone doing media decoding/encoding I would highly recommend this package - nice samples and well documented
0
 

Author Closing Comment

by:alexatsearidge
ID: 34995344
Solution is to use directshow which should work, in the end I went with Intel Integrated Performance Primitives which also works.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Audacity, Windows Live Movie Maker, file formats conflict 11 93
Which Linux flavors will this run on? 6 113
Need some help with mailto 16 41
Need some help with design 17 46
In Easy String Encryption Using CryptoAPI in C++ (http://www.experts-exchange.com/viewArticle.jsp?aid=1193) I described how to encrypt text and recommended that the encrypted text be stored as a series of hexadecimal digits -- because cyphertext may…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question