C# windows media encoder编程 JPG与MP3制作WMV视频-windows media encoder sdk解决方案
2010-07-17 09:30
483 查看
http://hi.baidu.com/xulei1143/blog/item/ed443ef44908b363dcc4742d.html
网上转载的,我测试成功了。
我是win7下面,程序有不少问题,有些需要修改的地方。
微软的wmencoder
sdk支持将图片/视频转换成标准的WMV文件.可以通过其提供的简单功能制作简单的视频.唯一遗憾的是SDK不提供转场效果,要做切换效果只能想别的办
法了。该SDK支持VB,C++,C#的编码.
环境: windows media encoder sdk,可在微软网站下载
C#实现:
using ...;
using WMEncoderLib;
using WMPREVIEWLib;
private void MyEncoder() {
try
{
// 创建一个Windows Media Encoder对象.
WMEncoder Encoder = new WMEncoder();
//获取一个源的集合.
IWMEncSourceGroupCollection SrcGrpColl =
Encoder.SourceGroupCollection;
//创建一个源"SG_1"
IWMEncSourceGroup2 SrcGrp =
(IWMEncSourceGroup2)SrcGrpColl.Add("SG_1");
//创建一个音频和视频的源
IWMEncVideoSource2 SrcVid =
(IWMEncVideoSource2)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
IWMEncSource SrcAud = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);
//指定源文件
SrcAud.SetInput("C://jintian.mp3", "", "");//MP3
SrcVid.SetInput("C://result.wmv", "", "");//视频,可换成图片
//裁剪场景
SrcVid.CroppingBottomMargin = 25;
SrcVid.CroppingLeftMargin = 25;
SrcVid.CroppingRightMargin = 25;
SrcVid.CroppingTopMargin = 25;
//预览
IWMEncDataViewCollection DVColl_Postview;
DVColl_Postview = SrcVid.PostviewCollection;
WMEncDataView Postview;
Postview = new WMEncDataView();
int lPostviewStream;
lPostviewStream = DVColl_Postview.Add(Postview);
IWMEncProfileCollection ProColl = Encoder.ProfileCollection;
WMEncProfile2 Pro;
Pro = new WMEncProfile2();
//定义配置文件profile.具体的请看media encoder中的设置
/*for (int i = 0; i < ProColl.Count; i++)
{
Pro = ProColl.Item(i);
if (Pro.Name == "屏幕视频 - 高(CBR)")
{*/
Pro.LoadFromFile("myPrx.prx");
SrcGrp.set_Profile(Pro);
/*break;
}
}*/
//输出到目的文件
IWMEncFile2 File = (IWMEncFile2)Encoder.File;
File.LocalFileName = "C://test.wmv";
//如果源是图片则需要取消如下的注释。因为图片是静止的,本身不会播放.开启广播模式将会使图片进行不间断广播,从而实现连续的录制
/*Encoder.PrepareToEncode(true);
IWMEncBroadcast Brdcst = Encoder.Broadcast;
Brdcst.set_PortNumber(WMENC_BROADCAST_PROTOCOL.WMENC_PROTOCOL_HTTP,
8080);
*/
Encoder.Start();//录制开始
Postview.SetViewProperties(lPostviewStream, (int)panel2.Handle);
Postview.StartView(lPostviewStream);
MessageBox.Show("ok.");
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}
网上转载的,我测试成功了。
我是win7下面,程序有不少问题,有些需要修改的地方。
微软的wmencoder
sdk支持将图片/视频转换成标准的WMV文件.可以通过其提供的简单功能制作简单的视频.唯一遗憾的是SDK不提供转场效果,要做切换效果只能想别的办
法了。该SDK支持VB,C++,C#的编码.
环境: windows media encoder sdk,可在微软网站下载
C#实现:
using ...;
using WMEncoderLib;
using WMPREVIEWLib;
private void MyEncoder() {
try
{
// 创建一个Windows Media Encoder对象.
WMEncoder Encoder = new WMEncoder();
//获取一个源的集合.
IWMEncSourceGroupCollection SrcGrpColl =
Encoder.SourceGroupCollection;
//创建一个源"SG_1"
IWMEncSourceGroup2 SrcGrp =
(IWMEncSourceGroup2)SrcGrpColl.Add("SG_1");
//创建一个音频和视频的源
IWMEncVideoSource2 SrcVid =
(IWMEncVideoSource2)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
IWMEncSource SrcAud = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);
//指定源文件
SrcAud.SetInput("C://jintian.mp3", "", "");//MP3
SrcVid.SetInput("C://result.wmv", "", "");//视频,可换成图片
//裁剪场景
SrcVid.CroppingBottomMargin = 25;
SrcVid.CroppingLeftMargin = 25;
SrcVid.CroppingRightMargin = 25;
SrcVid.CroppingTopMargin = 25;
//预览
IWMEncDataViewCollection DVColl_Postview;
DVColl_Postview = SrcVid.PostviewCollection;
WMEncDataView Postview;
Postview = new WMEncDataView();
int lPostviewStream;
lPostviewStream = DVColl_Postview.Add(Postview);
IWMEncProfileCollection ProColl = Encoder.ProfileCollection;
WMEncProfile2 Pro;
Pro = new WMEncProfile2();
//定义配置文件profile.具体的请看media encoder中的设置
/*for (int i = 0; i < ProColl.Count; i++)
{
Pro = ProColl.Item(i);
if (Pro.Name == "屏幕视频 - 高(CBR)")
{*/
Pro.LoadFromFile("myPrx.prx");
SrcGrp.set_Profile(Pro);
/*break;
}
}*/
//输出到目的文件
IWMEncFile2 File = (IWMEncFile2)Encoder.File;
File.LocalFileName = "C://test.wmv";
//如果源是图片则需要取消如下的注释。因为图片是静止的,本身不会播放.开启广播模式将会使图片进行不间断广播,从而实现连续的录制
/*Encoder.PrepareToEncode(true);
IWMEncBroadcast Brdcst = Encoder.Broadcast;
Brdcst.set_PortNumber(WMENC_BROADCAST_PROTOCOL.WMENC_PROTOCOL_HTTP,
8080);
*/
Encoder.Start();//录制开始
Postview.SetViewProperties(lPostviewStream, (int)panel2.Handle);
Postview.StartView(lPostviewStream);
MessageBox.Show("ok.");
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}
相关文章推荐
- JPG与MP3制作WMV视频-windows media encoder sdk解决方案
- C# 实现Windows Media Encoder音视频捕捉
- C# 实现Windows Media Encoder音视频捕捉
- C# 实现Windows Media Encoder音视频捕捉
- C# 实现Windows Media Encoder音视频捕捉
- C# axWindowsMediaPlayer制作播放器
- 在VC和C#中如何使用Windows Media Encoder COM组件接口编程
- 用Windows Media Player控件播放音乐图文教程(MP3,WAV,WMV)!
- Windows Media Encoder流媒体制作应用篇
- [.NET/C#][Win7 x64]基于Windows Media Encoder 的屏幕录像
- C#基于WindowsMediaPlayer实现音视频文件播放器
- windows player![转载]C# axWindowsMediaPlayer制作播放器 winform
- C#调用Windows Media Player制作播放器
- c# winform 利用 windows media player 循环播放视频
- 制作编程视频Tips-Windows 10 日记本
- c#.NET winform 利用windows media player播放视频,循环播放视频
- c# winform 利用 windows media player 循环播放视频
- 用Windows Media Player控件播放音乐图文教程(MP3,WAV,WMV)
- C#调用Windows Media Player制作播放器
- c#windows编程视频教程