더 나은 비디오 품질을 만들기 위해 내 코드를 개선하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/843100

문제

다음 코드를 사용하여 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를 사용하는 프로필을 선택했습니다. 다른 프로파일을 시도하거나 원하는 비트 전송률을 설정해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top