Windows Media Encoder SDK – Establish / Stop Encoder Streaming

 
Windows Media Encoder SDK – Establish / Stop Encoder Streaming
 

   Form1.cs
 
   Import Namespace Reference
   – Interop.WMEncoderLib
 


 
   using System;
   using System.Linq;
   using System.Windows.Forms;
   using WMEncoderLib;
   using System.Diagnostics;
 
   namespace WindowsFormsApplication1
   {
      public partial class Form1 : Form
      {
         WMEncoderApp EncoderApp;
         IWMEncoder Encoder;
 
         public Form1()
         {
            InitializeComponent();
         }
 
         private void button1_Click(object sender, EventArgs e)
         {
            EstablishEncode("C:\\1.wmv", 6161,
            "Windows Media Video 8 for Broadband (PAL, 700 Kbps)");
         }
 
         private void button2_Click(object sender, EventArgs e)
         {
            StopEncode();
         }
 
         private void EstablishEncode(string sourcefile, Int32 portnumber, String EncoderName)
         {
 
            EncoderApp = new WMEncoderApp();
            EncoderApp.Visible = true;
 
            Encoder = EncoderApp.Encoder;
 
            IWMEncSourceGroupCollection SrcGrpColl =
            Encoder.SourceGroupCollection;
 
            IWMEncSourceGroup SrcGrp =
            SrcGrpColl.Add("Group1");
 
            IWMEncSource SrcAud =
            SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);
 
            IWMEncVideoSource2 SrcVid =
            (IWMEncVideoSource2)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
 
            SrcAud.SetInput(sourcefile, "", "");
            SrcVid.SetInput(sourcefile, "", "");
 
            IWMEncProfile Pro;
            IWMEncProfileCollection ProColl = Encoder.ProfileCollection;
 
            for (int i = 0; i < ProColl.Count; i++)
            {
            Pro = ProColl.Item(i);
 
               if (Pro.Name == EncoderName)
               {
                  SrcGrp.set_Profile(Pro);
                 break;
               }
            }
 
            IWMEncBroadcast BrdCst = Encoder.Broadcast;
            BrdCst.set_PortNumber(WMENC_BROADCAST_PROTOCOL.WMENC_PROTOCOL_HTTP, portnumber);
 
            Encoder.PrepareToEncode(true);
            Encoder.Start();
         }
 
         private void StopEncode()
         {
            Encoder.Stop();
            KillProcess();
         }
 
         private void KillProcess()
         {
            Process[] pro = Process.GetProcessesByName("wmenc");
            for (int i = 0; i < pro.Count(); i++) pro[i].Kill();
         }
 
         private void button3_Click(object sender, EventArgs e)
         {
            StopEncode();
            EstablishEncode("C:\\1.wmv", 6161,
            "Windows Media Video 8 for Broadband (PAL, 700 Kbps)");
         }
      }
   }
 

 

   Codec 選擇
 
   0 Windows Media Video 8 for Color Pocket PCs (225 kbs)
   1 Windows Media Video 8 for Color Pocket PCs (150 kbs)
   2 Windows Media Video 8 for Dial-up Modems or Single-chennel ISDN (28.8 to 56 Kbps)
   3 Windows Media Video 8 for LAN, Cable Modem, or xDSL (100 to 768 Kbps)
   4 Windows Media Video 8 for Dial-up Modems or Single-chennel ISDN (28.8 to 100 Kbps)
   5 Windows Media Video 8 for Dial-up Modems (28.8 Kbps)
   6 Windows Media Video 8 for Dial-up Modems (56 Kbps)
   7 Windows Media Video 8 for Local Area Network (100 Kbps)
   8 Windows Media Video 8 for Local Area Network (256 Kbps)
   9 Windows Media Video 8 for Local Area Network (384 Kbps)
   10 Windows Media Video 8 for Local Area Network (768 Kbps)
   11 Windows Media Video 8 for Broadband (NTSC, 700 Kbps)
   12 Windows Media Video 8 for Broadband (NTSC, 1400 Kbps)
   13 Windows Media Video 8 for Broadband (PAL, 384 Kbps)
   14 Windows Media Video 8 for Broadband (PAL, 700 Kbps)