como melhorar o meu código para fazer uma melhor qualidade de vídeo?
Pergunta
Eu estou usando o código a seguir para alavancagem Windows Media Encoder para a tela de gravação. Estou usando o Windows Vista, resolução de tela de 1024 × 768, 32-bit. Meu problema é, o vídeo pode ser gravado com sucesso, mas quando eu reproduzir o vídeo gravado, a qualidade do vídeo não é muito bom - por exemplo, personagens são muito obscuro. Eu estou querendo saber quais são os parâmetros que eu deveria tentar sintonizar a obter uma melhor qualidade de vídeo recorder?
Meu código,
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();
Agradecemos antecipadamente, George
Solução
codificadores de vídeo utilizam uma certa proporção kbit / segundo para limitar o tamanho do fluxo gerado. Quanto menos kbits / seg a menos detalhe você receberá devido ao menor número coeficientes da DCT e os valores de quantização maiores. Em outras palavras:. Mais kbits / s que você colocou o vídeo mais detalhes podem ser armazenados na corrente pelo codificador
A julgar pelo seu código de ter escolhido um perfil que usa 384 kbit / s que não é muito para um vídeo 1024 * 768. Você deve tentar outros perfis ou conjunto de taxa de bits que você quer mesmo.