2009-05-09 6 views
0

Ich verwende den folgenden Code, um mit Windows Media Encoder den Bildschirm aufzuzeichnen. Ich verwende Windows Vista, Bildschirmauflösung 1024 × 768, 32-Bit. Mein Problem ist, dass das Video erfolgreich aufgenommen werden kann, aber wenn ich das aufgezeichnete Video wiedergebe, ist die Qualität des Videos nicht sehr gut - z. Charaktere sind sehr dunkel. Ich frage mich, welche Parameter ich einstellen sollte, um eine bessere Qualität des Rekorder-Videos zu erreichen.Wie kann ich meinen Code verbessern, um bessere Videoqualität zu erreichen?

Mein Code,

  static WMEncoder encoder = new WMEncoder(); 

      IWMEncSourceGroup SrcGrp; 
      IWMEncSourceGroupCollection SrcGrpColl; 
      SrcGrpColl = encoder.SourceGroupCollection; 
      SrcGrp = (IWMEncSourceGroup)SrcGrpColl.Add("SG_1"); 

      IWMEncVideoSource2 SrcVid; 
      SrcVid = (IWMEncVideoSource2)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO); 
      SrcVid.SetInput("ScreenCap://ScreenCapture1", "", ""); 
      IWMEncFile File = encoder.File; 
      File.LocalFileName = "C:\\OutputFile.avi"; 

      // Choose a profile from the collection. 
      IWMEncProfileCollection ProColl = encoder.ProfileCollection; 
      IWMEncProfile Pro; 
      for (int i = 0; i < ProColl.Count; i++) 
      { 
       Pro = ProColl.Item(i); 
       if (Pro.Name == "Windows Media Video 8 for Local Area Network (384 Kbps)") 
       { 
        SrcGrp.set_Profile(Pro); 
        break; 
       } 
      } 

     encoder.Start(); 

Vielen Dank im Voraus, George

+0

Formatieren Sie es? . –

+0

Format fertig, lassen Sie mich wissen, wenn weitere Probleme. :-) – George2

Antwort

3

Video-Encoder verwenden, um eine bestimmte kbit/s-Verhältnis der Größe des erzeugten Stroms zu begrenzen. Je weniger Kbit/Sek. Desto weniger Details erhalten Sie aufgrund von weniger Koeffizienten aus der DCT und größeren Quantisierungswerten. Mit anderen Worten: Je mehr kbit/s Sie in das Video einfügen, desto mehr Details können vom Encoder im Stream gespeichert werden.

Gemessen an Ihrem Code haben Sie ein Profil gewählt, das 384 kbit/s verwendet, was für ein 1024 * 768 Video nicht sehr viel ist. Sie sollten andere Profile ausprobieren oder die gewünschte Bitrate einstellen.

+0

@emktas, irgendwelche Hinweise, welche Art von Profil empfehlen Sie? Ich bin kein Videoexperte. :-) – George2

+0

Ich denke, dein Vorschlag ist, dass wir ein Video mit höheren KPs verwenden könnten, richtig? Aber korrigiere mich bitte, wenn ich falsch liege, ich habe kein höheres KP Profil gefunden. :-( – George2

+0

@emktas, ich habe es versucht und es funktioniert, wenn ich höhere kps setze, danke! – George2

Verwandte Themen