MS Media 编码器 SDK 简明教程第0 章介绍__ 2
第 1 章创建简单的编码程序__ 3
1.1 引用Encoder对象__ 3
1.2 基本思路__ 5
1.3 代码与说明__ 5
1.4 编码配置__ 7
1.5 WMEncoder 对象介绍__ 10
1.6 IWMEncSource 对象介绍__ 11
第 2 章创建多组编码程序和使用自定义配置__ 12
2.1 基本思路__ 12
2.2 代码与说明__ 13
第 3 章实现视频、音频捕捉与视频编码预览__ 15
3.1 列举设备__ 16
3.2 捕捉编码过程中的事件__ 18
3.3 捕捉视频、音频并进行编码__ 20
3.4 视频编码预览基本思路__ 20
3.5 视频编码预览所使用的对象__ 20
3.6 代码与说明__ 22
第0 章介绍
本文的主要内容是讲解MS Media 编码器SDK的基本用法,简单的说:通过这个SDK可以创建各种流媒体编码程序,甚至可以创建流媒体广播程序。被编码的输入来源可以是文件,也可以是屏幕捕捉,也可以是视频音频设备。鉴于目前国内此方面的开发资料比较少,所以编写本文,希望能够带给流媒体的开发人员一些帮助。
在Windows2000推出时,其中附带了一个服务器产品“流媒体服务器”,在之后的几年中随着微软流媒体产品的完善,Windows格式的流媒体对市场的占有方面已经开始赶超Real公司的流媒体产品。
微软的流媒体产品中有服务器产品,如“流媒体服务器”,也有个人产品,如“媒体播放机”、“Windows Movie Maker”和本文要介绍的“Windows Media Encoder”。
微软对“Windows Media Encoder”的定义是:一种能制作Windows流媒体文件和流(包括音频和视频)的应用工具。这个工具的作用大致包括以下几个方面:
●转换编码格式。
●创建并播放网络媒体流。
●从设备中捕捉视频、音频。
●捕捉屏幕。
●创建和修改编码配置文件。
●数字媒体版权管理。
微软网站相关资源:
●Windows Media主页
www.microsoft/windows/windowsmedia/cn/default.aspx,这里
有微软Windows Media家族所有产品的介绍。
●Windows Media 编码器主页
www.microsoft/windows/windowsmedia/cn/9series/encoder/de
fault.asp
●Windows Media 9 系列 SDK 主页
www.microsoft/windows/windowsmedia/cn/9series/sdk.asp。
其中Windows Media 编码器 SDK
msdn.microsoft/library/default.asp?url=/library/en-us/dn
wmt/html/WMEncoder_9_SDK_Intro.asp,本文要讲述的内容就是这个SDK中一
部分功能的应用。
首先我们需要下载并两个安装包,一个是:Windows Media Encoder,另一个是:Windows Media 编码器 SDK。通过Windows Media 编码器 SDK开发的应用程序在分发时候必须与Windows Media 编码器一起发布。安装结束后,会在开始菜单中生成一个名为Windows Media的程序组,里面包含了Windows Media Encoder应用工具和SDK文档。Windows Media 编码器 SDK所支持的开发语言有VBScript,JavaScript,VB,C,C++,C#。本文所选择的开发语言是C#。SDK是以COM的形式提供各种功能的,C#在调用COM组件时候所需要的基础知识本文不再做讲解,幸运的是读者不需要对COM的模式和调用过程有过多的了解,依然可以读懂本文。使用C/C++的读者也可以直接调用COM接口来使用SDK。
本文内容的安排如下:
●第一章:创建简单的编码和格式转换程序将结果保存至文件;了解编码类型;
编码配置。
●第二章:创建多组编码程序,通过这个程序可以合并多个文件;使用自定义
的编码配置。
●第三章:创建视频、音频捕捉应用;实现编码时效果预览;捕捉编码过程中
的事件。
准备工作:
●Windows Media 编码器到 C:\Program Files\Windows Media
Components\Encoder\ 。
●安装Windows Media 编码器 SDK到C:\WMSDK\,在安装SDK 之后会在开始菜
单“程序\Windows Media\Windows Media SDK”中增加一个名为“Windows Media
Encoder SDK”的帮助文件,里面包含了所有的SDK帮助信息。
●建立目录C:\WMSDK\Demo\,用于保存视频音频文件。拷贝两个MP3文件到此
目录,并改名为src1.mp3和src2.mp3,拷贝两个MPEG文件到该目录,并改名
为src1.mpg和src2.mpg。
●建立目录C:\WMSDK\Code\,用于保存演示代码文件。
第 1 章创建简单的编码程序writeline教程
1.1 引用Encoder对象
在创建一个工程之后,首先需要在工程里面添加对“Microsoft Media Encoder”的引用,方法如图2.1与图2.2。
.2 基本思路
首先需要创建一个WMEncoder 对象。
创建一个IWMEncSourceGroup 对象,IWMEncSourceGroup里面保存的是需要进行编码的原始视频和音频来源。
通过IWMEncSourceGroup 创建视频源对象IWMEncV ideoSource 和音频源对象IWMEncSource。
为源对象设置输入源,在本章里使用文件作为输入源,除了文件以外还可以将视频捕捉设备等作为输
入源。
通过IWMEncFile 对象设定输出目的,在本章内使用文件作为输出目的,除了文件以外还可以向流媒体服务器输出或者直接广播到网络上。
遍历IWMEncProfileCollection 对象选择一个配置文件,配置文件将决定输出的格式。
开始编码并结束。
1.3 代码与说明
下面的代码会将C:\WMSDK\Demo\src1.mpg 文件编码成为C:\WMSDK\Demo\EncodeFile_dest.wmv。
///File:EncodeFile.cs
///转换文件格式,将mpg文件转换为一个WMV文件
///演示Media Encoder SDK的基本用法
///
using System;
using WMEncoderLib;
class EncodeFile
{
static void Main()
{
try
{
// 创建WMEncoder对象
WMEncoder Encoder = new WMEncoder();
// 创建IWMEncSourceGroupCollection对象,IWMEncSourceGroupCollection用来存放IWMEncSourceGroup对象
IWMEncSourceGroupCollection SrcGrpColl = Encoder.SourceGroupCollection;
// 创建IWMEncSourceGroup对象
IWMEncSourceGroup SrcGrp = SrcGrpColl.Add("SG_1");
// 设定源,将视频来源和音频来源都设定为C:\WMSDK\Demo\src1.mpg(视频来源和音频来源可以来自不同文件)
IWMEncAudioSource SrcAud = (IWMEncAudioSource)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);
SrcAud.SetInput("C:\\WMSDK\\Demo\\src1.mpg", "", "");
IWMEncV ideoSource SrcV id = (IWMEncVideoSource)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
SrcV id.SetInput("C:\\WMSDK\\Demo\\src1.mpg", "", "");
// 设定输出目标
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论