2009-05-09 9 views
0

Windows Mediaエンコーダを使用して画面を記録するには、次のコードを使用しています。私はWindows Vista、画面解像度1024×768,32ビットを使用しています。私の問題は、ビデオを正常に記録できたことです。しかし、録画したビデオを再生すると、ビデオの品質はあまり良くありません。文字は非常にあいまいです。私は、レコーダービデオの品質を向上させるために調整すべきパラメータは何かを考えていますか?ビデオ品質を向上させるためにコードを改善するにはどうすればよいですか?

私のコードは、予め

  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(); 

おかげで、

ジョージ
+0

フォーマットは? 。 –

+0

フォーマットが完了しました。それ以上の問題がある場合はお知らせください。 :-) – George2

答えて

3

ビデオエンコーダ生成されたストリームのサイズを制限する特定のキロビット/秒の比率を使用。量子ビット数が少ないほど、DCTの係数が小さく、量子化値が大きくなるため、細かいディテールは得られません。言い換えると、ビデオに入力するKBitsが多いほど、エンコーダによってストリームに詳細が保存されることになります。

あなたのコードで判断すると、384 kbit/sを使用するプロファイルが選択されています。これは、1024 * 768ビデオではそれほど多くありません。他のプロファイルを試したり、自分で必要なビットレートを設定してください。

+0

@emktas、あなたはどんな種類のプロフィールを示唆していますか?私はビデオ専門家ではない。 :-) – George2

+0

あなたの提案は、より高いkpsビデオプロファイルを使用することができると思います。しかし、もし私が間違っていれば私を修正してください、私はより高いkpsビデオプロファイルを見つけませんでした。 :-( – George2

+0

@emktas、私は試してみたところ、高kpsを設定すると動作します! – George2

関連する問題