(IWMWriter-> BeginWriting 후은에라고 4K 비디오를
(이론적으로 WMV는 4K 출력을 지원하지 않지만) 출력에 4K WMV 동영상을 윈도우 미디어 API를 사용하는 방법에 대한 것입니다이 질문을) wirte 할 IWMWriter 설정 32 비트 및 64 비트 Win10 모두 (BeginWriting()은 S_OK를 반환 함) 프로그램은 약 450MB의 메모리를 사용합니다.
그런 다음 IWMWriter-> AllocateSample()을 사용하여 샘플 버퍼를 할당하고 IWMWriter-> WriteSample()을 사용하여 싱크에 쓰기를 시작합니다.
64 비트 Win10에서 변환은 우아하지만 여러 프레임이 기록 후 Win10, WriteSample는() "메모리 부족"오류와 함께 실패 32 비트에 완료 할 수 있습니다.
2 시스템에서 볼 수있는 유일한 차이점은 BeginWriting()을 호출하기 전에 BeginWriting()이 호출 된 후 64Win10이 110MB 메모리를 사용하므로 110 + 450이 사용된다는 것입니다. 32 비트 Win10에서는 BeginWriting() 전에 150MB를 사용하므로 150 + 450을 사용합니다. 이 경우 WriteSample에() 메모리가 반환 이유
피크
가 실패 변환의 작업 집합하는 것은 단지 7백61메가바이트이다 누구나 알고있다. 이 문제를 해결할 수있는 방법이 있습니까?== 업데이트 : ========================================== ===
소스 비디오 프로그램이 비디오와 오디오를 모두 기록하고 비디오를 쓰지 못했습니다 실패한 경우 비디오와 오디오를 모두 포함되어 있습니다. 나는 그것이 비디오 만 포함하도록 파일에서 오디오 트랙을 경우
, 다음 변환이 정상적으로 완료 할 수 있습니다. 피크 작업 세트는 716MB입니다.
감사합니다. 그러나 큰 주소 인식 기능은 이미 활성화되어 있습니다. 동일한 샘플 프로그램은 32 비트 Win7 시스템에서도 올바르게 실행됩니다. – rhbc73
코드 "as is"는 내 시스템에서 32 비트 및 64 비트 버전의'BeginWriting' 호출에서 액세스 위반을 일으 킵니다. 그러나/LARGEADDRESSAWARE를 설정하기 전에 32 비트 버전이 참으로 메모리 부족 상태가되었습니다. 그래서 여전히 32 비트와 고해상도 문제라고 생각합니다. Win 7 인코더는 메모리 요구 사항이 적어서 곧바로 작동합니다. –
로마 감사합니다. 이 문제는 다소 해결되었습니다. 내가 말한대로 BeginWriting이 호출 될 때 "메모리 부족"이 발생합니다. 미디어 유형을 올바르게 입력하지 않았기 때문입니다. 입력 속성을 설정할 때 memset (p, size, value)이 memset (p, value, size)에 기록되었습니다. – rhbc73