как улучшить мой код, чтобы улучшить качество видео?
Вопрос
Я использую следующий код, чтобы использовать 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();
заранее спасибо, Джордж
Решение
Видеокодеры используют определенное соотношение кбит/сек для ограничения размера генерируемого потока.Чем меньше кбит / с, тем меньше деталей вы получите из-за меньшего количества коэффициентов DCT и больших значений квантования.Другими словами:чем больше кбит / сек вы вкладываете в видео, тем больше деталей кодер может сохранить в потоке.
Судя по вашему коду, вы выбрали профиль, который использует 384 кбит / с, что не очень много для видео с разрешением 1024 * 768.Вам следует попробовать другие профили или установить битрейт, который вы хотите сами.