我正在使用以下代码来利用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();
提前谢谢,
乔治
答案 0 :(得分:3)
视频编码器使用某个kbit / s比率来限制生成的流的大小。由于来自DCT的较少系数和较大的量化值,所获得的细节越少,kbits / sec越少。换句话说:您放入视频的kbits / sec越多,编码器就可以在流中存储更多细节。
根据您的代码判断,您选择了一个使用384 kbit / s的配置文件,这对于1024 * 768视频来说并不是很多。您应该尝试其他配置文件或设置您想要的比特率。