The process of streaming media has always been widely concerned about the industrial community with its complexity and technology. Alternatively with the popularity of the Internet, the wide application of streaming media on the network, how to make the process of streaming simply and have gradually become focus issues. Choose a suitable application plan for half a power. At this point, Microsoft's DirectShow gives us a good choice. DirectShow is a development package provided by Microsoft's streaming of streaming on the Windows platform, which is posted with the DirectX development package. Currently, DirectX is 9.0. So what can DirectSHOW? It is also seen that DirectShow provides powerful support for the capture and playback of multimedia streams. Using DirectShow, we can easily capture data from the acquisition card that supports the WDM drive model, and performs corresponding post-processing or even stored in the file. It is widely supported in various media formats, including ASF, MPEG, AVI, DV, MP3, WAVE, etc., making the playback of multimedia data becomes light. In addition, DirectShow also integrates the technology of DirectX, such as DirectDraw, DirectSound, directly supports DVD playback, nonlinear editing of video, and exchange of data with digital cameras. What is more worth mentioning is that DirectShow provides an open development environment, we can customize your components according to your needs. Next, we need to have an overall impression on the DirectShow system. See the system diagram of the following DirectShow:
One of the largest in the figure is a DirectShow system. DirectShow uses a model called Filter Graph to manage the processing of the entire data stream; each functional module participating in data processing is called Filter; each filter is connected to a "pipeline" collaborative work in a certain order in Filter Graph. Everyone can see that Filter is roughly divided into three categories: Source Filters, Transform Filters and Rendering Filters. Source filters is responsible for obtaining data, the data source can be a file, an Internet, or a capture card, a digital camera, or the like, then transfer data down; Transform Fitlers is responsible for the format conversion, transmission of data; rendering filter is responsible for data Finally, we can give the data to the sound card, the graphics card for multimedia demonstration, or output to the file for storage. It is worth noting that the three parts are not only one filter to complete the function. On the contrary, each part often has several Fitler synergy. For example, Transform Filters may contain an MPEG decoding filter, as well as convertible Filter, video color space, audio sampling frequency conversion filter, and more. In addition to the large amount of Filter provided by the system, we can customize your own Filter to complete the features we need. The figure below is a typical AVI file playback Filter Graph link:
Above the DirectShow system, we see, that is, our application (Application). The application is to establish the corresponding Filter Graph in accordance with certain intentions, and then control the entire data processing process via Filter Graph Manager. DirectSHOW can receive a variety of events when Filter Graph run, and send it to our application by messaging. In this way, the interaction between the application and the DirectShow system is realized. The following figure gives the general process development of the DirectShow application: