2016-09-21 1 views
0

미디어 재단 H264 인코더 성능 저하미디어 재단 H264 인코더 성능 저하

내가 실시간으로 PC의 화면을 기록하고 미디어 재단 H264 코덱으로 인코딩하는 응용 프로그램을 쓰고 있어요. 인코딩은 많은 CPU 리소스를 사용합니다. 비디오 녹화를 멈추거나 (단순히 비디오 및 오디오 프레임이있는 인코더에 공급을 중단하여 일시 중지 한 후) CPU로드는 오랜 시간 (5-10 초 이상) 매우 높게 유지됩니다. 이 시간 동안 응용 프로그램은 IMFSinkWriter :: Finalize 메서드가 완료 될 때까지 대기합니다.

내 PC 구성 : 4 개 코어와

  • 인텔 i5-2410M 2.3 GHz의
  • 8기가바이트 RAM

코덱 구성 :

  • 초당 25 프레임
  • 1364 x 768 해상도
  • ,691,363,210
  • 베이스 라인 프로파일
  • 1.2 메가 비트 레이트

이 MF H264 코덱 성능의 한계이거나 내 코드 버그/잘못된 때문이다?

+0

Didi이 소스 코드를 사용해보십시오. http://stackoverflow.com/questions/33753912/directx-screen-capture-and-output-as-video/33946441#33946441 10 분의 비디오 분 동안 Finalize는 매우 빠릅니다. . – mofo77

답변

0

대기열이 비어있을 때까지 긴 내부 대기열이있는 파이프 라인에서 비디오 인코딩을 유지해야합니다. 소프트웨어 엔코더가 사용되고 있고 꽤 느리므로 화면 캡처 소스가 대기열을 가득 채울 수있는 충분한 데이터를 생성하기 때문에 시간이 너무 오래 걸리므로이를 제거하는 데 몇 초가 걸립니다.

귀하의 솔루션은 데이터 전송 속도를 제어하거나 줄이거 나 더 빨라집니다. 하드웨어 지원 엔코더. 그러나 Media Foundation은 하드웨어 인코더를 자동으로 활용할 수 있으므로 선택의 여지가 없다고 생각합니다. MediaFoundationVideoEncoderTransforms tool을 사용하여 하드웨어 인코더의 가용성을 확인할 수 있습니다.