JPG与MP3制作WMV视频-windows media encoder sdk解决方案

JPG与MP3制作WMV视频-windows media encoder sdk解决方案

    微软的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());
            }


        }

        *建议先熟悉微软自己的media encoder(编码器)来熟悉视频的制作过程与配置文件的设置等.然后再看SDK的帮助文档.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值