当前位置:编程学习 > C#/ASP.NET >>

怎样用程序把flv转换成MP4格式

怎样用程序把flv转换成MP4格式 --------------------编程问答--------------------

public class Program
    {
        public static void Main(string[] args)
        {
            string path = "";
            TextAVIWriter avi = new TextAVIWriter();
            //avi.TextImage();
            avi.JpgToAvi();
        }
        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);
                Console.WriteLine("ok");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }

补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,