더 나은 비디오 품질을 만들기 위해 내 코드를 개선하는 방법은 무엇입니까?
문제
다음 코드를 사용하여 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();
미리 감사드립니다, 조지
해결책
비디오 인코더는 특정 KBIT/두 번째 비율을 사용하여 생성 된 스트림의 크기를 제한합니다. kbits/sec가 적을수록 DCT의 계수가 적고 양자화 값이 더 적기 때문에 세부 사항이 줄어 듭니다. 다시 말해 : 비디오에 kbits/sec를 더 많이 넣을수록 인코더에 의해 스트림에 더 자세한 내용을 저장할 수 있습니다.
코드로 판단하면 1024*768 비디오에별로 그렇지 않은 384 Kbit/s를 사용하는 프로필을 선택했습니다. 다른 프로파일을 시도하거나 원하는 비트 전송률을 설정해야합니다.
제휴하지 않습니다 StackOverflow