0

次のコードを使用して、Windows Media Encoder を利用して画面を記録しています。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();

前もって感謝します、ジョージ

4

1 に答える 1

3

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

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

于 2009-05-09T11:03:49.193 に答える