2009-05-09 3 views
0

다음 코드를 사용하여 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

서식 It? . –

+0

형식이 완료되었습니다. 추가 문제가 있는지 알려 주시기 바랍니다. :-) – George2

답변

3

비디오 인코더는 생성 된 스트림의 크기를 제한하는 특정 Kbit에서/초 비율을 사용합니다. 적은 kbits/sec 일수록 DCT의 계수가 적고 양자화 값이 커지기 때문에 세부 사항이 적어집니다. 즉, 비디오에 넣는 KBIT가 많을수록 더 많은 세부 사항이 인코더에 의해 스트림에 저장 될 수 있습니다.

코드로 판단하면 384 kbit/s를 사용하는 프로필을 선택했는데 이는 1024 * 768 비디오에별로 적합하지 않습니다. 다른 프로필을 시도하거나 원하는 비트 전송률을 설정해야합니다.

+0

@emktas, 어떤 종류의 프로필을 제안하나요? 나는 비디오 전문가가 아니다. :-) – George2

+0

나는 당신의 제안이 더 높은 kps 비디오 프로파일을 사용할 수 있다고 생각한다, 맞습니까? 그러나 내가 틀렸다면 나는 더 높은 kps 비디오 프로필을 찾지 못했습니다. :-( – George2

+0

@emktas, 고맙습니다. 감사합니다. – George2

관련 문제