2014-06-24 5 views
1

'NVENC SDK와 함께 제공된 NVENC 예제를 사용합니다. NVENC API에 전달 된 YUV 배열 (m_pYUV)을 수동으로 채우고 있습니다. 높이가 1080까지 올라가면 모든 것이 작동하며 유효한 비디오를 얻습니다. 그러나 1080보다 큰 높이를 정의하면 여전히 압축은 성공하지만 비디오는 유효하지 않은 것처럼 보입니다.신장이 1080보다 큰 경우 왜 NVENC가 작동하지 않습니까?

높이가 1080보다 큰 경우 왜 작동하지 않습니까?

+0

'유효하지 않음'은 무엇을 의미합니까? NVENC API가 인코딩을 거부합니까? 아니면 재생할 수없는 스트림을 인코딩합니까? 1080의 비디오 높이는 HD 비디오 (1920x1080)에서 매우 일반적이므로 API의 한계 일 수 있습니다. 그러나 NVENC API가 최대 4096x4096까지 인코딩 할 수 있다고 주장하는 자료를 찾을 수 있습니다. 그래서 나는 무엇을 생각해야할지 모르겠습니다. –

답변

0

NVENC 참조 설명서를 방금 읽었습니다. 이것은 API에 처음 노출 된 것이지만 기본 하드웨어 기능의 기능을 쿼리 할 수있는 함수를 찾아 보았습니다.

그 결과로, 나는 NvEncGetEncodeCaps()을 발견했습니다. 이 포인터는 NV_ENC_CAPS_PARAM 구조체에 대한 포인터를 사용합니다. 이 기능을 사용하여 개별 기능 매개 변수를 쿼리 할 수 ​​있습니다. 이 경우 공부하기에 흥미로운 매개 변수는 NV_ENC_CAPS_WIDTH_MAXNV_ENC_CAPS_HEIGHT_MAX 일 수 있습니다.

+0

@Mike, 나는'NvEncGetEncodeCaps()'를 알고 있습니다. 4096x4096까지 지원한다는 것을 알았습니다. 아마 누군가 비슷한 문제가 발생했을 것이라고 생각 했었습니다. ( – theateist